3 ms·
only since 2017 :) people basically judge java based on what you learn in AP CS which is basically (a dumbed down version of) java 6 (released 2006).
by spullara 2y ago
only since 2017 :) people basically judge java based on what you learn in AP CS which is basically (a dumbed down version of) java 6 (released 2006).
- vips7L 2y agoIt’s honestly the only programming language that will get its 1996 version compared to a new 2025 version of another language. And the only language that will be criticized by someone who last used it in 2006.
- homebrewer 2y agoPHP gets the same treatment all the time.
- AmpsterMan 2y agoPHP and Laravel are amazing.
- mey 2y agoI have been developing Java for a long time and my brain tends to stay stuck in Java 8 mode a lot of the time.
- james_promoted 2y agoDefinitely not the only language. Other long-lived languages like C++ get this treatment too.
- motorest 2y ago> And the only language that will be criticized by someone who last used it in 2006. You don't sound like you work with Java. I know for a fact that even some FANGs, with their army of software engineers, still use Java8 for most of their Java projects.
- throwaway03452 2y agoHistorically an upgrade could cause issues if the code or dependencies used undocumented functionality (like Byte code manipulation) or calls to native code, or the transitions to modules in v9. Upgrades after version 11 should be less "risky" and be easier to argue to management. From what I can tell, there are 4 main reasons why some don't upgrade. 1. They have legacy software and are afraid of breaking it, sometimes with good reasons. 2. The devs don't know or care enough about the new versions to bother with it. Noone is promoted because of an upgrade. Work to live, and don't live to work 3. The ones who don't have buy in from management to spend time fixing something that works 4. They are using version 11+ that should be much safer to upgrade than earlier versions, but they are still in the mindset of 1 or 2 above There have been huge improvements not only in the language itself, but also performance and memory use. They could save money if they upgrade, but in some cases this is acceptable because they can make more money by spending time on a new feature, than an upgrade. In my last 3 workplaces, they usually tried to use the latest LTS versions. But to be honest, some of the services were in maintenance mode and we didn't get enough benefits to upgrade, so we were sometimes falling behind. Today we have a mix of v17 and v21. Anyone can upgrade anytime they want but noone cares about a service that you seldom work with. I feel kind of bad for that, but not enough to bother. I focus mainly on the services that I work with daily, and make sure they are using the latest versions
- motorest 2y ago> From what I can tell, there are 4 main reasons why some don't upgrade. You missed the most obvious reason to not upgrade: there is no good reason to do it. > There have been huge improvements not only in the language itself, but also performance and memory use. That's debatable, and even if we blindly assume that then it's debatable whether the upgrade justifies the gains. More often than not, it doesn't.
- vips7L 2y ago> That's debatable, and even if we blindly assume that then it's debatable whether the upgrade justifies the gains This is not debatable. It’s a factual truth. Every single actual performance review concludes that modern Java vastly out performs the decade old Java 8 runtime. For an example here is a quote from Hazelcast when comparing performance of modern Java on data heavy workloads [0]: > JDK 8 is an antiquated runtime. The default Parallel collector enters huge Full GC pauses and the G1, although having less frequent Full GCs, is stuck in an old version that uses just one thread to perform it, resulting in even longer pauses. Even on a moderate heap of 12 GB, the pauses were exceeding 20 seconds for Parallel and a full minute for G1. The ConcurrentMarkSweep collector is strictly worse than G1 in all scenarios, and its failure mode are multi-minute Full GC pauses. This is from 2020 and the gap has only gotten wider. [0] https://hazelcast.com/blog/performance-of-modern-java-on-data-heavy-workloads-part-1/ https://hazelcast.com/blog/performance-of-modern-java-on-dat...
- motorest 2y ago> people basically judge java based on what you learn in AP CS which is basically (a dumbed down version of) java 6 (released 2006). I don't think people realize Java8 was until very recently the dominant java version in production software, and currently close to 90% of all java projects still run on java11 and earlier. Edit: after checking New Relic's 2024 report on the java ecosystem, it sounds like java11 and earlier is now at slightly over 60%, with java17 being used in around 35% of the projects.
- spullara 2y agoFor software written in that era currently under maintenance mode, I don't expect people to upgrade their java language version though upgrading their JVM is a good idea.