Related link: http://www.mono-project.com
Many people believe that the future of Mono is very bright, I know I’m one of them. Specifically, they believe that Mono will become a very popular software development platform for Linux. I think so too, but I think there is something missing in this prediction. In this article I will answer a series of simple questions that identify what is missing. In the end, it will make it easy to understand how Mono fulfills this prediction. We’ll start with a key question in this analysis.
Will Mono become popular because of hard-core Linux aficionados adopting the software development platform?
This is highly unlikely. Developers as with most technologists tend to be extremely religious in their choice of a development platform. Therefore, most developers choose one and dedicate themselves to mastering that platform. So choosing a software development platform tends to be a mutually exclusive decision. We either choose Perl or we choose Mono. Only the rare developer will be open, flexible, and agnostic with their choice. Learning C#, no matter how easy it might be, will still require a developer to change their religion. There will be some defections, but not enough to make Mono popular.
So the hard-core Linux aficionados will not be able to achieve critical mass for Mono. What about the current C# developer base? When we consider this base, there is one question on most people’s mind.
Why would any development team that currently targets Windows and the .NET Framework care about Mono?
At this time, the most frequent response you might receive is, they don’t. They don’t care about Mono because their server room doesn’t yet have any Linux servers and none of their target users have Linux on their desktop.
They currently don’t care, but I believe that they will. As I see it, Mono will only become a popular development platform on Linux with the help of the Windows community. They are the largest market for all things .NET and C#, so if Mono is ever going to reach critical mass, then it must be through them.
Even though Linux deployments continue to increase there will still be more C# programmers in the world than all of the Gnome GTK+, Qt, Perl, Python and PHP communities put together. Although some developers from these groups will be willing to learn a few new tricks with Mono, the rest (I’ve met some of them) would rather die than switch. So it still remains. If Mono is to become a popular development platform for Linux, it will only be possible with the support and acceptance of the Windows C# developers.
What will happen to make them want to care about Mono?
Most importantly, Linux will continue to gain popularity. With strong support by all of the major hardware vendors, it is clear that the Linux server market will continue to explode. Since Linux helps the hardware vendors sell more boxes, it is only a matter of time before this becomes true for the desktop as well. Pretty soon, if it isn’t already, Linux will be constantly in the news and in all of the trade journals. With the bounty of open source applications most Linux distributions include or make available, there are bound to be functionality that becomes available that was previously beyond the reach of some IT shops.
So first they will become curious about open source software and why everyone seems to be buying Linux boxes.Imagine this scenario:
You are the development lead in a medium sized IT organization with 15 to 30 developers. The developers on your team are hardcore Microsoft advocates. You’re developing ASP.NET and .NET rich client applications and deploying the applications on Windows 2000 or Windows Server 2003. Most of your key developers are comfortable with C# and use SQL Server and IIS.
One day you get in your snail mail in-box an article torn from InformationWeek or ComputerWorld. The article is about Linux, or maybe it is about cross platform deployment, or maybe it is even about Mono. On this article the IT Director for your department or your software development manager has scribbled a quick note. He has written “What do you think of this? Is this for real? Should we be looking into this open source stuff?”
Your first reaction is to ignore this delivery and get back to coding. But you’ve seen some articles about Mono in your .NET solution surfing on the Internet and now you wonder. Is there anything to this Mono stuff. You go and check out the Mono Project site to snoop around. You find a link to the Windows installation and you download the setup program. On one of your development servers you install Mono, and are you fairly impressed with the effortless installation.
The bottom line is that you like Mono and are curious about how it will behave in a limited production scenario. You and your team builds a quick ASP.NET application and you deploy it on the Server with Apache and mod_mono. The testing of the application reveals that it is ready for prime time and now your organization cares about Mono.
I believe that this scenario will play out with more and more frequency over the next 18 months. In Geoffrey Moore’s classic “Crossing the Chasm” he presents a model to predict technology adoption. This model breaks adoption into two distinct groups, the early market and the mainstream market. We all are fairly familiar with the people that make up the early market, technology enthusiasts and visionaries. The key to the model is the first group in the mainstream market, the pragmatists. Once a technology takes hold in this group it has crossed the chasm and is ready for main stream adoption. I believe that Mono is currently in the early market, but it is poised to cross the chasm in the next 12 months. With the famous City of Munich success Mono may be establishing the references necessary for pragmatists to have confidence in Mono. When that happens, then curiosity in Mono will explode and so will adoption.
Summarizing thus far, Linux aficionados will not be able to make Mono popular so it is up to the Windows C# community to complete the task. Although they currently don’t care, as Linux gains market share and their curiosity peaks, adoption will begin to explode. Once adoption of Mono within the Windows community occurs, there is just one question left.
How will Windows C# developers make Mono popular on Linux
The following steps, present the final analysis for how Windows C# developers make Mono popular on Linux.
- Experimentation becomes acceptance
As IT shops continue to test and deploy one-off or non-critical applications written in Mono, their confidence will begin to grow. Organizations will realize that they are re-using their previous C# investments and saving money with Mono. This realization will earn the project a great deal of respect and build the momentum necessary for Mono to cross the chasm. Of course, additional case studies will help build this momentum.
- Choosing Mono
There will arise unique situations, where IT shops will choose Mono or Mono on Linux as the target platform over Windows and .NET. There are three scenarios which make sense.
- Autonomy - Many organizations will be drawn to the freedom and liberties that accompany the open source licenses for Mono. International development shops will be especially receptive of Mono. As opposed to Java, Mono allows foreign companies to create .NET applications without any worries over whether the architecture will stay available. No other software development platform matches Mono’s freedom and ease of use for developing rich client applications.
- Innovation + Feedback = Growth - Mono is a very active project. I anticipate the innovation and evolution of Mono will very soon outpace Microsoft’s ability to continue enhancing the .NET Framework. Rumors of this are already beginning to ciruculate. I predict that Microsoft delays for Longhorn and Avalon will keep them distracted for the next few years or so. This lapse will allow the Mono project to provide features and bug fixes in response to the user community that Microsoft will be unable to match. In the end the combination of a vibrant innovative development community plus their ability to remain responsive to the user community will make Mono very attractive. This attractiveness will add momentum to the growth of Mono on Windows.
- Not Available Here - The wealth of applications available for Linux under open source licenses will become a powerful asset to many IT shops. The breadth of applications will expose software development deparments to new functionality that may have only previously been available on Windows with very expensive licensing costs. With these new applications, there will arise many new integration and development opportunities.
- Linux Rules
With the general acceptance of Mono growing from increased application deployment, the final step will be the dominance of Linux in the server market along with the emergence of Linux on the desktop. Then the inertia of Mono combined with the inertia of Linux will draw the attention of everyone. ISVs will take special notice of the growth of Linux and they will have to include Linux as a standard operating system option for their products. Corporate IT departments will continue to find more applications to deploy on Mono and Linux.
One of the biggest drivers for Corporate IT shops will be integrated solutions. As vendors increasingly choose Mono and Linux as their target platform, then the integrated solutions they sell will be Trojan horses bringing Linux and maybe Mono into the server room.
- VB Tips The Scale
Currently there is only limited portability between Visual Basic .NET and Mono. However, when Mono is able to achieve relative complete compatibility, the number of potential users for Mono will escalate quickly. Of course, VB.NET programmers will have to pass through the entire process of denial, curiosity, experimentation, and acceptance. Once this process is complete, the VB.NET community will easily follow the lead of the C# community. This process may already be starting, even now.
In the end, Mono will become a popular target platform for Linux. This will be due to explosion of the Linux market, the openness of the Mono licenses, and the strength of the open source software development model. It will also happen because of how easy it will be for Windows C# (and VB.NET) to switch to Mono. IT management will love and encourage the switch because it will open up cross platform development without retraining and without re-outfitting developers with tools and resources. ISVs will choose Mono for the same reason, and end up delivering integrated solutions using Mono and Linux into IT shops everywhere. Ultimately the popularity of Mono will grow from the power that any open source software brings; the power of choice. Having the flexibility and confidence in different solution alternatives will improve the quality of our solutions. Organizations will choose Mono and Linux when the needs of the problem demand them. For most, it will be reassuring that that all of this flexibility will be available to Linux and Windows developers alike.
What kind of Mono programming book would you like to have right now? What kind of books will you need in a six months, at Release 2.0?