June 23, 2006
Mono: A solution looking for a commercial problem
The biggest thing holding back open source software is that it is engineering driven rather than market driven. A great example of this is Mono.
Mono is, succinctly, a solution that is searching for a commercial problem to solve.
The features that differentiate Mono from Microsoft .NET are being cross-platform, being free (as in beer), and being open. Java beats Mono handily in the first two categories. For the third, Java is open source but not free software. Few care about that distinction.
If an organization is looking for a cross-platform development environment they're going to go with Java. The tool set is more mature, language better supported, and the accompanying documentation far more extensive.
If a company wants .NET they'll use Microsoft's implementation. Microsoft has a 2-3 year lead in development. Mono is incomplete and buggy.
Both Java and .NET enjoy the support of large corporations, whereas Mono gets only ancillary support from Novell.
This leaves Mono as little more than a research project for developers. I'm sure many small organizations use Mono.
They probably selected Mono because the techie-in-chief thought it would be cool or as a anti-Microsoft gesture.
Indeed, Mono admits as much on its Web site:
Question: Aren't you just copying someone else's work?
Answer: We are interested in providing the best tools for programmers to develop applications for Free Operating Systems.
In the commercial world Mono would have been correctly abandoned a long time ago in favor of a product that actually serves an unmet need. In the open source world we have a solution to very few people's problems.