For the last twelve years, when someone asks what technologies we work with, the short answer has been “non-Microsoft.” Sure, some of our clients run Windows servers or use SQL Server, but we’ve never built .NET applications. Faced with Windows, we’d run a Java stack, or occasionally Ruby, and more recently perhaps Scala.
Why is that? Well, we believe in open solutions, and avoiding vendor lock-in. It’s too expensive to live in the land of all-Microsoft, or all-Oracle, or all-anybody. Plus the one-of-a-kind vendor products have typically been much harder to work with and debug compared to products aligned around open specifications, or better yet, just plain open source. Yeah, once upon a time WebLogic Server had it’s day, but even then we’d go out of our way to stick to standard APIs rather than proprietary add-ons. Who’s ever told you how much fun it is to maintain an Exchange server, install WebSphere, configure an Oracle database server, or build a Web app that support IE 6?
Not to mention, the whole embrace-and-extend mentality that dominated Microsoft thinking for years. Even if we had wanted to work in some Microsoft technologies, we’d have had to bend over backward to “keep our code clean” and leave our options, well, open.
So it’s been a pretty comfortable ride on the non-Microsoft train. But it seems the times, they are a changin’:
- Azure, the Microsoft cloud platform, offers Linux and Windows servers side by side.
- The .NET runtime now officially supports Linux and Mac OS X
- The same server-side .NET stack is now open source
- Free MS Office apps for iOS can create, edit, and view Office documents
- Visual Studio Online, the Microsoft cloud service for hosting projects and code, supports both Git and (Microsoft’s own) TFVC
- While Internet Explorer standards compliance is not stellar, it’s been progressing in leaps and bounds. That includes technologies such as WebGL and WebRTC that Microsoft once actively rejected.
- The modern.ie site offers free Windows VMs for testing Web apps on IE, including those for several competing virtualization engines.
- There have even been improvements on the hardware side. While the Zune was a flop and Windows Phone has not taken off like iPhone or Android devices, the Surface Pro is arguably the only tablet today that’s a true desktop replacement.
Now, the skeptics among us argue that not much has changed. It’s taken time for quality Git support to materialize on Visual Studio Online, and as far as Office goes, the struggles to work with Microsoft’s file formats are legendary. If we fast-forward a year, will we see it’s all been an embrace-and-extend ploy, and they’ve just upped their game?
I’m optimistic. I think it’s more likely that we’ll be entertaining our first CLR project. Clojure, I’m assured, runs just fine on the CLR.
If Microsoft is willing to just put their products out there and compete on the merits, I’ll be all over that. And it looks to me like they’re heading that way.