What does Mono mean to IT?

July 7th, 2004

This last month the Mono project released the 1.0 version of their free .NET runtime. It has been a long time coming with many alpha releases and recent beta releases in preparation for this final push to declare their work complete. It is a great accomplishment for everyone who contributed to the project. Over the weekend I chose to install it on my home PC which is running Windows 2000. As I dug into it I learned a few things...

The installer was pretty slick and quickly put everything into place. The installation covers the .NET 1.1 profile which includes ASP.NET. This means you could possibly deploy just about any ASP.NET application on a Mono runtime. I say possibly because most ASP.NET applications will want to connect to a Microsoft SQL Server and use a boat load of stored procedures. But any smart and self-respecting programmer will not make heavy use of stored procedures as they lock you into a given database platform, so do not do it! Instead, use standard SQL as much as possible or some sort of O/R mapping tools.

Anyway, back to Mono. An interesting aspect of Mono is that it includes IKVM.NET which is a Java runtime for .NET. Dig into it if you wish. The possibilities there could be promising if Sun chooses to more closely integrate their Java frameworks with the Common Language Runtime of .NET and allow the CLR to run Java applications. The IKVM.NET project shows it is possible, but Sun will need to either help or just stay out of the way.

The Mono runtime is complimented by the Mono Develop IDE. As yet it is in early development at version 0.5 and is making rapid progress as Mono grows in popularity. I downloaded what they offer but it requires that I run the compile and build processes in order to get a running IDE. I was a little disappointed it was not as packaged and polished as the Mono runtime, but that is to be expected at this stage of the project. Once I have more time I will go through the steps to build this IDE and try it out. But it seems there is another IDE which could be quite useful.

Some fanatical .NET developers who noticed the power of the Eclipse IDE for Java chose to create a sort of port of it for .NET, called Eclipse for .NET. This IDE also needs to be built, but if you like Eclipse you may be motivated to go ahead and go through the steps to set it up.

All in all, I think it will be be very good for Mono to become increasingly popular for the various non-Windows platforms including Linux, FreeBSD and MacOS X. Some suggest that Microsoft may pull the rug out from under them by releasing new technologies faster than the Mono project can keep up but I would suggest that the Mono project could just as easily produce many useful frameworks on the .NET 1.1 profile which allow people to remain productive at that profile level for quite a while. In Java it is still very possible to run code in a Java 1.3.1 installation despite Java 1.4 being rather pervasive and Java 1.5 just on the horizon.

In fact, if you look at Java implementations such as Log4J, JUnit, Hibernate and Spring you will see the community can provide poweful and very appealing alternatives to what the corporate powerhouses produce. As .NET implementations mirror their Java counterparts and run on Linux, FreeBSD and MacOS X and run in the Mono runtime it will give us many more options which is a good thing. It really is.

For starters, a big criticism of Java is that it is slow. Sure the perceived performance problems have largely been improved in Java 1.4 or with improved thread handling by Swing programmers, but the fact still remains that Sun is not doing a very good job of optimizing Java implementations on platforms other than Windows. This means you can build Java applications for many platforms, but it will still run best on Windows, not Solaris or Linux like you may want. It is clear that the Mono project will make every effort to produce the fastest possible implemention for these "secondary" platforms and treat them like first-class citizens. And as that happens, the competition will force Sun and others to make the necessary improvements to Java.

The bar will be raised for the IT community. A great deal of energy and promise will be poored into IT investments and due to an dramatically improved toolkit from 3 years back when the bubble burst, we will have the tools we need to more easily realize the potential of our ideas. I predict the next 4 years should show great growth in the IT arena and a new IT boom will take place.

Comments are closed.