Truly, two of the greatest events in human history just took place one after another:
The first event is a great step for mankind, and the latter is even greater for Microsoft!
The Rosetta Mission will take its place in history books, and will be remembered as often as we remember Laika. It was envisioned and planned carefully for a decade, pushed humanity one step further, and showed that technology developed a decade ago can still do amazing things.
The second event came as a surprise to many. It was not advertised very much, and I’m sure that every detail of its announcement was not planned a decade ago; but it was obvious that Microsoft took this route some time ago, and .NET core is not the first thing they pushed to open source (Roslyn).
So, did mankind really need a probe on a comet? Perhaps not, but it is awesome that it landed! Did Microsoft need an epiphany to start open sourcing .NET core? Yes! They needed it more than a decade ago!
What changed in one of the greatest software development companies in the world? What made them go down the road of OSI?
According to .NET Framework Blog, there are two reasons for this:
- Lay the foundation for a cross platform .NET
- Build and leverage a stronger ecosystem
But why would Microsoft want to help developers build cross-platform .NET software? This goes against everything they’ve done before. Microsoft has been pushing their own infrastructure systems for years. Linux and Mac were enemies that needed to be defeated, not allies. What is this all about?
Whatever their real motivation is, developers are getting the best out of this. I’d like to thank Microsoft for taking this step. Better late than never!
The long-term impact of open-sourcing Microsoft technology will be enormous. The real cross-platform .NET will have a direct impact on hosting, licensing and maintenance cost. This will simplify selling .NET applications by a magnitude I can’t even imagine.
I’ve spent a great deal of my professional career writing code. My first love was Borland Pascal, and “Blue Screen” was something I was looking at with a great deal of respect back then. I’ve used a variety of development platforms and languages afterward, but let’s be honest - since Microsoft released .NET, Visual Studio is the best development environment available today. It is a one-stop shop for everything a single developer or team might need to build any type of application. It is closely bound to great features of .NET compilers, and every new version of Visual Studio looks like a product that could not be extended more; however, Microsoft succeeds to surprise continually by bringing in cool new features with every new version of Visual Studio.
Creating software is a great process, making every developer I’ve ever met feel creative, inventive, and fulfilled. But have you ever tried selling, or supporting sales processes? I’m not sure that every sales person can say the same as software developers for their part of the equation. Selling for a software development company is hideous - you have to worry about many factors that have nothing to do with the actual software development. People working in the sales department have to prove/convince clients that the product/service being sold is the best clients can get for the price to be paid; therefore, cutting the cost of software development and maintenance is always crucial. The real world never stops calculating value vs. cost.
On the other hand, starting a company has never been easier. If you have a good idea, it’s not too difficult to raise funds to create “something” (latest name for “something” is Minimal Viable Product, but that will probably be updated in the future), show “something” to the world, obtain some positive feedback, get more funding, and repeat until you start making money, sell your company, or fail.
What is the easiest way to cut the cost of a software product? Well, development is something you need to pay, and in most cases you will just pay the hourly rate of your developers, regardless of the development platform they are using; so the simplest way to cut cost is to deploy your software on an environment that does not require additional licensing. This is where Microsoft has failed over and over again! We could have heated debates about performance, software quality, scalability, etc., but it’s easy to see that the .NET platform can easily cope with any technical challenge thrown at it. In many cases, I believe it shows its superiority over other platforms; but I don’t often win debates about deployment and infrastructure licensing.
I was a true Microsoft evangelist, even before .NET came out and certainly before .NET was open source and cross-platform. But that all died when they took (finger) away from us on Skype. I always loved making applications for Windows Platforms. I’ve spent a lot of time learning tips and tricks of the trade, and I believe I was very good at it. However, the software development market changed a lot in the past decade. Startups are blooming everywhere and every new client is looking for the most cost effective solution. Microsoft failed to keep up the pace with this new market, and I’m just one of many Microsoft developers who replaced his Windows laptop with a MacBook. Microsoft has finally realized that giving us the option to deploy our applications to open-source platforms will keep huge Microsoft Development Communities using their tools, and eventually bring more customers to them as well.
Microsoft has taken a small step towards a big change, and they have the best development tools and a great development community. What would happen if we received an open-source OS on top of a great IDE? “Not even I dare to calculate the odds”.