Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My recollection of Microsoft J++ was that it was basically a superset of Java, with the added features allowing you to take full advantage of Windows features. This gave developers the option of sticking to the standard Java features, and ending up with a portable application, or using the extensions so as to write an application that would actually be able to compete on an even footing with non-Java applications. Gosling makes it sound like you could not use J++ to write a portable program.

Sun insisted that Java should be "write once, provide the same inferior experience everywhere", and the result is that Java is pretty much completely dead on the desktop.



J++ was missing several key interoperability features like JNI (instead it required idiosyncratic native code that no JVM could run) and RMI (it couldn't make remote procedure calls at all, unless you roll your own). And rather than sticking to their own packages, they deliberately poisoned standard classes (I think this even included java.lang.System!) with nonstandard methods whose absence would prevent your code from even loading on a conforming JVM.


If I remember correctly, and this was a long time ago, J++ also didn't support .JAR files, and only was compatible with .CAB files for compressed sets of files.


If Microsoft had stuck with "embrace and extend" (rather than embrace and distend), it wouldn't have been a problem. I was (attempting) to write desktop Java during the MS/Sun wars, and it was beyond annoying. MS had a habit of slightly altering the behavior or syntax of things.

You were usually OK (but annoyed) if you developed using the Sun VM and then ported (yes, it was a port) to MS. If you started on MS, it was a horrid process to get to Sun's VM.

What really sucked was, as part of the embrace, their tools were the best tools at the time (compiler, debugger, vm). The "extend" part was even OK (sometimes it was handy to have easy COM access). It just sucked when the distend part came.

(Just don't ask about the time my company was partnering with Microsoft on a project and I built the software using Netscape's foundation classes. Stupid little dot on their scroll bars...)


What really sucked was, as part of the embrace, their tools were the best tools at the time

How does it suck that you were using the best tools available at the time?


Because you couldn't use them due to Microsoft distending the language. You weren't guaranteed what you build using VisualJ++ would actually working on another VM. When using anything that did code generation (which a lot of AWT tools did), you ran into this possibility.


J++ applications did not run on Sun's Java SDK. Microsoft sold it as Java but it was incompatible with Sun's Java implementation.


That's not entirely true. At the bank I worked for way back in 2001 we used MS J++ to create a web app that was deployed on Netscape's iPlanet which used JRE 1.1 from Sun and it all ran on a HPUX server that talked to an IBM mainframe.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: