4 ms·
"a solid foundation for the future" is faint praise for a language that has been around for over thirty years. > It has become a best of breed language To me
by andyjohnson0 7mo ago
"a solid foundation for the future" is faint praise for a language that has been around for over thirty years.
> It has become a best of breed language
To me it lags significantly behind .net (runtime) and C#/F# (language). I don't see Java catching-up.
- gf000 7mo agoThey trade blows, and have different philosophies (complex runtime, simpler language vs the reverse). E.g. on the GC side Java is ahead of any other platform, especially with the low-latency ZGC garbage collector.
- spockz 7mo agoI would love to have a Java compiler with the capabilities of the .net compiler. To make incremental builds to aid code completion including type information, looking past simple syntactical errors, fixing them, and continuing compilation. Currently, this is “magic” embedded in eclipse, IntelliJ, and maybe a bit in the vscode plugin. Imagine having a Java LSP running that can provide all this information while typing. .net has had this for ages. From a language design I think that is wonderful.
- hocuspocus 7mo agoJava LSP backends are basically headless Eclipse and NetBeans, they definitely go beyond syntactical errors. There's also the upcoming Metals v2 that's using another compiler frontend optimized for performance, Google Turbine: https://metals-lsp.org https://metals-lsp.org Actionable diagnostics for Java aren't implemented yet though.
- pjmlp 7mo agoIt also slows VS code a lot, is not properly documented, and still relies on concatenating strings together, due to Source Generators interaction with attributes.
- adgjlsfhk1 7mo agoThe counterpoint is that Java has so much SOTA GC work precisely because the language makes writing efficient code that doesn't heavily tax the GC basically impossible.
- rossjudson 7mo agoTell me you haven't looked at Java in 15 years without telling me. Given that the vast majority of non-GC language code does a terrible job of managing memory, it's not difficult at all for the JVM to win out on efficient, reliable systems.
- adgjlsfhk1 7mo agoTo be clear, I think that GC is absolutely the right approach, you just need an object model that lets you write idiomatic code that allocates an order of magnitude or 2 less. Once Valhala is (finally) released, the Java ecosystem will start to have the tools to write efficient code (the same tools that C# has had for ~2 decades now), but until then it's just completely impossible to write object oriented code in Java without millions of allocations per second.
- lucketone 7mo agoJava is 4th on tiobe. Bright future for it just means it is not planning to become 40th or 400th. (My prediction - in next ten years java will always be among top 6; new language might come to the very top and some leapfrogging game between c# and java)
- pjmlp 7mo agoOn the contrary, as someone that earns their bread using both ecosystems, .NET is still pretty much tied to Windows, regardless of .NET team efforts, most shops going with macOS or Linux are former Microsoft shops saving on server licenses or giving Macs to their devs. There are many platforms where .NET doesn't have an implementation, a phone to call their own (even if ART isn't proper Java, WP is no longer around), embedded systems, including factory and military weapons deployments (PTC, Aicas, microEJ), copiers (Xerox, Ricoh), phones (Cisco),.... C# is definitly better than Java dealing with value types and low level programing, or being embraced by the game development community, however not sure if the featurities of last years is the right path, I am starting to feel I should just reach directly to C++ instead.