The Case For Supporting and Using Mono
snydeq writes "Fatal Exception's Neil McAllister argues in favor of Mono, asking those among the open source community who have 'variously described Mono as a trap, a kludge, or simply a waste of effort' to look past Miguel de Icaza and Mono's associations with Microsoft and give the open source implementation of .Net a second chance, as he himself has, having predicted Mono's demise at the hands of open source Java in 2006. Far from being just a clone of .Net for Linux, McAllister argues, Mono has been 'expanding its presence into exciting and unexpected new niches.' And for those who argue that 'developing open-source software based on Microsoft technologies is like walking into a lion's den,' McAllister suggests taking a look at the direction Mono is heading. The more Mono evolves, the less likely Microsoft is to use patent claims or some other dirty trick to bring down the platform."
That's a rather rosy way of looking at it. In truth, Sun sort of messed up the marketing on a variety of different levels. The only reason why it caught on was that developers had a chance to try it out through Java Applets. (Originally supported through a partnership with Netscape.) Developers who tried the Java platform were so impressed by it (compared to the standard C library of the day) that they lobbied for its use everywhere. In fact, there was an entire news site devoted to Java promotion called JavaLobby. In its day, it handily competed with sites like Slashdot for readers.
Sun (thankfully) wasn't stupid. They took a look at where developers were trying to use Java and started supporting them. Some of the ideas took flight (e.g. servlets) while others floundered (e.g. Java3D). But at the end of the day, Sun managed to produce a superior platform that the vast majority of the market wanted to use.
The only reason why it gets so much criticism today is because other languages and platforms have invested considerable effort in catching up to where Java is today. And even then, it's hard to argue the rich availability of libraries for the Java platform. If you use Java, you are guaranteed to always be able to use the latest and the most obscure technologies. Nothing escapes its roving field of vision.
When Java gets replaced (and I'm sure it will happen eventually), it will not be because of marketing. It will be because the replacement platform yet again turns the entire industry on its head. Love it or hate it, the new technology will make us all step back and think.
Javascript + Nintendo DSi = DSiCade
I used to code Java in the JDK 1.1 - 1.4 days. It sucked ass. It was slow, had weird dependencies on X11, required a lot of boilerplate code (such that up to half of the LOC could be logging inside exception blocks), had various JRE incompatibilities all over the place (such that some applications just couldn't be run bug-free on ALL of AIX/Solaris/Windows/Linux/Mac), and the reference JDK/JRE was Sun's proprietary property. I left Java and went on to C, Perl, C++, and Lisp. Naturally I used Emacs and SLIME.
Then I found Clojure. And I got a $350 laptop from Walmart last week that had 3 gigs of RAM and a single-core 1.8GHz AMD processor. And I thought, "I wonder if Eclipse will run decent on this thing?" And it does, and it's not all that slow, and it is by far the best IDE I've ever used.
I'm now re-climbing the learning curve on modern Java, and it's looking pretty good now. AspectJ does a good job eliminating a lot of repetitive code, eclipse-metrics warns me when I'm not being decent at OOP design, and the available libraries are top-notch. Java the language isn't so bad anymore, and now with Clojure on top I have plenty of linguistic room to prototype and get to choose the best among many paradigms for each situation.
Give Java a fresh look, it's come a long way.