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
————————————————————

Client-side technologies – jQuery, Javascript, CSS, Knockout, Modernizr, etc.

 

Microsoft
————–

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.

 

Google

———–

IDE – Eclipse, NetBeans, etc.

Platform – Java runtime, ChromeOS, etc.

Languages –  Java, etc.

Technologies – Maps, G+, BigQuery, Glass.

Client-side technologies – JavaScript, etc.

 

Apple
———

IDE – XCode

Platform – OS X, Linux

Languages – Objective C, C++

Technologies – iPad, iCloud, iPhone, etc.

Client-side technologies – etc.

Advertisements

For those of you following Microsoft and Windows 8 might have noticed a shift in the way that the company does things. Microsoft has moved from the “Ship it and Forget it” model to one of continuous iteration, online or or out-of-band releases.
This is more like what Google does since most of its products are online anyway.
This is more evident in the Office365 products, where the releases are hidden from the user, and new functions and features can be updated on the website and Visual Studio with NuGet being the main vehicle of delivery (especially for MVC). Windows 8 has the app store where an application can be updated through the common Marketplace mechanism rather than each app having an update button.
This implies that Microsoft has moved away from its traditional model of software products in a box or online to a pay a subscription for a service model, and that is a bold move for a company that has relied on traditional products.

Expect this to be more evident in Windows 9, and the OS is slowly evolving from a traditional installed piece of desktop software (ala Windows 8 Pro) to a more open and dynamic system (ala Windows 8 RT that relies on Javascript), and this also be the case for the products from them. It will be interesting how vendors of audio products like Ableton or FL studio will work and play ball with the concept. They already have the concept of VST plug-ins, so this is nothing new to them.