3 ms·
As somebody who has been professionally developing in Java for 24 years I have spent a lot of time trying to understand continued success of Java. Personally,
by onetimeuse92304 3y ago
As somebody who has been professionally developing in Java for 24 years I have spent a lot of time trying to understand continued success of Java.
Personally, I think Java is very poor language. I wish I could program in something like Common Lisp or even Clojure. And yet every single corporate Clojure project I have seen was a total disaster.
I think what happens is for new developers, Java does not come as just language. It comes with a huge ecosystem including books, Stack Exchange/Overflow posts, frameworks, certifications, etc. All of this gives developers a basic template for how an application should look like.
And, paradoxically, all of this is aided by Java which is a poor, repetitive language.
When I open a new Java project, I can easily identify all of the parts. Enough of the structure is a simple copy and paste of another project, that whatever is different must still follow certain rules.
Project that do not follow this blueprint tend to be flops and huge maintenance problem.
So why is that? I think most developer underestimate that structuring an application is a skill in itself. When given a preexisting structure to fill in with functionality, they are following good, established structural patterns that are instantly recognizable and understandable by the community of Java developers. This makes it easy for new people to not get completely lost in even a large application.
When the same Java developers decide to make something in Clojure, they are now responsible for structuring their application without any clear guidelines or established patterns on how to do it. And for some reason they tend to not understand is that their existing experience has not taught them what to do in this situation.
- jayd16 3y agoAgain, That just makes it sound like a good language that isn't to your taste but is so aggressively adequate that its hard to justify your preferences, no?
- binkHN 3y agoWhat's your opinion on Kotlin?
- onetimeuse92304 3y agoKotlin, in my opinion, is a language thought up by bored Java developers to spice their lives a bit. All Kotlin code I have seen in the past (and I saw a lot of it) is line by line transposable to Java. It is Java written in Kotlin by Java developers. If there are Kotlin features that really make it unique -- I have never seen any of the put to good use other than a tiny bit of syntactic sugar. I definitely have seen no productivity or quality of results increase of any kind. You can fuck up an application in any language. And you can write clean code in any language except the most hostile. No programming language has ability to make the programmer write clean code. I can write nice object oriented code in ANSI C. It is all in our heads. The single biggest problem with Kotlin is that, to be able to program Kotlin, you need to also know Java. So now you need a candidate to know TWO languages to be productive. That really makes my hiring much easier... Another problem is there are some Java devs pushing Kotlin aggresively. And I also have lots of developers who do not know Kotlin. So the equation is make a small portion of developers maybe a bit more happy (and I don't believe they will be more productive) and make the rest of developers much less productive.
- pylua 3y agoWhy do you think it is a poor, repetitive language? It feels to me like all programming languages are starting to converge in many ways.
- rokkitmensch 3y agoI was just remarking to a friend in leadership that "you certainly wouldn't hand a blank slate to any but your most demonstrably-competent-with-the-blank-canvas lieutenants, and this is why we advocate for the boring things like Java and Python, because the patterns in those ecosystems are well known, and the React boffins are still reinventing the world of state management every thirty-six months."