Windows 8 – First Impressions

Like many others, developers and users alike, I have been waiting patiently for the Microsoft Build Conference, It was first announced in June with the promise of a look at at the next version of Windows, Windows 8. And Microsoft have delivered on that promise.

Before I get to my thoughts on Windows 8 itself, I should express my annoyance at the way that Microsoft have handled the build up to Build. In June, when the conference was announced, there were a number of announcements made concerning the nature of the operating system and the tools that developers would use to write applications for the new operating system. There was an early preview of what Windows 8 would like, and the news that this is an operating system for tablets and PCs alike.

There was a great deal of angst among the development community when Microsoft announced that the new development paradigm was HTML 5 and Javascript. This was not entirely surprising. Microsoft has for some time been giving very strong hints that they thought that HTML and Javascript would play an increasingly important role in the development of applications, both for the cloud and the desktop. No mention was made of Silverlight.  Of course, no mention was made of WPF or Winforms. Winforms is the long forgotten child of Microsoft, even though they still use it in house to develop applications, and very successful applications. WPF seems to have lost out to Silverlight. Silverlight out of browser applications seem to be the preferred way to build desktop applications. No mention was made of ASP.NET, even though a lot of work has gone on in that area recently, especially with Razor and MVC. So with no announcements concerning these technologies, and no response from Microsoft to the many questions raised by the development community, the users of their development products, the anger expressed towards Microsoft was understandable, and justified.

Microsoft relies on developers using their products to produce applications that run on the Windows platform for their survival in the enterprise marketplace. On this occasion they have treated the development community with contempt. And it won’t be easy to win back their trust.

Now, on to Windows 8.

Microsoft, to their credit, have made available a Developer Preview Version of Windows 8. It isn’t complete. It has bugs. It is not yet at Beta stage. So what we finally end up with will have changed substantially from what we have now.

Bit some things, from what we have been told in the keynote addresses at the Build conference, will not change. What we have been told is that  Microsoft sees the future of computing as “Touch”.  Jensen Harris, one of the Microsoft heavyweights, said that we need to build applications that are the same regardless of the device they run on. Be it a phone, a tablet, a laptop or a desktop, the applications should have the same functionality, and the same look and feel, right up the stack.

And herein lies the problem. All the new applications should be built in the Microsoft Metro way. They should run on any device. And I have to say that Windows 8 looks great for a touch device. I don’t have a touch pc or slate to run it on. But compared to the IPad, which we do have at home, I think Microsoft could have a winner. And if Microsoft wants to become a consumer PC/Tablet/Slate operating system manufacturer, then they may do OK. But this a major change of direction for Microsoft.

I am a developer of applications which run on the Windows platform. Specifically, I write, mostly, business applications which run on the .Net framework. Sometimes I write Winforms, sometimes ASP.Net. But I couldn’t write these applications using Windows 8, at least as I see it now.

The future of Windows applications, according to Microsoft, is Metro apps. Under this paradigm you can have two applications available at any one time. One of them is the major application taking up most of your screen. The other is docked to one side of the screen and takes about 1/4 to 1/3 or the screen width. But I can’t work that way. I regularly use two or three screens. One has Visual Studio open on it, maximised to take the whole  24 inch screen And if the monitor was bigger it would still take the whole screen. Another may have Expression blend, another is likely to have Word, or perhaps One Note, ofr something that has notes dealing with the application I am writing. I am also, at times, likely to have Linqpad open so I can test some Linq queries. I use an O/R Mapper, LLBLGen Pro, in most of my database applications, so at various times during development I will have it open. SqlServer Management Studio will be open at some stages, as might Visio during the database design phase. Perhaps Balsamiq will be open as I try to design the user interface. For continuous integration I use Team City. That runs on a separate PC which is my build server, That PCs monitor will show the results of my Team City build, or, thanks to MaxiVista, will serve as my third monitor when it often hosts one of the Visual Studio windows. I often use it to show my unit test runner. This all works very well on Windows 7. From what I have seen of Windows 8 it will be impossible for me to work like this.

I said earlier that I develop applications for enterprises. The enterprise has been Microsoft’s strength since the days of DOS. Since the 1980s big business has used mainframes running IBM operating systems or mid range computers with Unix, or AIX, or some similar OS. Small businesses have used PCs. But since the 1980s the PC has made further and further inroads into larger and larger businesses. We now have Microsoft Server powering very larger enterprises. Microsoft’s SqlServer competes with Oracle in holding the data of the very largest businesses. Windows 8 is not an operating system, as it looks at the moment, for the enterprise. Business users don’t want to touch their screens, except for a very small number of specialised cases. Enterprise applications, be they accounting, human resources, sales , production or inventory systems, are all about efficiently manipulating and effectively storing data.

Microsoft might think that this is a short-term, myopic, non-visionary, backward-thinking view of computing as we move further into the 21st century. But it isn’t my view.It is the view of governments who want companies to account for taxes, and employees who want a paycheck each week. It is the view of shareholders who want dividends and banks who lend money.

Don’t get me wrong. I want a tablet which runs Windows 8, and over the next 6 to 12 months there should be a whole lot of them on the market to choose from. I expect I will be excited by Windows 9 and Windows 10. As a developer I am looking forward to the challenges, and the enjoyment, that will come from programming for these new devices. And I am looking forward to using the tools that are produced by a lot of very smart people at Microsoft and other software companies. There is a lot to look forward to for software developers.

However, I am software developer only to the extent that I can deliver software that my clients want. And I cannot see any of my clients using Windows 8. I can’t think of one application that I have written in the past  2 years, 5 years, ever, that would have benefited from being written for a tablet. I know I will have to re-think my future application designs to conform to this new future. I will have to learn new skills.

But Microsoft may also have to re-think. If this is the future of Windows development then perhaps my clients might consider moving to Linux, and that will dictate the types of skills that I have to use.

There is another possibility. I have been primarily a desktop application developer. I think that Microsoft has finally decided to kill off the desktop as we know it. All business application in the future will be either Silverlight or ASP. Microsoft was late in embracing the internet back in the 1990s. But they have made up for that with a gusto in the last few years. I suppose I can live with that. All business applications go up to the cloud. But the problem for me and every other developer remains. If Windows 8 is the development environment that Microsoft is giving us, how will every write these application? It can’t be done.

I really hope there are some substantial changes to Windows 8 over the coming months.