Re:The Most Powerful JVM Language Available
by yzhengyu on Wednesday July 06, 2011 @06:30PM
(#2736247)
The leap from imperative to functional becomes apparent when you stop thinking of your problem or system in terms of the data it processes, but it terms of the functions it has.
Yes, I belong to the school which believes everyone should have learnt Lisp/Scheme in school in that introductory module to CS, ala, the MIT belief. :)
I am a physicist from origin, so I haven't had a lot of specialized classes. I always used imperative languages. In physics c++ and c are leading.
Two years ago I found Haskell. It was difficult to learn, until I realized in Haskell you are just doing mathematics. In functional languages a function is a mathematical function. You can actually reason about code and even prove your code. This is extremely cool (from my point of view).
I purchased some books on lambda calculus, logic, category theory and did the SICP thing. Now functional programming feels more natural to me. I used it as day to day tool.
Only paradigm shifts are really difficult. From imperative to functional. From functional to reactive etc. But these are also the more worthwhile experiences, because they broaden your possibilities as programmer.