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

What % of Java projects fail again? With Java, your convoluted mess is 100k to millions LOC. With Clojure, the same devs make the same convoluted mess but in 10k to 100k LOC, and you've left the door open for an inspired "true Scotsman" to come in and do the whole thing in 5k. But management has to understand that, and of course the principle agent problem, peter principle, politics, conways law ... Java is great for middle managers, it makes their department headcount grow, and they get to pretend the project is succeeding because nobody can tell otherwise.


With Java, your convoluted mess can be parsed by IDE and you can figure out what it is doing. Also, most of it looks the same and is Ctrl+c, Ctrl+v of something else.

With Clojure the mess is still 100k to millions LOC because the guys did not know how to make worthwhile abstractions, but now it can't be parsed by IDE and you are screwed trying to figure out what happens at runtime.

ALso, if you think if there is less code then it is easier to understand, go and read any advanced Common Lisp book (like Let over Lambda) and try to really understand what some of the more advanced macros do, exactly. It is definitely not the same as reading pages upon pages of redundant code.


This doesn't match my experience. I've had to deal with some Java code that the ide was useless to help figure out. Usually made worse by some over optimized build system that was non Google friendly to see what was supposed to happen.

Worse, the abstractions made it so that even a simple feature would require about six files. Not counting the tests.

Not to say that clojure has been a breeze. Worst I see there is developers refusing to use libraries it external programs and instead taking a ridiculous "first principals" approach. Even if they get it working, it is typically not search friendly, as everyone else is using some other tool. Basically, the same trap I see in build systems,


> I've had to deal with some Java code that the ide was useless to help figure out.

Spring annotations, maybe?


God I hate them. With annotations Java pulls off the rather unique trick of being both verbose and magical at the same time.


tbf, annotations aren't the blame. It's Spring's runtime magic with close to zero friendly figure-out-ability.


That and just over "abstracted" code that honestly feels like a strawman that someone made to argue against abstractions. :(


Millions of LOC of Clojure project is unheard of; from the article: Nubank has "2.7 million lines of Clojure code [encompassing] several hundred microservices written in Clojure" – the 2.7M is across the entire enterprise.

I have an enterprise client right now sitting on 1.5M java 1M SQL 1.5M XML for a single government system that mostly does not function at all, it just gets passed from contractor to contractor, each one sucking down a hundred million dollars before tossing the hot potato. Thanks for the money, Java!


A fintech that I am aware of chose Elixir and is a complete shitshow, they're trying to move away from it after being established with it.

Can't hire for it, can't refactor the code at scale, etc.

Be careful with what you read, newer languages are usually trying to sell themselves where established languages have happy people not trying to sell it, or, resume driven developers trying to sell it as bad.


New languages have green field projects by its very nature feeding the hype.


Brex?


> With Java, your convoluted mess can be parsed by IDE and you can figure out what it is doing.

This is not my experience whatsoever.


Can you elaborate on “Clojure can’t be parsed by IDE”? Surely some amount of static analysis is possible.


The same amount of static analysis as Python, Ruby, or any other language that doesn't have static type checking. Some people need something to happen when they press dot, though: https://www.youtube.com/watch?v=aSEQfqNYNAc


As I've been mostly using Python for the last 10 years I forgot how nice this dot thing can be ;). True that vscode and pycharm can give you something but I found that it's very often crap.

I am writing a little bit of C# atm and astonished how you can just dot tab through your work (without ever having read a tutorial or book on C#) and all those other contextual information you get with "full" visual studio. Somehow feels like just letting you guide through the work :).

On the other hand, the students I teach really struggle when they don't have all their IDE tricks. They learn almost exclusively C# at their institution in the first year(s) while my experience is mostly playing with Unity ;).


Gotcha, that's kind of what I figured.

Frankly, VSCode is reasonably good at giving you something for Python, and the relative lack of static analysis is offset by other qualities of the language, so this feels like a pretty weak argument.


It’s really hard to argue that Java projects fail at unusual rates, given how much stuff runs on Java.


There is a bit of survivorship bias there, I've seen a lot of Java projects fail, but the blame is only partly on the language, really its the fact that there are so many developers, and the pareto distribution of good to bad java programmers. That and business do not know what the f*ck they are doing. I've seen really good java devs at work, the software they produce is amazing, but the code and structure is incomprehensible, they are masters and I am a mere mortal. Clojure on the other-hand is simpler, higher level, more expressive, but you can still shoot your foot, just like java.


you cannot measure anything at all about failure rates by looking at successes


But are the rates for Clojure failures more or less than Java?


It is unlikely you will find apples to apples comparison.

What if Clojure projects are more risky by selection bias?


Maybe not at unusual rates, but I wouldn’t be surprised if the rates are high.


When you measure the failure rates of Java projects against the failure rates of Clojure projects, you’re not measuring the failure rates of a language, but rather the general failure rate of software in industry vs the failure rate for a (likely) small, motivated team.


Higher than average? That's very much a [citation needed] moment if I've ever seen one.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

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

Search: