On Fri,[masked] at 10:37 -0400, Paul Verity wrote:
> I've followed these posts with great interest as I hear FP popping up
> more and more. To be honest, I've always dismissed it as a niche idea
> loved by academics teaching theory - and more recently - by those that
> have heard a buzzword and jumped on it to show off their intellectual
> prowess. So it was interesting to read Martijn's comment regarding
> that perception too. I recall pulling my hair out at Uni trying to get
> my head around Miranda - I've have been scarred by FP ever since.
> Literally! I have no hair left now, and I still squarely blame FP for
> it :o)
Crikey, I haven't heard anyone mention Miranda as a used language in
Miranda, Hope, KRC evolved into Haskell.
Bizarrely though, a lot of academics teach FP with a language called
> The first I heard of FP making an appearance in the mainstream was
> when I heard of F#. It was pretty surprised MS was going down that
> route. Then a guy at work started studying it and singing its praises,
> and before long he was off. A year or so later I heard the Java dev's
> talking about Scala.
F# is an update on OCaml. ML (in all it's guises) is a functional
language with imperative features.
> So if FP is gaining traction, why was there such an absence in the
> commercial world for so long? I'd been studying it (unsuccessfully I
> might add) at Uni some 14-15 years ago! What has happened in the last
> few years that is bringing FP in to the limelight? What does it do
> that solves todays problems better than imperative style? It sounds
> like I should try giving this another shot as I'm finding it quite
> intriguing now, but constructs like the aforementioned "def scan[B >:
> A, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[List[A], B,
> That]): That" scares the bejesus out of me! I have absolutely no idea
> what that could possibly mean. If it was the proverbial shotgun
> mentioned earlier, I would have quite easily blown my toes off by
The problem is getting rid of the 1980s/1990s perception that OO and FP
were enemies that could never coexist. With C++11, D, Go, Rust we are
seeing native code languages growing up and merging the best ideas of OO
and FP into a single language. Python and Ruby did likewise for dynamic
languages off JVM. Groovy, Clojure, JRuby, Jython brought things to the
JVM as did Scala and now Kotlin and Ceylon(*). Many Java folk has not
been tracking this as perhaps they might have done, but are hiot with it
directly due to all the changes in Java 8.
The challenge of the next few years is to find the right balance between
FP and OO and to rewrite all the patterns literature. The GoF patterns
of 1994, really are loosing relevance in the 2010s.
also competing with Dart.
Dr Russel Winder t: [masked] voip: sip:[address removed]
41 Buckmaster Road m: [masked] xmpp: [address removed]
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder