3 ms·
When Java was new it was pretty radical though. At least in the category of mainstream corporate languages. Who else was offering things like an advanced specul
by nvm0n2 3y ago
When Java was new it was pretty radical though. At least in the category of mainstream corporate languages. Who else was offering things like an advanced speculating VM, stable/documented bytecode, a huge stdlib, a cleaned up C++ like memory safe language with reflection, sandboxing, applets etc? It was sufficiently radical that MS had nothing like it and felt a need to respond with their own Java impl and later .NET, the UNIX world had nothing like it either and that led Miguel to try and implement .NET for GNOME.
If you compare Java to obscure languages that hardly anyone used outside of the MIT AI Lab then you could argue it was conservative. But that wasn't the space it was playing in.
It feels like this Java as slow-follower idea is actually relatively "new" and more of a response to it slipping from being a relatively futuristic platform in the 1990s to being unable/unwilling to really try new things now.
- marginalia_nu 3y agoI wouldn't want to work in an ever evolving always experimental language. Languages that keep changing are annoying and makes your code break. That's time and effort spent not building stuff.
- pjmlp 3y agoSmalltalk. Which was hardly experimental in 1996, with IBM VisualAge series of IDEs being written in it, and being the ".NET" of OS/2. There is a reason why hotspot and most early IDEs trace back to Smalltalk environments, frameworks and culture.
- kaba0 3y agoJava was always conservative on the language front, but much more experimental/state-of-the-art on the runtime one, and that is still true today (e.g. GC-wise no other language is even close to Java’s, and basically every research is against that)
- cesarb 3y ago> Java was always conservative on the language front, but much more experimental/state-of-the-art on the runtime one These two things might not be unrelated; a state-of-the art runtime might be necessary to compensate for weaknesses of the language. > and that is still true today (e.g. GC-wise no other language is even close to Java’s, and basically every research is against that) For instance, a language which generates less garbage on the heap (instead of boxing nearly everything) would have less need for an advanced GC.
- kaba0 3y agoHaving to break less due to regenerative breaking in electric cars doesn’t make advancements in breaking technology obsolete - surely, java will get to value types sooner or later that will decrease the amount of allocations, but most programs do make extensive use of the GC fundamentally, so both advancements will improve the language.
- DarkNova6 3y agoThe other way to see this is that a powerful runtime allows to write more straight-forward code. Allocation in the heap allows for much more powerful programming constructs as n object owns it’s own memory layout. Back in 1990 the cost of pointer indirection was virtually free. The need for stack allocation came up only somewhat recently. And the value object model Oracle has come up is infinitely more powerful than what comparable languages are offering. The trend in performance is allocating more jobs to the runtime. In HPC, this is already the de-facto standard.
- dtech 3y agoThis isn't particularly relevant. Java has been very conservative with language changes since at least 8 (2014) but I'd argue 5 (2004) so for the past decade or 2 it has been a conservative language.