Coding Horror

programming and human factors

Go, Monkey!

There's an interesting interview with Miguel de Icaza at Miguel is the primary developer behind the open-source port of the .NET runtime known as the Mono Project. This project was recently purchased by Novell, ostensibly to bolster the development tools available on Linux. Miguel seems refreshingly free of the dogma I expect from Linux and open source developers in general:

Oh, Unix is a world of pain for developers. Now, basically what we got is very modern IDEs (integrated development environments) for developing software on other platforms.

So, for example at Novell--and this was a choice that I really wasn't involved in--but they looked at the (Mono) technology and they found exactly what they were looking for implementing this thing called iFolder 3.0, which is a new version from scratch with many new features, similar to the Longhorn WinFS with synchronization of data, backups, all kinds of interesting things. They could write in C++, but the schedule would just go out the window, or they could do it in C#, but it would be Windows. And when Novell acquired Ximian they had the option of building the same software that runs on Windows and on Linux.

So today they support Windows, Linux and the Mac OS with the same tool base. It helps developers focus more on what they are doing instead of with the nitty-gritty details of the specific platform. There's a lot of new development happening on Mono. We (at Novell) are centralizing on Mono as our internal development platform.

Also some interesting insights on the J2EE vs. .NET discussion:
Today what's happening is that ASP.Net (Microsoft's system for building Web applications) is replacing, it's basically pushing J2EE (Java 2 Enterprise Edition) aside. We did a study at Ximian when we were trying to find customers for Mono. We found that people said that it was 25 percent more efficient to build in ASP.Net, because they have to do all this academic crap (with J2EE). Microsoft later funded a similar study and they came up with 30 percent. We interviewed about 25 customers about why would you buy Mono, why not J2EE, and we came up with that.

The problem with J2EE really is that it became very, very academic and the complexity of all these perfectly designed systems in schools does not necessarily map when you have deadlines and all kinds of other things. Twenty-five percent means we can develop it in a shorter time period. We can actually hire less people to do this thing. So those shops that spend $200,000 to $2 million say it's a one-year project. We are talking about relatively small shops--four or five developers or six developers to maybe 20 developers. If you can save 25 percent, it's a very big savings there. So, it's just because the technology is not as pretty as it could be or as nice as it could be, but it gets the job done. So, it's not Java's fault; it's more the framework has not been designed for these users.

It also seems that mono has focused on the server side of things with ASP.NET and basically punted on the whole GUI/winforms side of .NET, and I can't blame them.
Q: Will you be able to port everything that Microsoft does on Windows to other operating systems?

The new UI stuff, I have struggled a lot with what we are going to do with our toolkit.

Still, it's great to have options. Who doesn't like the idea of having flexibility in platform deployment choice, at least in theory? It certainly helps .NET's credibility a lot in comparison with "write once, debug everywhere" Java.

That's why I say, go, Monkey!

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: