3 ms·
I got my first taste of functional programming with Erlang. Honestly, it had me befuddled for quite some time with pattern matching and the "functional" style;
by Ixiaus 16y ago
I got my first taste of functional programming with Erlang. Honestly, it had me befuddled for quite some time with pattern matching and the "functional" style; I was used to using objects to encapsulate rather than "modules" and "functions" - the distinction in nomenclature may seem frivolous, but the concepts are worlds apart when used in the context of Erlang or Java.
Erlang taught me a lot that I never even came close to learning with PHP, Python, and C++. Most notably what Erlang is good at - Concurrent Programming.
I still didn't fully "grok" functional programming though as I just completed the book and didn't complete any projects using Erlang. The real meal first started with Common Lisp which drove me to Scheme (Common Lisp is a mess, Scheme is minimal in nature, and Scheme is much more true to a functional language than CL). I then picked up the Little Schemer series of books and proceded to have my world view enlarged; with the addition of many other excellent resources, my knowledge of programming increased exponentially.
Within a few months of "grokking" functional programming and grooving with Scheme (it is my favorite language to date, Python comes second) the noted benefits were: an increased academic understanding of computing and the modality with which computable logic is represented, clearer/cogent/lucid and higher-caliber thought, my creativity in programming was unleashed, and I've found that I have a vested interest in the philosophy behind what I do. I also feel like my general perception of reality has changed too, I interpret my life experiences with a different set of concepts now.
The experience of learning a functional language and being committed to "grokking" it, has been remarkably similar to the time I went backpacking through India for two months on a budget...alone. I came back with a new kind of maturity and my mind just works different from everyone else I know that still hasn't left the states. It's like that, your mind just works different than all the others that haven't left procedural/OOP land.
As for production projects: there are plenty of companies that use Scheme, Erlang, and a other functional languages. I personally would love the opportunity to program in Erlang or Scheme over any other language (they are that much of a joy); alas, my industry (web application programming) is primarily enamored in Ruby/Python/PHP (Python and PHP being my primary marketable skills) so I would probably need to build my own startup or work for a company that uses the language (it wouldn't be in web application programming though!).
By the way, HN is built using a dialect of LISP based off of Common LISP (is that correct?) of which Scheme (Scheme is also a dialect of LISP) is a brother.