Linked by Thom Holwerda on Mon 14th Jan 2013 23:15 UTC, submitted by MOS6510
General Development "Programming languages are living phenomena: They're born, the lucky ones that don't die in infancy live sometimes long, fruitful lives, and then inevitably enter a period of decline. Unlike real life, the decline can last many, many years as the presence of large legacy codebases means practiced hands must tend the code for decades. The more popular the language once was, the longer this period of decline will be."
Permalink for comment 548805
To read all comments associated with this story, please click here.
Comment by RareBreed
by RareBreed on Tue 15th Jan 2013 04:49 UTC
RareBreed
Member since:
2011-10-10

I do hope that functional programming languages undergoes a renaissance. However, in my opinion, imperative style languages have made it harder for people to think that way if they have been coding in an imperative style for too long. The thought process requires a radical shift which takes time. For me, it became relatively easy to pick up a new OO or imperative style language. However, it took me several months of wracking my brain to even begin to program in a functional style.

immutable vs. mutable data
recursion vs. iteration
closures vs. objects
method dispatch vs. polymorphism
pattern matching vs. switches
composition of functions vs. aggregation of objects
Macros vs. DSLs
Continuations vs. Exceptions/goto/setjmp

But once you do figure out, it just becomes more elegant. I don't know how software is going to get faster with multi-cores unless people switch to functional languages. Lock-based concurrency is just really hard to get right.

If you don't believe me, read Bartosz Milewski's post on why he switched to FP (and if you don't know who Bartosz is, just google him).

http://fpcomplete.com/the-downfall-of-imperative-programming/

My own dabble with functional languages has been mostly clojure and scheme based. Next on my list to learn is haskell. I tried Scala and didn't like it much (personal choice, it reminded me of perl's TIMTOWTDI and it wasn't really all that functional to which Odersky himself agreed). Clojure is nice, and it's way more readable than lisp/schemes since it also has [] for vectors and {} for maps. That little change makes clojure way more readable. That being said, being hosted on the JVM sucks for system programming. So that's why I've been learning scheme and next on my list is haskell.

Reply Score: 5