Earlier quoted context omitted.
Use OpenJDK! Never touch anything from Oracle. Then you will be fine. Oracle is the company that wants you to buy a license for your MariaDB(!) instance running on a small AWS instance! Yep, that happened. Source: have worked with Java for years, three of those around Oracle products.
> Use OpenJDK! Never touch anything from Oracle. But OpenJDK is Oracle's. They are the primary contributors to the project, and they really made it 100% open-source.
Java Is Underhyped
211–220 of 808 posts
Re: Java Is Underhyped
#212Earlier quoted context omitted.
IntelliJ is nice, don't get me wrong. You can't really get a nice (for 2020) experience out of Java without it, because it's an absolute slog of a language. Just... so... much... ... ... ... everything. IntelliJ cuts through all that. You can get a nice for 2005 experience with Eclipse. Without an IDE, Java really falls down. Java is a phenomenal piece of kit, the amount of engineering that went into the JVM is insan…
> Without an IDE, Java really falls down. VSC has a pretty good Java experience.
[1]: https://github.com/redhat-developer/vscode-java/issues/1132
Re: Java Is Underhyped
#213Earlier quoted context omitted.
> You know the joke: a dev has a problem, uses Java, and now has a ProblemFactory :) I LOL’d at this joke (again) because it’s true, but if we’re honest, it’s also unfair. ProblemFactory is a bad idiom, rather than anything to do with Java The Language. You could (and IMO, probably should) just use a new Problem(). Java The Language was very stable for a very long time, so IMO the hype and fads got built on top. Firs…
The crap people created on top was typically responses to deficiencies in the language, whether they knew it or not. Stuff like "everything is a class".
Java also had the unfortunate destiny of becoming popular at the time where "OOP all the thing" was a mantra in tech circles. Also design pattern were all the rage.
Those things have a huge inertia, and while Java is not a much more flexible language, the image stuck, to the point that new comers still implement singletons in the wild.
Re: Java Is Underhyped
#214Earlier quoted context omitted.
> - The programs are very verbose for the functionality they provide. That's true for 2005, not 2021, with var, type inference, closures, streams, and other such features. And since forever getters/setters are auto-generated by the IDE (including Emaca and Vim) and can just be ignored, and Java today has Records which don't need them. > - If you do want to use Java ecosystem, there is Scala. Now you have exponential…
> No, you really don't. Production algorithmic trading app, 100k LOC, 8 GB heap, 258 threads, right now only using 105% CPU; Java 11, and this is the complete extent of JVM tuning we have done: -Xmx8g -XX:+ExplicitGCInvokesConcurrent Back in the Java 1.x days, you often did need to do careful JVM tuning. But for the past few years, you haven't. The ergonomics are enough for a very broad range of workloads.
And to add to what you wrote for those that are not familiar with those types of apps: "Production algorithmic trading apps" is among the worst case regarding to peformances / pauses / and tuning needs.
Re: Java Is Underhyped
#215Earlier quoted context omitted.
I've seen plenty of even small Java projects becoming hard to manage as well. The design pattern hell is a thing. You know the joke: a dev has a problem, uses Java, and now has a ProblemFactory :) Not to say Java is not a great language for big projects, it certainly is well equipped for that, especially because it has superb tooling available on the market. But I've done plenty of big projects in Python, some ended…
> You know the joke: a dev has a problem, uses Java, and now has a ProblemFactory :) I LOL’d at this joke (again) because it’s true, but if we’re honest, it’s also unfair. ProblemFactory is a bad idiom, rather than anything to do with Java The Language. You could (and IMO, probably should) just use a new Problem(). Java The Language was very stable for a very long time, so IMO the hype and fads got built on top. Firs…
The Factory pattern’s pervasive use in Java was in large part a fairly direct consequence of JavaBeans requiring nullary constructors, so that the normal constructor work for a Bean had to be done elsewhere, i.e., by a Factory. Now, Beans was just a core part of the first-party enterprise framework that was central to the ecosystem and not strictly part of the language, but its not completely unrelated, either.
Re: Java Is Underhyped
#216Earlier quoted context omitted.
But not Rust. And Go is better if you do I/O. That's my points. Compromises. I'm not saying "Java is bad". I'm saying, "I have no use case where I, personally, would use Java over something else." I do know other people have use cases for it. I just don't, because those compromises don't make sense for me.
Where is Rust AWT? Not to mention Swing, JavaFX, or even an whole mobile ecosystem.
Java does have android right now, although it has to share with ReactNative, Xamarin and flutter. Again, for different compromises.
Re: Java Is Underhyped
#217Earlier quoted context omitted.
> The last 1%, jumping to java is not a big difference That's where you're wrong, kiddo.
Oh, I'm afraid I can't claim that sobriquet anymore unfortunately. But that's not the point. The point is that, for the 99%, staying on a slower language is ok. For the last 1%, I'll skip Java and go to Rust/Go. If I have to do a rewrite for perf sake, I'm not going to go half way.
Re: Java Is Underhyped
#218Earlier quoted context omitted.
The crap people created on top was typically responses to deficiencies in the language, whether they knew it or not. Stuff like "everything is a class".
Design design does lead community culture. Java also had the unfortunate destiny of becoming popular at the time where "OOP all the thing" was a mantra in tech circles. Also design pattern were all the rage. Those things have a huge inertia, and while Java is not a much more flexible language, the image stuck, to the point that new comers still implement singletons in the wild.
It was very much a marketed language and a language designed to be sold to top heavy corporations. This fueled a lot of the crappy design decisions, the hype and the culture.
Re: Java Is Underhyped
#219For my use cases, Java has all the wrong compromises: - not high level enough to compete with Python/Ruby/JS/PHP, etc - not low level enough to compete with Rust/D/Nim/Zig - not specialized enough to compete with Erlang/R/Go/Julia - not opinionated enough to compete with Lisp/Haskell So why use Java ? It's good, it's fast, it's productive, it's well supported, battle tested and documented for decades with a huge pool…
The language itself isn’t great though. Java solutions tend to be bloated and make it hard to decipher the underlying domain logic.
I certainly wouldn’t pick Java for a small team of experienced developers.
Re: Java Is Underhyped
#220Reading between the lines, I feel like the author (who admits that they are new to the industry) is placing too much emphasis and value on certain technologies having "hype". This is reasonable - I also was a bit like this when I was starting out in my career. I feel like the takeaway the author should have arrived at is that hype comes and goes, and doesn't really correlate with whether a piece of technology is valu…
It's following the hype that steered him wrong in the first place.
Over time, I've found myself more interested in tech that sticks around. There's usually something to learn from it.