Over the past ten days we've seen the rolling announcements out of Attachmate as SuSE gets spun into a separate organization with a return to Germany and Mono employees (along with many other Novell employees) find themselves on the outside looking in. I got into an interesting Twitter discussion with Carlo Daffara and Jan Wildeboer about the future of Mono.
I've written about Novell's SuSE positioning over the years and their need to be more than "We're-not-Red-Hat". Mono was always been a potentially excellent strategic differentiator. But first you need to understand how Microsoft dropped the ball.
When Microsoft submitted the .NET common language infrastructure to ECMA for standardization, they were on the edge of a BRILLIANT game to win with Windows. By encouraging other implementations of the C#/.NET world but continuing to ship the original and hopefully the best, Microsoft would have a solid way to position Windows servers forward for all a customers Windows applications as well as writing new server-side applications in C#/.NET. It was a solid cross-platform message to grow server sales against the perception that UNIX represented cross-platform portability, and against expensive Sun Solaris systems and an aging Java language. Indeed, having a strong Linux-based .NET would help suck the life out of Sun faster. The VP responsible for kicking off the ECMA standards effort also kicked off Microsoft's own cross-platform .NET demonstration.
Unfortunately, this was the phase of Microsoft history (~2002) where they hadn't accepted that customers were living in a heterogeneous world in the data centre and would continue so to do. As Miguel kicked Mono into existence, Microsoft was continually positioning Mono as a "science experiment". Microsoft hobbled their own cross-platform efforts so no one took it too seriously. Essentially Microsoft wanted to ensure everyone knew that C# and .NET meant Windows. (The VP with the vision was gone by then. The Windows über alles mentality reasserted.)
Novell had an opportunity through this period to have used Mono as the differentiating edge against Red Hat. As the Red Hat product line evolved and matured, it ate into big-iron UNIX sales, and capped Windows server growth. It was a cheap-UNIX-server-on-a-PC-form-factor. UNIX applications were highly portable to Linux and Red Hat executed to reap the rewards, including capturing the UNIX ISV market move to Linux early. Novell had a chance to position SuSE linux as the way forward for cross-platform applications development on a standardized and more modern C#/.NET programming model. C# is a breath of fresh air compared to C++ and arguably fixed a number of problems learned by observation with the Java programming model. (And remember that Sun was still failing the standards game with Java and IBM had pulled the developer focus around Java with Eclipse.) Novell even cut the Moonlight/Silverlight deal with Microsoft to continue to move forward.
Novell could have gained market share on Red Hat, and small losses for Red Hat would have represented substantial profits to the Novell SuSE business unit. While Red Hat may not have felt the loss to Novell too badly, they likely would have had a much harder battle against Microsoft pushing .NET servers. While Red Hat could have adopted Mono, they would still be the third string player in the new application development model behind both it's originator and the primary linux implementation. Unfortunately, Novell never figured out the strategic edge they had and Mono never received the emphasis it deserved.
Hopefully the New SuSE business unit recognizes some of this edge. It is still viable. It is a much better message than "We're-not-Red-Hat" and a focus on being a "cheaper" Linux to support. While some critics argue no one cares about the platform anymore in a Cloud Enabled World, developers still need to build the applications that run on those clouds, and pushing a Linux-Windows cross-platform message has value while customers remain hesitant and confused about their cloud strategy. This is an inflection point. So one future for Mono would be for the SuSE business unit to woo back the Mono developer and marketing core as quickly as possible.
A more interesting future for Mono, and one that would give it a fresh start would be for Canonical to step in and grab the initiative. Canonical remains the rising star of the Linux world. They have Mono experience. It would help drive a standardized cross-platform application development message for both Ubuntu servers and Ubuntu platform-in-the-cloud. The strength of the Canonical desktop adds additional interesting edges for cross-platform app dev messaging. While historically it could have helped Microsoft sell more .NET servers, now it allows IT management to feel they're hedging their past .NET bets by buying Canonical products.
Lastly, of course, there is IBM. They deeply understand standards and standards related messaging. They have a demonstrated expertise of engaging in open source community projects to product and services benefit to better solve customer problems. They focus religiously on making customers successful. They have a long history of moving customers gently from platform to platform through technology leadership. Having watched them adopt Java away from Sun as a Sun partner, through machinations in the standards world, and then by capturing the developer centre with Eclipse, I can't imagine the fun they would have with Mono.
All in all, with a little imagination it should be exciting times for the future of Mono. The alternatives are too sad to contemplate.