3 ms·
I'll throw my hat in here for learning Clojure. It's a modern Lisp that runs on the JVM, with a great community and awesome libraries. (For example, https://git
by adrianm 13y ago
I'll throw my hat in here for learning Clojure. It's a modern Lisp that runs on the JVM, with a great community and awesome libraries. (For example, https://github.com/Engelberg/instaparse https://github.com/Engelberg/instaparse) As others have mentioned, it all comes down to what you really want to do. I use Clojure both professionally (for web development, statistical computing/analytics software, natural language processing) and for fun on a daily basis. It's the only language I've yet to come across in my career that work doesn't make boring. I relish every opportunity I get to code in Clojure, because after solving every problem in it I end up with a DSL (domain specific language) that I can extend and mold to the problem as I learn more about it, and honestly I find that addicting. I can't recommend it enough, even if you just use it for fun occasionally. At worst, you'll have learned a Lisp and can judge its merits for yourself. At best, you'll experience what I have: infatuation that I hope never goes away. It's been about a year now since I first learned it, and I probably code at least 3-4 hours a day in it. My love has not abated in the slightest, it has only increased. Give it a shot, you may like it!
- RMacy 13y agoI too have been enjoying Clojure with the same ferocity as the above poster. I also really recommend Python, as its got some solid engineering practices "baked in" and a great community to boot.
- kodablah 13y agoI have similar feelings about Scala. Combines functional programming w/ a strong/static type system and all the benefits of the JVM. Very practical and fun which I found was not the case w/ Haskell and ML languages. And you couldn't ask for better timing, first day of class starts tomorrow[1]! (and in a month and a half, reactive programming[2]) 1 - https://www.coursera.org/course/progfun https://www.coursera.org/course/progfun 2 - https://www.coursera.org/course/reactive https://www.coursera.org/course/reactive
- pestaa 13y agoCan you please tell me more about your experience with Haskell?
- droopyEyelids 13y agoOne ding to Scala's practicality, it's such an enormous language that to use it in production with a large team almost requires a C++ level of discipline in deciding which elements of the language to use. It's a terrific language though and the fact that it runs on the JVM is a huge advantage.
- dizzystar 13y agoMy weapon of choice is Clojure and I don't really agree with this post. There is a serious lack of tutorials and guides to get basic things going, the documentation is all-around horrible, and in general, Clojure is a very difficult language to get started with, though it certainly has improved immensely over the past year and it is rewarding once you get past the initial humps and start to really grok it. Clojure is philosophically, a beautiful language, but you have to work very hard to get to that point. And may the programming gods have mercy on his soul if he prefers using Windows.
- random_coder 13y agoHow do you suggest that one should get past the initial hardships in learning clojure, assuming one is willing to put the needed effort? I've always wanted to learn a lisp and clojure seemed good, but couldn't find a good tutorial for lisp beginners.
- sinemetu11 13y agoThe koans would be a good starting point: https://github.com/functional-koans/clojure-koans https://github.com/functional-koans/clojure-koans
- john2x 13y agoThe "Clojure Programming"[1] book is good. Also "The Joy of Clojure"[2], to ease you into the philosophy/mindset of Clojure. There's also http://www.braveclojure.com http://www.braveclojure.com which is still a work in progress but it's good for diving in. [1]: http://shop.oreilly.com/product/0636920013754.do http://shop.oreilly.com/product/0636920013754.do [2]: http://joyofclojure.com http://joyofclojure.com
- dizzystar 13y agoI wish I had an answer, but I wasn't a Lisp beginner when I started with Clojure. I'd definitely suggest using Linux, installing Clojure + Leiningen2, and getting familiar with the REPL. Also, getting Clojure Programming by Chad Emerick, et.al, is a solid first step to at least getting some things started. Learning Clojure is like any other language: if you want to really dive in, you have to think of a project to get started in and take it step-by-step. I have not written algorithms or done scripting with Clojure, so I don't know how that stuff would work out. I feel there are better languages for that kind of stuff.
- bachback 13y agoThe people who will admire LISP skills are a very elect group of people even among "programmers". Getting stuff done in Clojure takes a lot of effort at first and finding help is much more difficult. There are ~5000 questions on SO, and 150'000 on Rails. In general there are quite a few downsides to Lisp, which Paul Graham likes to overlook. I'm very impressed with Lighttable which is build in Clojurescript. What libs do you use? I find it difficult to get started. It is my impression that you have to invest a lot of time to build things you don't to be building.
- ivoras 13y agoFor a JVM language it appears to be remarkably slow (http://benchmarksgame.alioth.debian.org/u32/clojure.php http://benchmarksgame.alioth.debian.org/u32/clojure.php), especially compared to Scala (http://benchmarksgame.alioth.debian.org/u32/scala.php http://benchmarksgame.alioth.debian.org/u32/scala.php). (OTOH Python is still the slowest language around... http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=clojure&lang2=python3&data=u32 http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...).