TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why Clojure?

314 pointsby jgrodziski3 months ago

36 comments

hlship3 months ago
I&#x27;ve been working in Clojure now for about 12 years. Maybe 12+ years of Java prior to that.<p>I&#x27;ve created some great apps, and great libraries (in both Clojure and Java).<p>I often describe Clojure as &quot;the least worst programming language&quot;, which is an off-handed complement, but I think accurate. Things you don&#x27;t like can generally be fixed (at least locally) using macros and libraries. The core is strong, a good basis for building things ... and as described all over this thread, stable.<p>As you master your tools, you gain a level of speed and precision in your work that I have not found elsewhere. The REPL-oriented workflow is a central value proposition in Clojure, and many features (and a few limitations) of the language exist to properly support it.<p>Working in Clojure feels like I&#x27;m working &quot;with&quot; my code, molding it like clay. My prior experiences in Java and Objective-C were so much slower, with long code-compile-test-debug cycles that are compressed down to instantaneous responses in the running REPL.
评论 #43161484 未加载
评论 #43159280 未加载
评论 #43155465 未加载
评论 #43155528 未加载
评论 #43155534 未加载
评论 #43184447 未加载
评论 #43157422 未加载
评论 #43158483 未加载
评论 #43160430 未加载
iLemming3 months ago
I love writing Clojure. Whenever I say that publicly, there are inevitably some voices challenging my stance with skepticism, criticism, and attempts to discredit whatever I say provides practical value for me. Then I have to explain to them, &quot;no, it&#x27;s not the only language I know,&quot; &quot;yes, I&#x27;ve used dozens of other languages before,&quot; &quot;yes, including languages with robust static type systems as well.&quot;<p>And you know what? Finally, I realized - I don&#x27;t have to explain to anyone in exact detail why I have not found the same deep love in C, C#, Python, Javascript, Typescript, Ruby, Go, Java, Kotlin, Swift, Lua, Haskell, and many others. Why do I need anyone&#x27;s permission to love a tool? I love it, and I love it for many reasons - theoretical, practical, emotional, fiscal.<p>Sure, I can get behind your excitement for Rust, Kotlin, OCaml, Elixir, Julia - you name it, but please, please do not try to &quot;educate&quot; me about my choices. I don&#x27;t care about YOUR personal predicaments with Clojure&#x2F;Clojurescript&#x2F;Babashka&#x2F;nbb, even Fennel. You find Clojure not to be worthy of your time - it&#x27;s YOUR loss. My love for Clojure is not due to MY skill issues, not the result of MY inexperience, not because &quot;I&#x27;m in a bubble,&quot; or &quot;I don&#x27;t know any better,&quot; or have zero knowledge of type systems, category theory, OOP or design patterns.<p>Sure, Clojure is not without deficiencies - no tool is ever perfect. Yet pragmatically, no other programming language in the category of general-use PLs today satisfies me more than Clojure, no other language is nearly as joyful to use. I&#x27;m sure at some point my stance will change, I will find some other &quot;perfect&quot; language for me, and 100% guaranteed - it will too have some deficiencies and people will be arguing for the merits of choosing it for the job. Until that day, let me just say it again - &quot;I fucking love Clojure!&quot;
评论 #43156228 未加载
评论 #43157238 未加载
评论 #43158603 未加载
评论 #43155754 未加载
评论 #43155251 未加载
jwr3 months ago
As a data point: I&#x27;ve been running my solo-founder SaaS business for 10 years now using Clojure. It changed my life. It would not have been possible without Clojure and ClojureScript, building and maintaining an app of this complexity would have exceeded my limits.<p>The article is excellent and I agree with everything in it.<p>The stability of the language is unbelievably useful. I look around and it seems it isn&#x27;t valued in many other ecosystems where people have to rewrite their software regularly. I can&#x27;t afford to rewrite my app.<p>There will be plenty of armchair critics here, with cliché knee-jerk reactions (parentheses, JVM, startup time, etc). If you intend to form an opinion, I would suggest you read only into the insightful posts, from people who actually used the language, or from critics who present well thought-out criticism, not just a shallow knee-jerk reaction.
评论 #43160882 未加载
d_t_w3 months ago
My co-founder uses the phrase minimal-viable-company for maximum-viable-product.<p>We bootstrapped for 5 years to well over $1M+ ARR before recently closing a seed round[1], Clojure played a large part in our ability to deliver as a small team. Also in our general happiness as programmers, it is a nice language to work in.<p>We will grow our Clojure core product team over the next couple of years, but mostly the funding round is about balancing our business to keep up with our product delivery.<p>Clojure has been very good to me (I had 15 years on the JVM prior to moving to clj&#x2F;cljs in 2013-ish). YMMV.<p>[1] <a href="https:&#x2F;&#x2F;factorhouse.io&#x2F;blog&#x2F;articles&#x2F;from-bootstrap-to-blackbird&#x2F;" rel="nofollow">https:&#x2F;&#x2F;factorhouse.io&#x2F;blog&#x2F;articles&#x2F;from-bootstrap-to-black...</a>
rednafi3 months ago
It’s great, and I learned a ton from Rich Hickey, despite not fully grokking Clojure or FP in general. I briefly worked at a small Clojure shop with an extremely talented crew. People were excited about FP and writing real business logic with it. My stack was different there.<p>The problem started when the honeymoon phase ended, and the codebase grew as the business gained traction. Dynamic typing became a burden, and once the key people moved on, they struggled to hire developers who wanted to write Clojure.<p>Also, JVM juju shooed many away. After I left, a coworker told me they had started rewriting part of it in Go, and that was going alright. Now, their stack mostly consists of Python for LLM stuff and Go for the main backend. There’s still some Clojure running legacy systems that haven’t yet been migrated over.
评论 #43156201 未加载
评论 #43154796 未加载
phtrivier3 months ago
The part about the &quot;stability&quot; is a bit surprising - in my experience, I try playing with clojure about once a year, and every time, everything is different (I mean, I had to go through classpathes, then lein, then boot, then deps.edn - what is the current way to &quot;try and run a program&quot; du jour ?)<p>Also, is running your &quot;hello world&quot; still going to be incredibly slow, or has something changed in the core system (I know I&#x27;m supposed to fix that with graails. Or is it babashka ? Or something else, I suppose.)<p>It&#x27;s really sad, because i just love the language. Reading about clojure is a pleasure. Trying to write anything has always been a blocker to me, though. Maybe that&#x27;s the true &quot;immutable&quot; nature of the language ?
评论 #43153792 未加载
评论 #43154402 未加载
评论 #43158901 未加载
评论 #43155213 未加载
评论 #43154058 未加载
评论 #43154214 未加载
ilrwbwrkhv3 months ago
I run a multi-million dollar business which I started with common lisp. I since moved away to go and then rust but I&#x27;ve been looking at clojure again lately.<p>For a team that needs to get s** done and has more per employee productivity than Faang combined it&#x27;s hard to beat the speed with which you can build things when you have the repl and interactive programming.<p>The jvm while doesn&#x27;t have great error messages is a fantastic runtime.
评论 #43153144 未加载
评论 #43154054 未加载
评论 #43153730 未加载
评论 #43154345 未加载
评论 #43153035 未加载
评论 #43153431 未加载
评论 #43153981 未加载
dotemacs3 months ago
Somebody brought up a point about outdated documentation.<p>Currently <a href="https:&#x2F;&#x2F;clojuredocs.org" rel="nofollow">https:&#x2F;&#x2F;clojuredocs.org</a> is sort of the go to place. It wins due to Google algorithm.<p>I wanted to add the ability to vote on answers provided there. So that you have the ability to see the most relevant&#x2F;popular answer, rather than the oldest.<p>Raised an issue on the repo, four years ago now. No response:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;zk&#x2F;clojuredocs&#x2F;issues&#x2F;222">https:&#x2F;&#x2F;github.com&#x2F;zk&#x2F;clojuredocs&#x2F;issues&#x2F;222</a><p>And why do I mention Google algorithm? Because there was another effort that tried to create a (debatably) nicer documentation, but due to lack of Google traffic, it died. See: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8027119">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8027119</a><p>For a more eloquent argument on its uses, see this blog post:<p><a href="https:&#x2F;&#x2F;metaredux.com&#x2F;posts&#x2F;2019&#x2F;06&#x2F;29&#x2F;farewell-grimoire.html" rel="nofollow">https:&#x2F;&#x2F;metaredux.com&#x2F;posts&#x2F;2019&#x2F;06&#x2F;29&#x2F;farewell-grimoire.htm...</a>
slifin3 months ago
If you are using Clojure please look at this:<p><a href="https:&#x2F;&#x2F;www.flow-storm.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.flow-storm.org&#x2F;</a><p>If you can get past the serviceable UI then it&#x27;s coding nirvana literally looking inside the program<p>Pair that with a good test suite so you can trigger lots of different scenarios and you&#x27;re in heaven
dustingetz3 months ago
Why Clojure = for Datomic, Rama, Electric and Missionary. No need for long blog post - this stack screams if your app fits within its intended operational margins - e.g. enterprise cloud information systems and rich interactive web products.
评论 #43161362 未加载
MarkMarine3 months ago
Learning clojure has improved all of my programming in every language. I’m in love with the simplicity and smallness of it. Rich said one of the reasons he built it was he was programming like this already (pure functions acting on data) but the languages he was using didn’t support it well. There is a lot to be learned and applied even if you can’t use clojure at work every day.
评论 #43156756 未加载
jrsj3 months ago
Elixir is a little less flexible since it doesn’t have the JVM interop but for domains where it’s a good fit I think it’s <i>even better</i> at most of this stuff (and easier to teach people unfamiliar with FP or lisps)
评论 #43154069 未加载
nbittich3 months ago
I tried clojure long time ago, honestly what made me give up is when I saw a java stacktrace in place of a proper error message when learning it. Also the repl was slow. The UX sucked, I wonder if they improved that
评论 #43153556 未加载
评论 #43153619 未加载
评论 #43153469 未加载
评论 #43153304 未加载
viccis3 months ago
I like Clojure well enough, but it feels like every single time I see it mentioned now is an write up trying to justify using it.
评论 #43158980 未加载
评论 #43155675 未加载
评论 #43155197 未加载
ampunix13373 months ago
Idk ... it feels Clojure stalled since Nubank bought Hickeys company. Worst thing: spec is still in alpha !! I put so much on this ... but nothing really happened since ... idk 8 years?
评论 #43153314 未加载
评论 #43153364 未加载
评论 #43153869 未加载
评论 #43153609 未加载
vim-guru3 months ago
I&#x27;ve been working with Clojure on and off for over a decade, and I&#x27;ve found it exceptionally efficient at solving a wide range of problems—making it one of the best general-purpose languages available. However, I sometimes envy the capabilities of OTP, which provides a straightforward way to build fault-tolerant servers without the overhead of managing containers or databases.<p>Additionally, while the growing number of compile targets in the Clojure ecosystem is impressive, it can also create confusion for newcomers. Whether it&#x27;s compiling to native code with Jank, generating quick script snippets with Babashka, or using subsets of ClojureScript like sci or cherry, the diversity is both a strength and a challenge. I believe a concerted effort to unify configurations across these targets would help streamline the ecosystem and make it easier for developers to choose the right tool for their needs.
评论 #43157566 未加载
kaliszad3 months ago
The two things I ever enjoyed that is some kind of programming was building a pipeline in shell to process data and for the last almost 5 years writing Clojure and ClojureScript. We are now 4 guys writing Clojure with 30+ years of Clojure experience added together. I participated as a co-founder in a front-end heavy project in Clojure&#x2F; ClojureScript and more than a year ago started a Clojure-preferring consultancy in Prague, Czechia. For stuff like Inter-dealer broker trading system it&#x27;s a no-brainer. For many other things as well. Even for distributed systems&#x2F; higher level infrastructure stuff it might be a good choice to get going at least.
moomin3 months ago
Who are these articles for? I feel like Clojure’s value proposition is pretty well understood, and every last Clojure pitch can be relied upon to make the same exact points.
评论 #43154426 未加载
hewrin3 months ago
I would have loved to continue working in Clojure but the jobs just aren&#x27;t there. I spent 2 years trying to get a job and and couldn&#x27;t even get an interview. 2 weeks of Ruby on Rails searching got me 2 interviews.
评论 #43161260 未加载
nokun73 months ago
I recall when I used to work for Pupper Labs - then PuppetDB jumping to Clojure in 2012 was a gutsy call that totally paid off and put the language on the map. Puppet was a Ruby shop, but as data piled up, they needed something really cool and risky—enter Clojure, which we though was a slick Lisp running on the JVM. It turned PuppetDB into a beast for storing catalogs and reports, leaving Ruby’s old setup in the dust with crazy speed boosts, like 130 times faster for some tasks, thanks to its async magic and functional vibe. We could’ve gone Java or JRuby, but Clojure’s concise code and JVM power hit the sweet spot, making PuppetDB a lean, scalable backbone for thousands of nodes. It wasn’t just a tech switch—it showed Clojure could hang with the big dogs, influencing Puppet’s later projects and proving a niche language could rock real-world infrastructure. It was the best move and kept thing really interesting - in a good way of course.
rjinman3 months ago
Couldn&#x27;t agree more with the necessity for fast feedback loops. I&#x27;ve experienced the opposite, and it&#x27;s not fun.<p>I worked with Clojure&#x2F;ClojureScript (mostly ClojureScript) for a couple of years many years ago. It was the first time I&#x27;d worked professionally with a functional language, so I made a game of minesweeper in my free time to help get to grips with it: <a href="https:&#x2F;&#x2F;github.com&#x2F;robjinman&#x2F;cljsmines">https:&#x2F;&#x2F;github.com&#x2F;robjinman&#x2F;cljsmines</a><p>Back then, I fully bought into the idea that functional language like Clojure were the future, especially on the web. The way application state is managed is perhaps the key virtue of functional programming - if you get it right, you can design your program to consist mostly of completely pure functions. I remember how enlightening that was once I understood it.
rrgok3 months ago
I would like to learn ClojureScript for webapp development with react. But, in 2025, I don&#x27;t know how to get started. In 2024 I had the same problem. Lein, Shadow, Deps? What do I have to use? How do I get started with REPL driven development? Any in depth video-tutorials on how to take advantage of nREPL in 2025? If I want to use React, how to use third-party packages? Should I use reframe, fulcro, or retit with ohm? Everytime I try to start I give up because the ecosystem is confusing. What is the right way? And if I want to develop in clojure fullstack (frontend and backend both in clojure&#x2F;script), what is battletested approach?<p>Oh well, I forgot: how to use with TailwindCSS 4? What incantation of build system do I have to configure for live-reloading when classNames changes?<p>Sorry for the rambling. Just a poor confused user.
评论 #43159597 未加载
DeathArrow3 months ago
As I skimmed trough the article, the most important pros of Clojure seem to be: REPL, functional language, immutable data, dynamic typing.<p>I wonder what would happen if someone adds a REPL to F#. Sure, it wouldn&#x27;t have dynamic typing, but isn&#x27;t static typing good for large code bases?<p>In particular, judging from the article and comments, it seems that the major boon is having an REPL integrated in the IDE, running in the background, so you can have feedback while you are writing the code.<p>Having such an integrated REPL for a language like Python would make the productivity up to par with Clojure?<p>I am trying to understand if Clojure has a particular feature other languages can&#x27;t add with ease.
评论 #43162120 未加载
评论 #43156779 未加载
评论 #43158492 未加载
codr73 months ago
Tried to love Clojure, but found it to opinionated as a daily driver for me.<p>Sometimes I just need to get some code running to see a result, which is my main use case for Lisp.<p>I used to default to Common Lisp, but it needs a lot of scaffolding to become ergonomic, and even then it has too many quirks to be really enjoyable for me.<p>So I started designing my own:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;codr7&#x2F;eli">https:&#x2F;&#x2F;github.com&#x2F;codr7&#x2F;eli</a>
评论 #43153847 未加载
评论 #43153535 未加载
patcon3 months ago
I&#x27;ve worked around an open source Clojure codebase for a few years. I&#x27;ve grown to dislike Clojure by virtue of the culture it apparently fosters. As a community organizer in some vibrant decentralized spaces, reading articles from inside the community gives me ick feelings. There&#x27;s a strange phenonemon involved when you have a diehard community that continually extols the virtues of the language, while the popularity of the language itself halves its open source marketshare every few years.<p>I mean, you have to try really hard to cultivate a community of people who have a deep love for something, but for some reason can&#x27;t see what is actually wrong with it that drives ppl away. Passionate users are usually a boon, but apparently not for Clojure. But people somehow seem to build great companies with it. It&#x27;s strange, and very specific to Clojure culture. I can&#x27;t help but assume its failure to capture market is tightly tied to its leadership style and&#x2F;or leader worship.<p>Anyhow, these are just hot-takes from the margins. I&#x27;m sure that passionate users will have something to say, or maybe downvote me.
评论 #43155249 未加载
评论 #43155263 未加载
评论 #43158463 未加载
评论 #43155244 未加载
kstrauser3 months ago
I’ve never used Scala or Clojure, but I heard them discussed a lot in the same circles in the late teens. It seems like Scala kinda vanished from common mention. Whatever happened to it, and what made Clojure take off?
评论 #43154564 未加载
评论 #43156405 未加载
评论 #43157218 未加载
asa4003 months ago
I love Clojure. I has influenced me more than any other language. It is without question the single most coherently designed programming language I know. I&#x27;ve written a fair amount of it, contributed to libraries, some of them core, so I hope folks don&#x27;t interpret this as drive-by criticism.<p>The biggest problem I had (and still have) with Clojure is that, even in its heyday (circa 2014-2018 or so) I couldn&#x27;t convince people to keep using it. It seemed like every smart, senior engineer I knew tried it, loved it, wrote load-bearing stuff in it, and then walked away: either abandoned it at their companies, abandoned it for personal projects, or started companies using other languages instead of Clojure. And this was when Clojure was hot shit. Big Data was all the rage, and everyone had heard of or was using Storm. Clojure was <i>the</i> language.<p>You might counter that maybe me or the people I know are fools, not smart enough for Clojure, or picked stupid languages for the wrong reasons, or followed the crowd, or whatever else. And you might be right!<p>But all I know is that the smartest people I know tried Clojure, learned it, respected it, learned a ton from Rich about how to think about systems, and ultimately walked away, because they were, variously, repelled by what they perceived as:<p><pre><code> - the elitism in the community - the elitism in the core team - the impenetrability of the tooling and the unwillingness of anyone to admit that it sucked - the sometimes not so subtle denigration of their skills as professionals for having the audacity to, for example, use web frameworks rather than build everything from scratch </code></pre> I bring this up because for me programming is social. I love being able to write code that does something fun and&#x2F;or useful and tickles that part of my brain that loves expressing what I want in a beautiful way, but ultimately it&#x27;s more useful to be to be able to write code that my friends and colleagues can understand and are willing to use.<p>So I have to wonder, is it sustainable for a community to be as reliant on true believers as Clojure seems to be? Is it sustainable to alienate as many of those folks who maybe aren&#x27;t true believers, but who would love using it anyway? Who knows, maybe it is! But I can tell you: I&#x27;m Clojure&#x27;s audience, and I don&#x27;t use Clojure today, and none of my now-Staff and Principal and CTO level friends are using it or teaching it to the juniors on their teams or choosing it for their companies. Why? Wouldn&#x27;t it be better if we were?
newlisp3 months ago
Using Clojure without Datomic can be frustrating since you feel like you lose some of the language&#x27;s value, as you likely want to extend its philosophy and style to the database as well. Of course, Hickey probably knew this when he started planning Clojure, which is why he also created Datomic. However, Datomic can be a hard pill to swallow
评论 #43154442 未加载
jasebell3 months ago
Done me fine for the last decade. Along with all the other languages that kept me in employment. I still use it daily.
fernirello3 months ago
Arne has written, as usual, an excellent piece. Not only it argues its intended points, but it can also be followed by everybody-it brings readers up to speed without assuming any significant background knowledge.
fithisux3 months ago
Now LISP has the big three. CL, Scheme and Clojure. Each introduces a fundamentally different way of thinking and all come from standards or standard implementations. There is also Newlisp, more akin to R and Julia and other LISPs each bringing some new things on the table. Still you need to have an idea from the big three to appreciate what LISP is all about.
tobyhinloopen3 months ago
How do people feel about Clojure on the client? (Javascript replacement)
dartos3 months ago
Is the elixir+erlang ecosystem less stable than clojure’s
lemper3 months ago
&gt; Positive self selection for hiring candidates<p>&gt; &quot;But what about hiring?&quot; When you use any language that isn&#x27;t in the top 3 of currently most popular languages, you will get this question. JavaScript programmers are counted in the millions, Clojure programmers in the tens of thousands. How will you ever find the required talent?<p>is it just me or i, for the love of whatever that is holy, find that fp related jobs are so few and far in between? not only clojure, but also f#, haskell, etc? to be honest, fam, if you want to sell a language or two, at least make it possible for people to make a living in it. sorry to say, mate, but my kids can&#x27;t eat a &quot;lovely&quot; niche programming language.<p>p.s., i actually have some working exp. in haskell yet nobody approached me because of it.
moi23883 months ago
Because you want the type safety of lisp with the simplicity of the jvm &#x2F;s
评论 #43152924 未加载
评论 #43153381 未加载
评论 #43155604 未加载
ddmichael3 months ago
Yawn.