addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcredit-cardcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobe--smallglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1launch-new-window--smalllight-bulblinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Re: [ljc] Why hasn't Scala and functional programming taken off

From: Stephen H.
Sent on: Friday, October 4, 2013 5:37 PM
Thinking about it, maybe another reason that Scala and the other FP languages have been growing slower than might be expected is the lack of an obvious 'killer app'.

With the other languages which really took off in the last 10 years they generally addressed a big gap in the ecosystem and it was immediately obvious how they could make life easier. e.g. going from perl to python or ruby for doing scripting or php to Rails for web development. In these cases you could immediately see how the language would make your life easier and save time/money from doing a couple of tutorials or watching a presentation.

Scripting languages like Python and Ruby in particular were also less affected by lack of tooling because a lot of the typical use cases don't need a full IDE anyway.

Going from java to scala is much more subtle and other than saving on verbosity there's no immediate gain in productivity on this kind of scale.  There are gains to be had long term in the sense that you have all the FP tools to approach problems but it's not an overnight improvement. Coupled with the tooling issues it's been a hard switch to justify if your team is comfortable with java (and java's still a perfectly good language for a lot of use cases).

I think that's starting to change though as more mature frameworks are coming out. The Play 2.0 framework and Akka have been fairly major ones for Scala in the last 18 months (yes, you can use them in java as well but it can be ugly) and Play in particular was the game changer for us. (for anyone who hasn't tried it I really recommend having a play with the Typesafe Activator it's a very nicely done interactive tutorial on scala/akka/play which also includes corresponding examples in java for reference).


On 4 October[masked]:20, Russel Winder <[address removed]> wrote:
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
decades. ;-)

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
> now...

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.

(*) Though Ceylon has a JavaScript backend as well as a JVM one, so is
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:  skype: russel_winder

Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Russel Winder ([address removed]) from LJC - London Java Community.
To learn more about Russel Winder, visit his/her member profile:
Set my mailing list to email me

As they are sent

In one daily email

Don't send me mailing list messages
Meetup, POB 4668 #37895 NY NY USA 10163 | [address removed]

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy