.NET Core - Going Wild and Open Source. Microsoft, what took you so long?!

View all articles

“Something mysterious is formed, born in the silent void. Waiting alone and unmoving, it is at still, yet in constant motion…”

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).

Is .NET open source? Finally, the cross-platform .NET we have been waiting for.

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.

The market started pushing developers away from the Microsoft development platform, and yes, I’m one of those developers. I adopted Node.js as a primary back-end platform, regardless of the fact that it is still not mature enough to cope with everything I need. I love WebStorm and I appreciate the great work JetBrains did on it, but I loved Visual Studio 2013 even more. Yes, I’m aware that I can write Node.js apps in VS! But when you are pushed from C# to JavaScript, from SQL Server to PostgreSQL, from IIS to Apache, why bother using Windows based PCs?

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”.

About the author

Demir Selmanovic, Bosnia and Herzegovina
member since May 23, 2014
Demir is a developer and project manager with over 15 years of professional experience in a wide range of software development roles. He excels as a solo developer, team member, team leader, or manager of multiple distributed teams. He works closely with clients to define ideas and deliver products. [click to continue...]
Hiring? Meet the Top 10 Freelance .NET Developers for Hire in December 2016

Comments

kmonsoor
nice narrative, demir. thank you
Jonathas Morais
I think it's another breakthrough for Microsoft. They are working hard, trying to minimize the result of some wrong decisions in the past and the majority of those decisions culminated in long time-to-market releases. It worth mention that all those changes we are seeing, started from a change of development methodology and mentality - from waterfall to scrum based teams (http://arstechnica.com/information-technology/2014/08/how-microsoft-dragged-its-development-practices-into-the-21st-century/3/ ) - allowing regular releases & updates, getting quick feedback and adapting faster than before. But now the question is: How they are going to make money? (Cloud, End-Users through online Office... :0 ) - smells a rat for me on this matter! Anyway, big and better things are coming and I'm looking forward to it.
Giro
I don't get this part ... "But that all died when they took (finger) away from us on Skype."
comments powered by Disqus
Subscribe
The #1 Blog for Engineers
Get the latest content first.
No spam. Just great engineering and design posts.
The #1 Blog for Engineers
Get the latest content first.
Thank you for subscribing!
You can edit your subscription preferences here.
Trending articles
Relevant technologies
About the author
Demir Selmanovic
JavaScript Developer
Demir is a developer and project manager with over 15 years of professional experience in a wide range of software development roles. He excels as a solo developer, team member, team leader, or manager of multiple distributed teams. He works closely with clients to define ideas and deliver products.