5 ms·
Well that's pretty simple. There isn't really a suitable successor that does what Java really does. It was low-enough level to have decent performance and hi
by Nelson69 16y ago
Well that's pretty simple. There isn't really a suitable successor that does what Java really does. It was low-enough level to have decent performance and high enough level to be used to quickly do some complex stuff with some runtime protection.
I'm curious, the JCP didn't exist until quite a while after Java got going. There are tons of documents in various states of completion and with various levels of support. To me, JCP has sort of given java a terrible look to the non-java coder. It looks fat, bloated and incredibly Byzantine. I've actually heard developers have conversations about JCP<number>, that just seems like a bad thing to me. Meanwhile SpringSource has done some great and wonderful things. Even newer JCP specs, like JPA (if that's 'newer') were sort of done outside of it all and then backported in to the JCP process.
I don't know, C has been pretty much "dead" for decades, there is very measured and limited change in that language. Putting the Java language in a similar place, adding some dynamic support to the JVM and maybe focusing on cleaning up the class libraries and interop with higher level languages might be the best thing for it.
I don't know, it all looks bad, that's for sure but i can't say the JCP was the end all be all either.
- loup-vaillant 16y ago> There isn't really a suitable successor that does what Java really does. It was low-enough level to have decent performance and high enough level to be used to quickly do some complex stuff with some runtime protection. There was such a successor before Java even existed: ML. It is safer, and current free implementations are at least as fast (and they have a C FFI). The catch is, programmers need to recognize that "OO" is little more than a brand, then see that despite it's "FP" branding, ML implements the underlying principles just as well (if not better).
- gjm11 16y agoUnfortunately, what Java really does isn't only to be that combination of low-level and high-level. Just as vitally, (1) it is nice and easy and familiar for programmers familiar with current mainstream languages -- C-family syntax, approximately the usual control structures, few concepts that someone who's already programmed in C or C++ or C# or whatever won't find reasonably familiar -- and (2) it comes with a big bag of libraries for doing standard things: UI, database connectivity, regular expressions, logging, XML processing, and so forth. Yes, ML is pretty good at those underlying principles; yes, you can use it to write code that's compact, safe, and fast; but it's not going to replace Java because #1 and #2 make Java easy for "ordinary programmers" doing ordinary businessy programming in a way that ML isn't and probably never will be. (For the avoidance of doubt, I am not arguing that anyone who is comfortable in ML should use Java instead.)
- Nelson69 16y agoI like the ML languages a lot, OCaml could be a java replacement. There is the industry acceptance part that java has and then the runtime has been pretty well vetted and improved. I'd bet money that ML runtimes turn up with "issues" as larger more demanding applications are built. And what exactly is going on with SML these days?
- yummyfajitas 16y agoOCaml has a long way to go before it can replace java. http://caml.inria.fr/pub/docs/manual-ocaml/manual038.html http://caml.inria.fr/pub/docs/manual-ocaml/manual038.html "The threads library is implemented by time-sharing on a single processor. It will not take advantage of multi-processor machines. Using this library will therefore never make programs run faster. However, many programs are easier to write when structured as several communicating processes." Ocaml is a nice replacement for ANSI C, not for Java.
- loup-vaillant 16y agoDoesn't sound like a long way to me. Or is it just one of many problems?
- yummyfajitas 16y agoThreading isn't optional and it isn't an easy project. It will take a long while for Ocaml to catch up, if it ever does. The other big problem is the underlying OS. Java lives on the JVM, Ocaml lives on Unix. Unix isn't a substitute for the JVM and vice versa. However, F# might be an ML based competitor to java. I don't know enough about the MS stack to say.
- loup-vaillant 16y agoI'm surprised about threading being hard. I thought it was just a matter of imitating a state-of-the-art GC. And it's not like it has to play nicely with JIT compilation. Now I agree Ocaml has little chance to catch up, given their apparent interest in the matter. You're strongly suggesting that a Java replacement has to compile on some standardize byte-code… Might be a prerequisite for proprietary software, but otherwise looks unnecessary. Besides, what do you mean by "lives on UNIX"? Ocaml runs on Windows too… As far as I know, F# is currently unsuitable: that would be escaping the claws of Oracle to fall in the jaws of Microsoft. Now if Microsoft fully frees .NET, or at least abandons all patent claims regarding it, F# might do.