Has Microsoft Lost Its Way With Development Environments And Tools?

As you probably know if you know me, as much as I do IT Consultancy and Support, the other big thread to my daily work is application development.  I have been deep in programming work for the last 6 months for Lloyds TSB Bank and more recently for a security company in Gloucester called Advantage One. Most of my development work is done in Microsoft Visual Basic using Visual Studio 2010 and I compile most of my applications against the Dot Net Framework 4.0.

A Bit Of My History

Being a developer for Windows is quite hard as Microsoft keep moving the goalposts.  I started programming when I worked for Lloyds TSB using Clipper for DBase databases (not a Microsoft product).  Later as Windows took off with Windows 3.1 I started using Microsoft Visual Basic (VB).  This went through versions 1 to 6 in as many years almost and each time new capabilities were brought in that you had to learn to use to get the best out of it.  Early on I was using ODBC (Open DataBase Connectivity) to connect to Access databases using Excel and programmatically using DAO to connect from within my applications. 

When I had just got my head round how to use DAO, the next Visual Basic release said that we should stop using DAO and move onto ADO (ActiveX Data Objects). So you start over and learn yet another methodology for talking to databases through your programs.

Just when I thought I had got that mastered Microsoft decided that VB had to change, if you wanted to move on beyond VB6; and you did if you wanted to take advantage of all the new shiny stuff that was in Windows XP and later in Windows Vista. So throw away everything you know about writing programs in VB6 and start afresh with VB.NET 2003. 

Suddenly, everything you could do without thinking, like populating a drop down list or accessing data was completely different.  Suddenly you had to import bits of the dot net framework into your program to get stuff that used to work without importing things in VB6.  It was a shock, all previous updates to VB were fairly straightforward.  This update stopped you working until you learnt all the new methods of going about programming.

In the background this was Microsoft coming up with an alternative to Java.  The Dot Net framework is a foundation on which you build programs like the JVM (Java Virtual Machine).  The idea of building Frameworks and Virtual Machines is to separate the key elements needed to produce programs like forms, buttons text boxes and the way your program manipulates files and databases, separate from the bare metal of the  operating system on which it runs. 

This means that if you want to implement the ability to run these programs on a different operating system like Linux or Mac OSX all you have to do is create a Framework or Virtual Machine that works on that platform and theoretically the programs that work against the Dot Net framework on Windows will now run without changing the source code on any of the other platforms that can run the framework.

Microsoft were envious of Java which was created by Sun who have now been taken over by Oracle, as it offered this cross platform environment that eluded their VB6 applications.  This is why we all moved to Dot Net. Suddenly MS had their own Java like platform.  Not only that, this platform was cleverer than Java because you could plug in any language you like to their framework, as far as I am aware the Java VM is only for the Java programming language. With Dot Net you can write in C#, VB, F# and Python and any other language if you have the time to write a language plug in for Dot Net.

There is a project called Mono which has implemented the Dot Net Framework on Linux, so now I can write programs for Windows in C#.NET and my code can be loaded in Mono and recompiled and will now work on a Linux PC. I haven’t actually tried it but that’s the theory! Great. So where is this rant leading?

Now To The Present

Well, just recently Microsoft did an early demo of Windows 8 and the presenter (Jensen Harris) went though the new interface, see it here:

http://www.microsoft.com/presspass/features/2011/jun11/06-01corporatenews.aspx

the video is about two thirds of the way down the page. If you watch it, there was a key comment made at about 1 minute 20 into this clip, where Jenson says that the new applications that run in this cool new interface are built using standard web technologies, HTML 5 and JavaScript.

A lot of developers were up in arms at this, especially the developers who use Silverlight which is Microsoft’s version of Flash and is used on the Windows Phone 7 interface (see below):

image

As you can see its interface is pretty much identical to Windows 8 or rather it’s the other way around. 

You would imagine therefore that the Windows 8 interface would use Silverlight as well, but as per the video mentioned above, Jenson Harris said it was done using HTML5 and JavaScript.  I personally don’t have an issue with this as I am just as happy in HTML5 and JavaScript as I am in VB.NET or C#.Net, though I do find using HTML a bit tricky to get a database application working well without some of the rich controls you get in  VB.NET or C#.NET.

So in a stroke Microsoft pissed off a large quantity of Dot Net and Silverlight developers who could see all their time, effort and in most cases, cost, (training, books experience etc) flushed down the toilet!! All you need now to write applications for Windows 8 is HTML 5 and JavaScript, so you boys can all go home!).

