It’s been a while…

2 06 2008

So what have I been doing? Well, lots of .NET because that is what pays the bills but also I have become a part-time Mac fan too, mainly due to the fact that I bought an iPhone which has had a more profound impact on my life than any other gadget. From my first day of ownership I could see the colossal potential of this device, here at last is the piece of hardware we have all been waiting for, small (but not too small), light, beautiful, connected, well though out and utterly useable. My subsequent prayers were answered when Steve Jobs delivered an SDK for it, my only problem was that in order to use the SDK I needed a Mac. Well here I was at the crossroads. I was due a new laptop and thought, what the hell, it’ll run Vista too via BootCamp/Parallels/VMWare so slapped the cash down and bought myself a 17″ Macbook Pro. I now own two pieces of Apple hardware and completely understand how people get religious about this stuff, they are both stunning even when turned off!!

A couple of months passed and I went from ‘Hello World’ in Objective-C to writing some sensible stuff on the iPhone, hey presto, I am now a Objective-C coder. My Mac coding journey has been an interesting one, XCode has some interesting ideas but needs some Visual Studio / Eclipse polish, Interface Builder rocks and Objective C grows on you. The iPhone is without doubt going to be the catalyst which will potentially propel Apple into the enterprise. It is such a compelling device and because it forced me to code on a Mac it also forced me to take a look at what Mac’s are all about. Once you win the hearts and minds of the developers, the seed is sown.

There is a simplicity in the Objective-C runtime and base class libraries (sorry Frameworks) that led me to look at what is wrong with the Microsoft platform as a whole and the development experience. It is now clear to me, Microsoft are too afraid to break stuff, it’s that simple. With each new technology that Microsoft reveals, somewhere hidden within is some relationship to a previous legacy technology. Don’t get me wrong, I sympathize, I face the same issues albeit on a vastly smaller scale in enterprise software development but you have to break things to progress. 

Dear Microsoft, please break things to give us nice new things. We will moan but ultimately we will understand. Give us one runtime, one way to display a button, one look and feel throughout your platforms and runtimes. I don’t want to buy a 3rd party button control to make a button that looks like your one, I want YOUR ONE.

WPF/Silverlight is already fragmenting the UI development experience even more. Yes, I can have a spinning pulsating yellow button, but no, don’t let me have a spinning pulsating yellow button. Force me (or at least encourage me by example) to use the ‘Microsoft Button(tm)’. Give the Windows 7/8 shell an incredible new and radical look built using WPF but let me have access to all the controls so I can use them / subclass them and produce applications that don’t just look similar to yours, I want to be able to build applications that look EXACTLY like yours. 

Microsoft is drowning in it’s own legacy technology. Apple are taking a more brutal approach, forcing people to rebuild applications (Carbon to Cocoa for example). This means that the applications are ‘fresh’, it means that infrequently updated applications die quickly (a good thing) and the quality applications will shine through. Break old applications, it’ll hurt but it needs to be done.

I can’t help feeling slightly disloyal to my Microsoft roots but I am wondering where Microsoft is heading with their platforms and runtime strategy. WPF, Silverlight etc. are all nice ideas and technologically sound but given that WPF has been around for so long and I am yet to see a single application that makes my jaw drop makes me wonder whether people are really that interested. I see some half hearted 3rd party controls and a few enthusiastic people doing some cool stuff but nothing that takes my breath away. I also see a ton of WPF UI’s that make my stomach turn and remind me of circa 1985 HTML pages, many of them from inside Microsoft!!

I find myself trying to find ways to justify putting Apple hardware in front of my Traders because I know that the applications I could build in Cocoa would be incredible to use and beautiful to look at whilst requiring no 3rd party controls and minimal artistic talent both of which are required in bucket loads to build things in WPF.

I am one .NET developer, I have often stood up for Microsoft in the face of adversity and won many arguments over the last few years. For the first time I find myself questioning where the future lies. How many more like me are there?

One recent event should have Microsoft more worried than any other, the fact that the WWDC Apple Developers conference sold out for the first time ever.

Developers, Developers, Developers…