Microsoft + Novell
What does this mean for projects like Mono?
For those that don't understand the question, Mono is "sponsored by Novell". Additionally, "For fast response to specific issues related to the Mono runtime, APIs and tools, developers can take advantage of the Mono Developer Support Service Requests from Novell that can be purchased as a developer support pack of 25 incidents (Mono Kickstart) along with one server or 50 desktop licenses for $12,995. Additional developer support incidents, server licenses and desktop licenses can be purchased separately."
Does this mean that we may be seeing even more coming from this "little" project? I've been thinking for a long time that Mono can only help Microsoft's .NET adoption by extending it to other platforms. The addition of having another alternative assists in creating competition; while at the same time some level of working together has to be maintained to allow the ability to have a choice. Essentially it's a win-win for Microsoft in the long run as they will continue to set the stage for what .NET is and Mono will always the be playing a certain level of catch up to maintain compatibility; but imagine what it would be line of you could take certain applications and run them just about anywhere in native format in any language you wish. With this deal, such a thing might be a reality.
How does this concern VB? Again, a while back I stated that in order for Linux to succeed on a mass scale, it would have to gain more developers. It has to get past the whole "elite" feel and embrace all sorts of developers. Mono has done a great first step in that direction by bringing C# to the platform. C# has a relatively low level of entry and, as many C++ guys have stated, it's basically VB with C-style syntax. So why not stop pretending and bring the real thing, opening up the platform to the largest audience in the developer community?
And that very thing is happening. According to the mono website:
A new Visual Basic.NET framework is under development, and it consists of two components: a new VB.NET compiler written in VB.NET (developed by Rolf Bjarne) and a new VB.NET runtime developed completely in VB.NET under development at Mainsoft by Rafael Mizrahi and Boris Kirzner.
The new runtime is being developed in VB.NET and does no longer require the ILASM and Perl hacks that were required to implement the Visual Basic runtime as we did in the past. The new runtime also contains a large collection of regression tests to ensure that the quality of the runtime, something that we did not have in the past.
Currently this infrastructure is not shipping, but we will soon package it up and distribute it.
In the end, I believe that Mono helps to deliver on the promise of what .NET really is. Write in *ANY* language and target *ANY* platform. Now that promise seems to have a little more credibility.
And for the record, I've been stating that I see a day when Microsoft would be funding Mono so that it could leverage .NET on "alternative" platforms allowing Microsoft to focus on what it should be... delivering software. Imagine this as an example, 5-10 years down the road, the Microsoft Office division would no longer need to have seperate developers to handle the Windows and Mac versions of the product. It would just be a single product that happens to run on Windows, Mac and (wait for it) Linux. Now don't get me wrong, I'm not saying this is going to happen. I can very well see that Office will hold out the longest of any product offering that Microsoft has as it pretty much guarantees a level of sales for Windows that no other product it has can compete against. People in the business arena buy Windows for Office and other stuff, but Office being the main factor.
But I see over time that the base operating system will be less and less of a marketable product. Sure, Vista is around the corner and it's probably going to be great. However, the time it takes to release a new version of the OS and have enough "newness" in it to really make it appealing for purchase continues to grow. Microsoft (and other vendors) need to focus on making the platform some that is extremely solid but allows you to continue to sell "parts" for. I think Vista is going to be going in that direction and you can somewhat see that by how the installation works. You can (if I'm not mistaken) purchase Vista Basic and after a while decide that you really wanted to have Vista Ultimate. No need to buy another copy, just go through the process to "extend" what you already have. The operating system is slowly becoming the thing that is necessary to support the other stuff. Still very important, but it's not going to be the end-all-be-all that it was in the past. Add to this that in many parts of the world, bundling "stuff" with the OS has become a major no-no. So it's becoming more difficult to just add "stuff" to the OS in order to get people to buy the shiny new thing. This leaves you with improving what is already there and that, as I stated, takes longer and longer each revision.
So, to me, it's not a question of are you running Windows, Mac or Linux (or some other thing)... it is growing to be more of a question (which in the end, it always has been) will it run the software that I need to run. So for a company that wants to sell software, it's best approach is to focus on being able to deliver applications that can run on any operating system; and be able to do so as efficiently and effectively as possible to reduce it's costs associated. The steps necessary for this to happen are already in motion, only time will tell if my crystal ball is right or the mushrooms I ate the other evening weren't of the garden variety.
Phase 1 - Microsoft .NET is born.
Phase 2 - Mono is born.
Phase 3 - Mono picked up by Novell.
Phase 4 - Mono somewhat sucessful in the business world.
Phase 5 - Microsoft/Novell partnership...
Phase 6 and beyond - Who really knows, but it does look interesting.