I don’t read it quite as bad as that, as later in the demo it’s made clear that the old user interface can still be accessed and all your old style applications can be accessed through what might be termed the “classic” Windows 7 style interface. As developers though, we don’t like to think that all our work is now passé we want to be bleeding edge man!

The Big Picture

The bigger issue though for me is where are Microsoft going with all this? I can see if you take a short term cool and trendy (read air-head) approach, having your main Windows O/S look like Windows phone and be touch centric, you can then hop on the bandwagon, that thinks tablets are the ONLY way to run a computer in 2011 started by Steve Jobs and his iPad!

The best laugh is that it was actually started by Microsoft years ago (2001 era), when it developed its tablet interface version of Windows and Bill Gates famously opined that this would be the way ahead http://gizmodo.com/5324866/vintage-bill-gates-predicts-tablets-to-be-the-most-popular-form-of-pc-sold-in-america (how short some people’s memories are)!

As usual Bill was there first but Steve made it happen when technology was capable of delivering the idea.

So I can see there is some heritage to using tablet PCs within Microsoft and they feel that their next O/S must be capable of being operated with your fingers rather than a mouse and keyboard. 

The trouble is, this is the Apple view of the World, clearly they are a consumer based organisation.  I think Apple have in the main given up on the commercial World. They realised that after the success of the iPod then iPhone and finally iPad their “cool” products were suited better to Joe Public not business.  I think they realised that Microsoft has won that battle.  I think Steve Jobs wants to take the home Windows PC user away from Microsoft by offering the iPad for web browsing on the sofa and the iPhone for computing on the move.  Home users tend not to want to sit at a desk, they’d rather slop down in front of the TV with their netbook or iPad and multi-task between the two. 

My daughter Mary is a prime example of that, she always has her laptop on her lap, usually with Facebook and other websites open chatting with her pals and watching the television at the same time.  She claims that she can do both, in reality she’s doing both things badly, which seems to be the way with kids today, they have lots of buzz going on around them and claim they are multi-tasking.  They are not they are just flitting between different things and absorbing very little of it. But that’s a separate rant for another day!

I am sure if Apple found that owning the consumer space drove up demand for their products in the business world they would get back in, but at the moment that’s not likely to happen.

I think this idea of using a tablet on a sofa is consumer rather than business oriented, when I use a PC to do work I like to sit in a comfy chair at a desk with room around me for other papers and my printer and scanner and my full on audio system and two big screens. I am not the kind of user that this tablet oriented O/S is aimed at.  So is Microsoft reacting to Steve potentially muscling in on the private user space or are they now full of air-heads who think Apple is great and Windows is crap because it doesn’t look like an iPhone!!?? I hope wiser heads step in and start reminding the Windows UI team that some of us prefer a keyboard and mouse and don’t want to be in the front room in front of the telly.

Back To Developers

Ok so I can see why Microsoft might want to stop Steve stealing the Windows X Home Premium clientele, it’s a big market that Microsoft currently own, but Steve thinks he can chip away at it like he did with the iPhone against Nokia.  So I can see why you might make Windows 8 look like Windows Phone 7 and be ideal for tablets to try and fend off the iPad threat, but what if that really pisses off your Business customers, who pay a lot for their Windows infrastructure, Windows Servers, MS Exchange, MS SQL Server and vast numbers of Windows 7 Pro installations? I think that might be a mistake.

An even bigger mistake is to piss off your developer base. What is an O/S without any applications.  If you mess with us we’ll go elsewhere, nowadays there are plenty of lucrative alternatives such as developing for Android even IOS God forbid.

I always thought that Steve Ballmer understood the need for developers to make applications (NOT Apps) that made his O/S look good, see this clip:

Steve Ballmer–Developers

 

Trying to make Windows look “Cool and trendy” like the Mac, may seem sensible to the air-heads, but have they done any research into whether their massive user base actually agrees with that.  I don’t. I really don’t want my greasy fingers messing up my screen I am much happier with a mouse.

So as I see it, they have a lot of business customers who want to run productivity applications like Word, Excel, Photoshop and AutoCAD which now seem doomed to the “classic” Windows 8 interface, i.e. second class citizens.  They also  seem prepared to disenfranchise their key developers in favour of air-head HTML applications that probably run to a few hundred KB and are very limited in what they do.

Guess what, they will probably see developers jumping ship to more fertile shores like android or IOS and the business customers will follow the talent as they won’t be able to get the great applications that really do something of any use on Windows any more.

Own goal!!