When Written: May 2011
Because of the fast pace of innovation within the IT industry, making predictions in a magazine article can be a dangerous thing because of the long lead times associated with print. The prediction could be proven wrong by the time the magazine hits the bookshelves, but despite this I am going to risk such a thing this time. My reason for attempting such a thing is because of the wall of secrecy thrown up by Microsoft and the announcement that we will have to wait until September for the full announcement, so I have until then to pretend to be all knowing and have a decent period before I might be proved wrong.
The tiled UI of the new Windows Desktop
It all started with the first previews of Windows 8. This announcement got me thinking long and hard as to what Microsoft might be up to. My interest was not in the new user interface of Windows 8 as such, any blog writing ‘Muppet’ could have predicted that it would be based on the design for the Windows phone as Windows 8 is aimed to run on tablets (which could be thought of as large smart phones), as well as desktops, so it is no surprise then that it consists of active tiles and a User Interface ( UI ) laid over the top of a traditional Windows UI in much the same way as Media Center is a UI for use with remote controls and TV displays laid on top of a more or less standard install of Windows. So nothing too startling there. True the Windows 8 UI looks pretty slick and there is obviously a lot of thought and work that is still going into it so it perhaps is a little unfair to make up one’s mind on it just yet.
What was the complete bombshell for me, and a lot of the developer community, was the announcement that the UI was build using HTML5, JavaScript, and CSS and neither .NET nor Silverlight. That does help to explain the amount of work that has been done by Microsoft to get the fastest JavaScript engine they possibly could. I did wonder in a previous article as to the point of this, as having faster JavaScript rendering does not really help web developers as, for the sake of compatibility, they often cannot take advantage of such enhancements. But once the performance of the operating system user interface starts to rely on JavaScript then the performance of this core component becomes imperative.
The announcement that the development platform for the new UI will use standards compliant web based technologies rather than Microsoft’s own propriety technologies of Silverlight and .NET caused more than a few rumblings within the developer community. This coupled with the announcement a few weeks previously that the head of the .NET team and considered to be the inventor of .NET itself, Scott Guthrie has moved to the Azure team, was enough of a shock. So with the developer community reeling at the thought that those thousands of hours spent learning and using .NET might become obsolete, the next bombshell to be dropped was that the developer tools for the new UI in windows 8 will not be announced until September. This is an admission that the existing tools of Visual Studio 2010 and the Expression suite with Blend are not the ones for the job.
So what are we supposed to use? I decided to do a little digging; my usual contacts within Microsoft were more tight-lipped than usual, only hinting that there is some very exciting stuff going on. So what might this be? Whilst it is true that you can write HTML5 and CSS3 code with nothing more than a copy of Notepad, in this day and age we expect and need a proper set of development and debugging tools with code hinting and single stepping as a minimum requirement so that development can be at a pace supported by the sort of rates paid for the work.
I think it is fair to say that whilst tools like Adobe’s Dreamweaver CS5.5 will preview a lot of HTML5 effects and Microsoft’s Expressions Web has considerable support for CSS3, there is not yet a definitive design environment for HTML5 development. Furthermore, I have not found one in the Open Source community either, if you know otherwise please email me. One of the main reasons for this is probably because HTML5 is not yet a defined standard. The absence of the mention of Silverlight in the development of Windows 8 apps also caused much gnashing of teeth. Is it a case that after so much promotion Microsoft are dropping Silverlight with its XAML programming language as a means of creating desktop apps for the next version of Windows?
Again a bit of digging sparked off by a mention by some of the presenters of ‘native Silverlight code’ made both myself and others wonder. What it looks like is that XAML will be available as a core library built into the OS, rather than Silverlight being a plug-in as it currently is. Currently this library, which few at Microsoft are admitting to, goes under the code name of ‘Jupiter’. So if Jupiter does exist and it makes sense that it does, then in this case Silverlight will run natively on the OS without any plug-ins, and as was mentioned on many occasions during the Windows 8 presentations, the OS will be the same irrespective of the device that it is running on whether it be a high-end desktop, laptop, netbook or tablet device. So it looks like XAML may well be the way to go for advance UI design in which case Expression Blend will probably be the development tool of choice.
Using Silverlight in this way will allow your code to have access to the device’s hardware and file system. This last point is important because the ‘sandboxing’ of most web based scripting languages like JavaScript leads to problems when trying to write desktop applications that have to access the hardware. This ‘sandboxing’ is a built-in feature of many of these web-based technologies so as to provide a high level of security when dealing with web based code from un-trusted sources such as web sites. Silverlight 4 already has the ability to access the file system as well as certain parts of the hardware and this may well be extended in Windows 8 with Silverlight5/6.
It seems that finally Web applications are coming of age and becoming the desktop applications of the future as I predicted earlier. This does not mean that programs like Excel will be re-written using HTML5 (although it could, just take a look at Outlook Web Access to see how close things are getting) I would see .NET being used to create Web services and Classes that can be called from the HTML/XAML based code, the nirvana of the separation of the business logic and the design code finally coming to fruition. This is something that Microsoft has been championing for many years now and has had varying degrees of success with.
Article by: Mark Newton
Published in: Mark Newton