Why are the links larger than the body text on mobile? It’s so annoying trying to read this whole article. Especially when one of the links is pushing their commercial support of Java.
Good design and java rarely go hand in hand. These small details matter. I don’t think it’s a mistake that Ruby, JS, Rust, Elixir, etc attract people with good design sensibilities which is reflected in their blog posts, websites, and also API designs, documentation, etc.
But otherwise this articles content is not bad, I think we all know why Java and C++ are so popular. It’s one of the first questions every programmer learns their first year programming. This article is a good summary of why. The fact both C++ and Java got things like Lambdas and other modern stuff in recent years is great, but they are obviously incredibly late to the game. Which makes you wonder how long until the other good things will take. Maybe that whole backwards compatibility with decades of some questionable code being a dead weight dragging down the language is one of the reasons why people hate it? You can repaint a broken down house but that doesn’t mean it’s as good as the new house next door.
Any language that will survive as much as Java or C++ will accumulate some baggage, even your cool shine new language will look outdated 20 years from now to the new cool programmers.
Look at other examples, CSS - full of bad examples on how do do X, JS - a lot of bad parts, missing core stuff like importing modules , Python - it had is issue caused by some old decisions that caused a lot of pain when migrating version 3.
My point a 5 old years new language will eventually have similar issue in 10-15 years
The point is to work at the sweetspot of emerging language/high pay and then get out once the framework decision level bugs start emerging.
Then come back as a consultant in 20 years at the intersection of high pay/no one else can figure out how to fix the software.
If you're working with Java you're mostly in medium pay/tearing hair out coz of legacy issues-which you WILL have because a Java shop never COMPLETELY moves to the new thing. Not a fun place to be.
>If you're working with Java you're mostly in medium pay/tearing hair out coz of legacy issues-which you WILL have because a Java shop never COMPLETELY moves to the new thing. Not a fun place to be.
I am working in the present on Web tech, SPAs, but you know what, it sucks even if is the cool thin, the project was started with angular1 which is no longer the cool thing, it uses ES5 and gulp(no longer the cool thing), the backend uses Silex(a PHP framework that is not that cool) ...
The only cool thing I assume is to start new project in the this month cool shit and then after 1 year move to the new shiny and let people like me maintain your inexperienced code in the experimental shiny thing of last years.
Meanwhile people are porting old features from Java into newer languages. I say newer and not more modern because it's yet to be clear that many of the new shiny languages aren't actually ahead of the game in some areas but behind in others. Maturity of their ecosystems will be a good tell down the line.
It’s not the language that is the problem. It’s more to do with just how many people use Java, and it being so ubiquitous results greater numbers of poor quality coders. Lesser known/adopted languages tend to be picked up by those who are already good at developing and designing.
Whilst I agree, it's language features are meant to reduce some of those issues. The rope you have to hang yourself with is a bit shorter than you have in other languages. At least in theory.
In practice, the language gives you enough rope if you don't think or care about design at all. This is a typical beginner's problem once they get past their first toy programs and try to write something useful.
I agree. Things like type saftey, interfaces, protected methods and properties and so on are what I was referring to. These kinds of features are borne out of necessity from big code bases and big teams, where you can't trust that every line of code will be written to the software architectures guidelines.
It shouldn't be possible for a new hire to feed a Customer to a Product repository for example, and in most mature languages we've made language level features to doo that, so we don't have to manually code checks in everywhere.
Eventually NewLanguage shows up without type saftey and everything is going great as it gets used in smaller projects. But then big teams start picking it up and suddenly these things are issues again.
> Java got things like Lambdas and other modern stuff in recent years is great, but they are obviously incredibly late to the game. Which makes you wonder how long until the other good things will take.
I see it all the time and I always found this sentiment incredibly bizarre. It seemed to presuppose that there is language ranking that is just a matter of feature check boxes, or that the introduction of a feature is some sort of admission that it should have been there all along. I hear it leveled at Go in particular but Java as well.
I can't speak for C++, but at least in terms of the Java-the-language most of us would rather see a language feature absent rather than done poorly.
It's not just a matter of borrowing from other languages. Each language's features have particular interactions with one another.
There are a thousand ways that Java's lambdas or var could have been introduced poorly. Go has shown that there's definitely an audience for more austerity in language design.
> Java got things like Lambdas and other modern stuff in recent years is great
These feel incredibly bolted on. Instead of a utilitarian, if verbose, lowest common denominator type of language, Java is becoming a Frankenstein monster. And a verbose one at that.
> Good design and java rarely go hand in hand. These small details matter. I don’t think it’s a mistake that Ruby, JS, Rust, Elixir, etc attract people with good design sensibilities which is reflected in their blog posts, websites, and also API designs, documentation, etc.
That's an interesting claim, but now that I think about it, I wholeheartedly agree. The reason for that might be Java's poor support for UI programming (especially on the web) and the coders therefore creating their blogs with alternative languages and ecosystems that they are unfamiliar with.
So only HTML/CSS programmers are decent at design? Honestly I see a lot of bad practices in Web, like using Divs for buttons when you could have use the button element(maybe there are exceptions but not in the cases I seen)
Good design and java rarely go hand in hand. These small details matter. I don’t think it’s a mistake that Ruby, JS, Rust, Elixir, etc attract people with good design sensibilities which is reflected in their blog posts, websites, and also API designs, documentation, etc.
But otherwise this articles content is not bad, I think we all know why Java and C++ are so popular. It’s one of the first questions every programmer learns their first year programming. This article is a good summary of why. The fact both C++ and Java got things like Lambdas and other modern stuff in recent years is great, but they are obviously incredibly late to the game. Which makes you wonder how long until the other good things will take. Maybe that whole backwards compatibility with decades of some questionable code being a dead weight dragging down the language is one of the reasons why people hate it? You can repaint a broken down house but that doesn’t mean it’s as good as the new house next door.