DEV Community

Discussion on: Which Programming Language To Learn?

joshavg profile image
Josha von Gizycki

Try Lisp, any implementation.

Why, you may ask. I recommend it not only because it's functional and functional programming is all the hype. I recommend it because it takes your brain and turns it inside out. Also, it has a syntax, that doesn't require you to put semicolons at the end of each line. How neat is that?

Let me tell you about my first experiences with Clojure, a Lisp dialect running on the JVM. I started learning it by reading "Clojure for the brave and true", very funny and well written book. Reading the first few chapters I thought "easy peasy, that stuff is a bit strange, but I get it". But when it came to longer functions, I'm talking about 10 lines, a whole new world collapsed onto me. Problems are tackled by a whole different angle here. I you don't know what "data-centric" programming means, you'll know it after your first few hours of Lisp.

Now, there are many different Lisp implementations. There is GNU Lisp, Scheme, the already mentioned Clojure, Hy etc. If you want a well developed and huge set of library at your fingertips, fiddle with Clojure, since it runs on the JVM and Java interop is no problem. If you want to go more low level, GNU Lisp should be a thing for you. Hy is a Lisp implementation using Python. Here you have low start up times (looking at you Clojure), big userland from Python (Python interop) and you can certainly do low level stuff too, I think.