You are viewing a single comment's thread.

view the rest of the comments →

[–] notenoughstuff [S] 0 points 0 points (+0|-0) ago 

Java the language, Java the JVM, or Java the ecosystem?

[–] Morbo 0 points 2 points (+2|-0) ago 

All of the above.

[–] notenoughstuff [S] 0 points 2 points (+2|-0) ago  (edited ago)

Any good alternatives in your opinion, especially if you want something that has good cross-platform concurrency support?

[–] Laplace 0 points 0 points (+0|-0) ago  (edited ago)

The Java Virtual Machine is an ABOMINATION, the JVM is to programming what SJWs are to society!

Java the language is slightly less insane, it is just a very prolix committee designed language that suck the will to live out of you.

The Java standard libraries are the least worse, nevertheless instead of doing few things very well they do many things half-assed.

If Marxism, Egalitarianism/Feminism and Java prove anything is that when smart people fuck up they fuck up BIG TIME.

Once again the idea of running virtual machines especially on mobile platforms, and so energy bound, is so idiotic it should have received the Nobel Peace prize together with Arafat, Kissinger and Obama.

[–] KikesDidJFK 0 points 0 points (+0|-0) ago 

Marxism wasn't a fuck up. It functions pretty much exactly as designed -- promise naive idiots the world for just long enough to seize power, then have them killed if they complain about your lying.

[–] notenoughstuff [S] 0 points 0 points (+0|-0) ago 

I did also find it a bit curious that Java was used for mobile platforms, but as I recall, Java was originally meant to run on certain kinds of embedded platforms, with its main feature being cross-platform. There was (might still be) something like Java ME, though I would believe it is scarcely used these days. The main "editions" of the Java "platform" ended up, I believe, too bloated for many purposes, including containers - the idea of running multiple applications on the same JVM and thus "amortizing" (I think the CS-term is) or decreasing the overhead of the JVM per application did not have enough isolation and was also a very Java-specific solution which does not play well with generic containers and the like. I believe that is why they have sought to "modularize" the JVM itself, primarily for the purpose of making it more suitable for usage with containers through less overhead per JVM instance, and I believe that is why it does not seem to be a solution that is encouraged for any libraries or applications in the ecosystem (though I could be wrong about it not being encouraged).

I do very much like the cross-platform aspect of it, especially the cross-platform concurrency support - Java was one of the first mainstream languages/platforms to get an official memory model, and C++ as well as .NET only got it several years later I believe. There are other and in multiple important regards better ways of approaching some of the challenges that one might encounter reg. concurrency and related aspects, such as shared-nothing concurrency as well as the way that Erlang approached both concurrency and distributed systems, but those did for various reasons not hit the mainstream as much (I have heard that the Erlang VM/runtime is not as efficient as the JVM reg. speed, for instance due to JIT and other runtime optimizations as well as Java being statically typed, though it might be better reg. memory usage and other aspects - I do not know).

Java the language has gotten much better with Java 8, though is still very warty. There are other languages - I like Scala myself, but cannot unconditionally recommend it: often breaking backwards compatibility; compilation times (though the code can also be shorter); poor tooling (not that the tool authors did not work hard and well on it, more that the language is both complex (its core is actually small, but a lot is built upon that core, and the academic influence can result in half-baked and experimental parts being included) AND has kept changing a lot); abuse, harrassment and hostile take-overs by SJWs or (((people))) of major libraries and the like, counts against it. But it does have some very nice things, and the Java language designers look a lot at Scala when figuring how to evolve Java the language, especially the ML and functional programming features and how Scala encodes/implements them on the JVM and its approaches and abstractions reg. it. They do seem to seek to learn from the mistakes and experiences of Scala, and they have the advantage of controlling the platform and being able to change it.