Back in November, Microsoft made a large announcement that they would be open sourcing the .NET server stack. There were many a Twitter tweet and blog rumblings a-plenty. I’m sure cake was cut, beverages were gulped, and celebratory snacks served to many a happy developer.
Yet, amongst the revelry, myself and many others like you who read this blog simply shrugged and went along with their day. Why did this not resonate within our souls? I’m a fan of open source software, so this should have had me at “Hello”. Well, after some thought, I believe that the answer is quite simple: too little, too late.
Late to the party
You see, I’m old enough to remember not having the internet, yet young enough to have spent most of professional life working with object-oriented software development. I got to work with Java and .NET back in the day. I had the chance to watch these languages evolve, distinguish themselves, and fight to support the budding industry of web-based application software.
I also got to formulate my opinions:
- Do I need to build cross-platform for multiple operating systems? Well, I better use Java.
- Am I building only to run on Windows servers? .NET should do.
- Is this a static page that won’t need server code? Notepad and some animated gifs should keep me happy.
So when Mono came out years ago, and now .NET has gone open source, my brain simply filed these into the “Why wouldn’t I just use Java?” bin. Sure, it would be nice to use all the C# code I’ve written over the years on those other servers, but I learned how to write all that C# code because I’m launching that code on Windows servers.
In short: It is hard to teach an old dog new tricks.
Don’t underestimate inertia
In addition to having my conceptions firmly entrenched over the years, building a career on the Microsoft stack within Windows servers makes it difficult to change course. The .NET stack going open source does not mean my professional career is suddenly going to change. The type of work I do won’t suddenly shift to Unix servers. Tomorrow morning, when I get up, my client’s Operations teams will still be deploying the same .NET versions and server software that their enterprise has always deployed.
Additionally, there will be trepidation and fear of .NET versions that are not coming from the corporate monolith of Microsoft. Think about the Heartbleed vulnerability and the ripples that had in the media and the open source industry. Will enterprises fear the open source .NET versions and just stick with what they know?
It takes time to change how an industry thinks about server software like .NET. It takes even more time to make an entire industry act. In a generation, though, something interesting will be happening.
An odd future
Ten years from now, an architect will be looking at a problem and won’t be thinking about what operating system is deployed within an enterprise. They will pick the toolkits that work best for the problem at hand, not the toolkit that matches to a corporate technology stack.
The young developers out there right now don’t have the old conceptions like myself. They are probably wondering why folks like myself are planning to deploy .NET software on IIS and Windows when we could be deploying to a server running Linux.
I guess those developers probably DID care about .NET going open source.
*shrug* Kids these days… 😉