4 ms·
Fully agree. We're moving our work codebase from Clojure to Java. It's true that Java is boring and old and simple. That's what makes it great! Now we can focus
by sdegutis 10y ago
Fully agree. We're moving our work codebase from Clojure to Java. It's true that Java is boring and old and simple. That's what makes it great! Now we can focus 100% of our efforts on the business logic rules. (Granted, sometimes I wish we were using C# instead. But only sometimes.)
- ungzd 10y agoClojure is real boring stack. No abstract singleton proxy factories, just plain scripting. I have web application in production using plain Ring API, without frameworks. Like good old days of CGI and PHP but more sane.
- edwinnathaniel 10y ago> No abstract singleton proxy factories I barely see this in the code that I wrote given that I've been writing Java code for ... 8 years? (unless you're writing Spring framework itself) Can we please drop this?
- kelnos 10y ago> Can we please drop this? I would love to agree with that, but I don't think we can. I've been writing Java (well, more recently Scala) for 14+ years, and I still see otherwise great programmers succumb to Java class-itis.
- lacampbell 10y agoI see a lot of bad C# code, but I don't feel the need to make snide comments about C# whenever I see or hear it mentioned. It's pretty clear to me it's not the languages fault. There's nothing in Java forcing you to make deep class hierarchies or leaky abstractions.
- kelnos 10y agoNothing that forces you, sure. But when you have a culture following that language for so long that encourages that, and have existing 3rd-party libraries and an ecosystem that makes it easier to do that... well, that's what happens. Not sure about the GP of my original comment, but I'm not trying to be snide; I just see it everywhere, and it really frustrates me. I don't see it with Scala/C++/python/ruby programmers, so what's the common denominator? The language.
- ungzd 10y agoI even see such constructs in Ruby periodically, including discussions that it's proper engineering that all serious people do. And Angular 1.x is famous example of this in JS. I used Play framework that especially opposes these practices in Java but I felt like language resists such riot attempts.
- petagonoral 10y ago"..from Clojure to Java" Having used Clojure for a production environment, I really would have a hard time recommending it for anything but the most trivial application. It's just not mature enough for anything that is going to be worked on by more than a small team and alive for more than a couple years, both in ecosystem & language maturity.
- grzm 10y agoI think a lot of people would like to hear about your experience. I know I would. Do you have a blog post or similar describing it?
- petagonoral 10y agoStill a bit to go on articulating & better structuring my thinking.
- cutler 10y ago"... trivial application ..." You mean something like the testing system for the Boeing 747? https://news.ycombinator.com/item?id=11511695 https://news.ycombinator.com/item?id=11511695
- dismantlethesun 10y agoWith enough effort and stubbornness, you can build any system in any turing complete language. Whenever people point out massive projects done by Fortune 500s, I do recall this and think "yes, Boing can do that, they also used Ada before for the same thing", and "yes Google can mesh 5 different languages within the same company, 2 of them invented there". Does that mean my company can do that? No. We'd burn our capital stake long before we get to the point of seeing returns versus taking the 'boring' well trodden route that everyone is already experienced in.
- cutler 10y agoI'd say more "effort and stubbornness" is required to get a Java/C# app out the door in decent time compared with Clojure. There was a study not long ago in which Clojure won hands down for least number of bugs and lines of code. I think Rich Hickey got a few things right so don't write-off Clojure too hastily. There's also Clojure Spec round the corner so you'll be able to have your types and eat it too. Win, win surely, no?
- saosebastiao 10y agoIf you want C# but on the JVM, you're gonna have a better time with Scala than you are with Java. It's a 12 year old language, but yet still exciting in some respects, and it covers pretty much a full superset of C#'s functionality (a handful of uglier hacks for reflection like ClassTags, but can still do it).
- Yeroc 10y agoI'm sure many will disagree with me on this but I'm convinced that Scala is the Perl of the JVM world. It's a language with too many succinct but unreadable ways of doing things. Ultimately I don't think languages like this age well and will eventually be super-ceded by other languages.
- cutler 10y agoProbably Kotlin.
- petagonoral 10y agoHow big was your Clojure code and what type was it(UI, just sever side)? Also, what length of time was your Clojure codebase alive for?
- Scarbutt 10y agoWriting Java is painful, especially if you know Clojure ;), I would say that by now Clojure really is a mature tech, but yes, the ecosystem is lacking and very small compared to Java, Python or JS.