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.

As you might know, Microsoft tests a lot of their own software on their employees, before releasing it. Of course, it is useful to test products on ones employees aka dog-food, and a large company like Microsoft benefits from this scalability and UX testing and so do us users (from all this testing). Getting these bits to IT to install pieces of software is related to becoming big business and a political issue.
This also results in shoving unused and unpopular software down the throats of employees. This is bad dog-food.
Luckily, us users (non-employees) have an option whether to use this or not. My solidarity is with the employees.

I thought it might be an interesting experience to make a list of good and bad software that is being pushed on us developers by the employees at Microsoft. Some of these are good, but some are bad too but it is always sold as the next best thing.

Sharepoint – Quite useful for specialized stuff, but it was being touted to be as good as sliced bread, and so, we were forced to use it everywhere.)
Lync -ugh!
Windows Live spaces and others-  I must say hotmail usability beats gmail, but who blogs on Live spaces? Ok, some do!
Skydrive – has become better with integration into Windows Explorer and Office 13 would force us to use it. Sigh Dropbox!
Clippy – remember him?
Microsoft Keyboard – this was ergonomic and stuff, but I am not a typist ans use 3 fingers only, and my hands got all bent with this, and it went into my garage for storage. The new compact keyboard with Bluetooth is still the best in its class.
Microsoft Arc Mouse – Yeah, I bought one too and it is very well designed and made and looks like the future, but I have used it only twice. I prefer my notebook mousepad.
Windows Phone – I must say that the Windows Phone is the best phone in terms of usability and experience I have seen, but everyone uses an iBone (not a typo!).
Bing Maps – This is confusing (is it just me?), because of UI changes and it is different when apps integrate with it. Using Map Favorites is way too hard. I have to revert to Google Maps for transit directions.
Bing Search – I only use this because of how it is integrated with Internet Explorer, which reminds me to switch from IE to Chrome anyway and use Google search.
Office – Ok, OneNote, Excel and Outlook saved the day. Take a look at Google docs if you dare, but it was free, and corporations saw the folly of Savings. Employees never went ka-ching!
I am looking forward to using the new Office 13. I hope there is less bloatware this time. and OneNote with the radio-dial. Alas, I have to use Skydrive for the cloud. I hope that is configurable, though it is not so bad.
Azure – this is a pretty good solution I feel MSFT got it quite right and have done a great job with it. Back in the day, it was a pain to use and license, and I could see why the employees hated it. Introducing the SLA was a comfort for many businesses (all they cared about was having this stated on paper) and it jumped the shark. Rackspace is trying hard in the hosting space but I have experienced major meltdowns from them but somehow managers always preferred them because it is cheaper, but worse to develop on.
Visual Studio – One of the main reasons that I am still married to the Microsoft stack. This is the best tool for development. Yes, I have tried Eclipse and others and they suck. But they took a valuable idea of plug-ins from Eclipse (to keep up with the pace of things out-of-band) in the form of Nu-Get.
Linq to SQL – Ok, this is more of a low-level technology, but someone in the Entity-Relationship tgeam had more vision and influence, and the mantra went from “Use Linq-to-Sql for everything” to “We’re deprecating it and only use ER”.
Hyper-V – MSFT did a smart move by integrating this with Windows 8, and I think it will kill VMware products.
Sketchflow – I was looking forward to using this more often and it being better integrated, but that never happened. Now Balsamiq is also charging and the tools out there are not really made for the MSFT eco-system.
Windows 8 – everything is not Metro now and let’s hope the numbers at the end of the year are Metrosexual too and I will upgrade to it.
Kinect – The potential and applications using it are endless. Now, only if it could come out of the hacker space and more into living rooms. They stole a page from the Sony playbook and stayed presistent with it, in spite of eating losses.
Microsoft Surface table – I expected this to become smaller and be used and promoted much more, but apparently the director of that team did not have enough clout within the company.
Microsoft Surface tablet – This is well thought of and I hope users think it is more useful more than the iPad, but it would depend how trendy it becomes. Many medical apps (a hugely growing market) only target iOS.
Silverlight – After painful initial years of the plugin gaining traction over Adobe Flash, it now lives thanks to the Windows Phone. It was hard to make it a real, stable platform and although it has its own niche, it faces a threat from HTML5.
Skype – they have a good release for the Windows Phone, but it is not as easily integrated as Apple Facetime. Lets hope that Microsoft improves it and fixes the Windows application by making it exiting when you close it.
Yammer – Now, expect to see this integrated with Live for corporate use (Facebook is too busy with their Like button to notice enterprise use). This reminds me of the Salesforce Chatter hard-sell vs. Twitter. Many colleagues said we should use it, but I never bothered using it and, honestly, missed nothing.

Please email me with some more that you think of and I can add them here…