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

I don't see how Clojure is "close to the metal". To me it seems pretty high up in the ladder of abstractions.

In Java, we have Lambdas and Streams and some concurrency APIs and Clojure only seems to build _on top_ of these, making them much more ergonomic, simpler, AND encouraging immutability, to boot. Novice programmers love mutability, but in Clojure you kind of have to go out of your way to solve something with mutation. So to me (as long as users aren't getting carried away with writing macros) it seems you should land in a better spot with Clojure. If you're not seeing that's the case, then what is it? What are the common mistakes that you see these novices making that make for unmaintainable code---that somehow is not found in the same proportion in something more mainstream? Would seriously love to hear.



Specifically the parent is talking about coding without a framework that has solved many problems for you. "Metal" is the language in this case, not the CPU


Any framework that Java and/or Javascript has can be used in Clojure.

I guess this is an apples to oranges comparison when you put it that way. Eg, React and Clojurescript are great together; and of course so are many JVM frameworks and Clojure.


Clojure is much 'closer to the metal' than django in the sense that you have to rebuild all of the pre-built, fairly hardened pieces that django has.


You really don't though. Clojure ecosystem consists of lots of mature libraries. Luminus http://www.luminusweb.net/ will wire them up for you in a standard way. All you have to do to make a new project is something like:

    lein new luminus myapp +postgres +auth
And you're good to go. Everything is setup, and you just have to add the code relevant to your application.

It's also worth noting that the nature of how web apps are built has changed over the years. Everything used to be done server-side, with the client just rendering HTML for the most part. A big framework makes sense in that context.

However, SPA approach is the popular way to build apps today, and all the UI logic lives client-side. The server becomes just a set of service operations, that are ideally stateless for scaling. You really don't need anything too fancy on the backend with that approach.


Well by that claim Python is also closer than Django but at this point we are comparing apples and oranges.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: