Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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'm agree with you as well except the Rails point.

I have used and deploy Go/Elixir/Clojure to some certain success. One thing I feel is that no code is as beautiful as Ruby code to my own eye.

What make Rails bad in your opinion? Is its performance? I think Rails is just a framework with many utility/helper to help you out.


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).


This is a fair point.

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.

Tool like: https://github.com/Shopify/bootsnap help to speed up this as well.

Other option to look at: https://github.com/danielpclark/faster_path

These solves the issue of scanning path, address slowness in a different way compare to preload mechanism of Spring.


GP was talking about this Spring: https://spring.io/ not the Rails preloader...


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 :)


What libraries do you use for building web stuff?

Over on Reddit[0] one of the problems for newbies to Clojure is not knowing what to use for web development.

https://www.reddit.com/r/Clojure/comments/858g9z/what_clojur...


compojure-api[1] is great for building a REST API, and I really like HugSQL[2] for talking to databases. Buddy[3] is good for handling auth.

[1]: https://github.com/metosin/compojure-api

[2]: https://www.hugsql.org/

[3]: https://github.com/funcool/buddy


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.


Clojure also clicked with me too, and I also dislike huge frameworks.

There's a trade off there though, rails gives you so much, you almost forget what the problems are with slapping different libraries together.

Definitely room for a "blessed" path to web dev in clojure.


re-frame is the uncrowned king of web dev at the moment, there is nothing like it out there


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.


There's Macchiato (https://macchiato-framework.github.io) by the author of Luminus if you want to target Node.js.


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 know. You think I'd be sitting here slinging Java code if there was a shortage of Clojure programmers?

Even in my local area (not a tech hub), I'm aware of one small software shop using Clojure, and they have no trouble finding people.


I had a similar experience.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: