Ask HN: is Clojure a good all-purpose programming language? Motive for question: I really need to get out of my current language rut (PHP+Javascript) and am looking for a powerful all-purpose language to study and learn deeply over the coming years. I would rather just focus on learning one thing very well than try to pick up a half dozen new languages. Current best candidate: Clojure+Clojurescript. From what I can tell, the differences are so small that they can almost be considered the same language (is this correct?). Which gives me the same benefit that JS has: no mental context-switch between client-side and server-side code. Using Clojure(script) I can do a lot of stuff: * Command line applications, think everything from simple cron jobs to daemons to command-line utilities (replaces: clunky PHP scripts) * Backend servers (replaces: PHP, NodeJs) * Web client stuff using Clojurescript (replaces: browser-side Javascript) Potential bonus uses: * Mobile apps, using either Clojure proper or Clojurescript+Phonegap (replaces: clunky Phonegap apps). I don't know how feasible this is in real life, though. * Desktop applications (replaces: nothing that I've ever tried). Again, don't know how feasible this really is. Language features that I like: * Functional programming * Good concurrency support * Homo-iconicity, macros * Lexical scoping, closures * Good REPL * Elegant (AFAICT), not a pile of weird hacks, quirks and gotchas like JS and PHP * Compiles to JVM (Clojure) or JS (Clojurescript) which makes it/them very portable and able to interact with a huge array of existing code/libraries So, Clojure/Clojurescript would be my current best bet for a really powerful all-purpose language. It would also be a welcome challenge: I've been doing a lot of functional stuff in the past years, but Clojure would really up the ante there. Feel free to chime in if you have a suggestion of a different language that could also fit the bill :) |