I've tried a lot of different languages over the years including Ruby, Go, Scala, and Haskell.
Ruby actually isn't too bad if you don't use Rails. Between Rails and stuff like Spring over in Java-land I've developed a strong hatred of huge frameworks :)
Clojure, however, is the one language that just 'clicked' for me almost immediately. In fact, I'm pretty certain I'll be sticking to Lisps as much as possible from here on out. That is, when I have the choice: I work in a Java shop during the day like everyone else :O
I think there's a valid case to be made that Spring and the rails auto-loader are pretty annoying/stupid in larger projects (or anytime you're going against the grain).
Every framework has its downsides. Personally I think rails is nice (I am very productive with it).
Yes, I come into lots of issue with Spring autoloader to the point I have a zsh alias call `kill_rails` to make sure it kills all the rails and spring instances :(.
That's being said, Spring is an external tool to help solve the slowness of booting up Rails app. I have work in Java/Python and they are slow to bootup too just depend on how big the project is.
Yes, I meant the Java uberframework beloved by architecture astronauts. I suppose I should have been more clear - I haven't uses RoR since version 3, so my knowledge of that ecosystem isn't very current :)
If you want end-to-end Clojure/Lisp while retaining access to large ecosystems there's Clojurescript for the browser and Node.js, Hy (http://hylang.org) for scripting and data science plus Clojure for JVM/large applications with performance. Now you can get a VPS with 4Gb of RAM for £5/month at Hetzner (http://hetzner.com) so JVM memory usage is no longer an issue. These are exciting times indeed for developers.
That's only for the front end though. Lots of people use Compojure which is essentially Sinatra if you're coming from Ruby. Luminus is a far more complete solution that feels like Rails. After I cut my teeth enough times starting from nothing, Luminus unfortunately feels a little clunky because you have to figure out how it's all glued together.
Same here. It's really hard for me now at my day job when I have to write OO. Clojure and functional languages opened up my eyes to OO shortcomings I've been trying to work out for over twenty years. Since I started, I've always felt that there were many things not right about OO and developing using these giant frameworks with so many useless abstractions has gotten old and tiring. Most of my time is spent working around the shortcomings of OO nowadays rather than writing actual code for business purposes. Since I started with Clojure, I have little patience for the complex for complexity's sake song and dance of OO. I'm trying to go full time with Clojure. I'm shocked that the author couldn't find Clojure programmers. Must not have offered remote work.
I felt so strongly about not wanting to go "backwards" anymore and use Go/Scala/Java etc I started my own company so I could dictate the technology decisions, so naturally I used Clojure!
I still use Javascript in most of the UX because ClojureScript I felt wasn't ready for primetime production but we'll be phasing that out over the next few years into ClojureScript.
As someone who'd always pick CLJS over Js, for the heck of it I tried to build React / Redux / React-router based app and was blown away at how dev friendly the experience was.
No fiddling with tooling, the entry barrier can't be lower.
With CLJS it's always figuring out the latest versions, trying to get Figwheel off the ground is at least a day worth of work for me. What was piggieback again and why don't I have it? Which profiles are loaded implicitly by lein, should I use figwheel-sidecar? Then add building your app to be reload friendly (even though by default it's a good practice)
There's just so much going on even after having built 3-4 projects with CLJS and using the same stack, I am still struggling.
Once you get through the first few days of battling with libs it's breeze.
That's where Js gets behind. Redux / React is all about transforming and shaping your data. You end with lots of boilerplate. Even though ES6 is drastically better with syntactic sugar for manipulating data, it's still far behind Lisp nature of data transforming.
It's a tough choice nowadays. I want to get moving fast and feel strongly inclined towards sticking to Js.
Ruby actually isn't too bad if you don't use Rails. Between Rails and stuff like Spring over in Java-land I've developed a strong hatred of huge frameworks :)
Clojure, however, is the one language that just 'clicked' for me almost immediately. In fact, I'm pretty certain I'll be sticking to Lisps as much as possible from here on out. That is, when I have the choice: I work in a Java shop during the day like everyone else :O