For many years, I have wanted to move on from Microsoft technologies and do a mix and match where I have the choice of which platform I target or what phone I develop for.
This was hard to do in the old days where one was stuck in the ecosystem one chose from the start, but I see it is much more possible nowadays to go across platforms and you do not have to choose your poison from the start, but you have more flexibility in what you want to target later in the game.
As software developers, the concepts and what you have learnt is pretty much the same across all platforms, so your knowledge is not lost at all and only the tools change.
2 things kept me in the Microsoft ecosystem…the Windows Phone and Visual Studio, which is the best IDE out there (even now). Also, the tools make it easy to deploy to the cloud or Microsoft Azure, so that is my cloud of choice for now.
But now I see the Windows Phone is not going anywhere (for a while, at least) although it was a wait and watch game for a while, and I was hoping that it would catch on.
It is ironic because the Windows Phone has the best interface, but the iPhone and Android phones far outweigh its popularity and use.
With tools like Xamarin Studio and PhoneGap, it becomes easier to target other platforms and so one is not stuck with only developing for the Windows Phone in C#.
So, lets analyze and breakdown things and understand where we are as developers.
As an architect, it is my responsibility to not be biased towards one platform but to provide the solution and platform which has the best bang for the buck.
Of course, the solutions and platforms run a whole gamut from open-source software to the paid, more proprietary stuff.
There is no general answer but it is subject to the needs and the circumstances of the client and the answer is similar to what most Architects will give you…”It depends”.
Let me list the various features of every platform (of the big players out there), so as developers, we know what choices there are, and where to go from here…
Common, across all platforms and companies
IDE – Visual Studio
Platform – .NET
Languages – C#, F#, Visual Basic, Typescript, etc.
Technologies – WP8, Kinect, Windows 8, Microsoft Azure
Client-side technologies – SignalR, Knockout (in the box), Modernizr (in the box), LeSS, TypeScript, etc.
IDE – Eclipse, NetBeans, etc.
Platform – Java runtime, ChromeOS, etc.
Languages – Java, etc.
Technologies – Maps, G+, BigQuery, Glass.
IDE – XCode
Platform – OS X, Linux
Languages – Objective C, C++
Technologies – iPad, iCloud, iPhone, etc.
Client-side technologies – etc.