3 ms·
> Gosling went around Sun R&D offices asking about unsigned arithmetic and almost everyone got it wrong. Maybe R&D would be busy making cool demos of futuristi
by geodel 9y ago
> Gosling went around Sun R&D offices asking about unsigned arithmetic and almost everyone got it wrong.
Maybe R&D would be busy making cool demos of futuristic technology which could beat Microsoft's cool demos.
- pjmlp 9y agoI know you are trolling, but although Sun was good at engineering in general, desktop programming and language design weren't certainly their stronger skills. They killed the only innovative desktop they had, NeWS. And although Swing is quite powerful, the default configuration certainly isn't. They also removed resources from JOGL, Java3D and JDI. Also given the existance of so many Wirth influenced languages with AOT compilation to native code, at the time Java was released, I never understood why they were so religiously against AOT toolchains. There is even a paper from Sun Research about writing Solaris drivers in Java, but instead of compiling AOT to native code, they ported the JVM into kernel space. I wonder what would have they done if the partnership with NeXT regarding OpenSTEP had actually gone forward, instead of being the inspiration to Java.
- mike_hearn 9y agoJava was originally designed to run on set top boxes that had a wide variety of chips in them, and which loaded code on the fly from disks or over the air transmissions I think. Such boxes may not have even had much in the way of persistent storage, so I can see how they ended up with that design. Then they started down the speculative opts-with-deopt route and I guess the rest is history. Java 9 does have an AOT compiler, at least for Linux (they're using the platform native DLL formats unfortunately so the AOT compiler tool has to be manually ported to each platform). Unfortunately it isn't just saving the compiled hotspots. They compile everything without speculative opts and then you can make it re-JIT on the fly from native->native.
- pjmlp 9y agoEiffel, Oberon and LISP are three examples of programming languages whose toolchains offered JIT and AOT compilation models depending on the use case being targeted, all of them before Java was even a thought. I am fully aware of Java 9 AOT compiler, including the facts that not only it is just for x64 Linux, it just supports compiling the java.base module and the result isn't distributable. However all commercial third party JDKs that didn't suffer from Sun's dogmatic war against AOT compilation, do support fully compiling Java into native code ahead of time. Sure Java 10 is supposed to make everything better, including supporting value types, which the above mentioned languages also supported by the time Java was designed, yet that is something that is still like 5 years away or even more.
- vram22 9y ago>There is even a paper from Sun Research about writing Solaris drivers in Java, but instead of compiling AOT to native code, they ported the JVM into kernel space. Interesting. Intuitively, does not seem like such a good idea. On the other hand, there was (and I think still is) this company called Esmertec that was doing embedded Java stuff (from around 2001). And IIRC there was Jikes, which I think was a compiler for Java from IBM. Also saw your comment below about third-party JDKS with AOT compilation.
- pjmlp 9y agoThe most well known companies selling JDKs with support for AOT compilation, are PTC (former Aonix), Aicas, ExcelsiorJET, IBM. There are probably others in the embedded space, as Java is actually gaining some traction to more classical approaches. And of course, there is also Android with ART. This was the paper I was referring to, http://dl.acm.org/citation.cfm?id=1698145 http://dl.acm.org/citation.cfm?id=1698145
- vram22 9y agoCool, thanks.