In my last article, "Microsoft, Metro takes our choice away!", I discussed the need for Windows 8 to better use the long heritage of the operating system, rather than try to be something so totally new.
As a Windows software developer I want to see Windows 8 do well on the market, but I realize that end users will dictate that outcome. There is a reason Windows, despite its ups and downs, has become the most popular computer operating system on the planet. It has provided a huge number of people so many choices that it allows them to accomplish many important things. This follow-up article is just one programmer's ideas about how to leverage this power and heritage to make Windows 8 even better.
1. Treat x86 different than ARM. I understand the reasons behind the sandboxed environment of Metro, which is one reason the new user interface has been pushed to the forefront and the desktop to the background. But as a Windows software developer, I recommend something else. Rather than offer a split personality -- desktop and Metro motifs in the same operating system -- it would be better to treat Windows 8 on ARM and Windows 8 (on x86) differently.
Let WOA, with Metro, be the look-forward OS, oriented to consumer-oriented devices and let x86 Windows be for the computer world. There is a big difference between the two. Many consumers right now aren't shopping for PCs; they want mobile devices that can display the content they want most, from the web, email, videos to ebooks. Along with the content they want a few apps, too, often games. WOA is perfect for them, and a primarily Metro environment is ideal.
But there are many people who are looking to buy computers. They want more choices. They want more control. They want to develop content, not just view it. They may be graphic artists, engineers using CAD, writers, scientists or programmers. They may need a full blown PC in their business or trade. They may simply be power users who want the best of both worlds.
The point is, treat x86 Windows as a computer operating system and WOA as a consumer device operating system. Sure they may share some commonality, but the computer version needs to be more open and allow more choices, respecting that the users recognize and are willing to accept the risks involved.
The difference between consumer devices and computers is like the difference between cars and trucks. Trucks are designed for more power, albeit with less gas mileage, to hold more stuff and more weight, albiet with less comfort and often are much larger and less easy to manuver. Yet, those who require a truck would not appreciate having a car forced on them simply because someone says it would get better gas mileage or would be more comfortable.
2. Appreciate the importance of familiarity. One of the biggest complaints about Windows 8 so far has been Metro and how it has taken over the desktop and that the familiar Start Button no longer exists. Actually it is not the Start Button that users miss, but the simple Start menus it displays. I understand the desire to put Metro in the forefront, so here is a nice compromise.
Create a Metro app that acts like the old Start Menu. That would be easy. It can have that Metro look, while displaying the same information we used to have on the Start Menu. This app tile could be a graphic that is just like the old Windows 7 Start Button itself. New users to Windows 8 would see all the tiles and the first tile would be a Start Button app that would look familiar.
3. Create more Metro apps/tiles to bring desktop features closer. We have the Metro app that displays the desktop, so why not add some more Metro tiles to bring other aspects of the familiar desktop closer. There could be a "My Computer" tile, a desktop Control panel tile (not a Metro control panel), a desktop Internet Explorer tile. The point is to create default tiles that bring the desktop closer to the Metro environment.
4. Leverage the Windows heritage, don't disrespect it. There is a lesson that can be learned from the past, from Visual Basic. Whether we appreciate it or not, Visual Basic made programming for Windows fun. It created a new generation of software developers who filled all sorts of needs that many had. It does not matter how many C++ programmers there were who considered Visual Basic a toy or a non-professional programming language. The truth of the matter is that many a Visual Basic programmer made a good living using it and they developed some very professional software that filled the needs of many that the C++ world could not keep up with.
But look at what happened when that long heritage was not appreciated and VB.NET tried to replace it. A huge sector of software developers were nearly eliminated overnight and those who gravitated to VB.NET, many of them actually moved on to C# instead.
What many people may not appreciate about Windows is that despite whatever is the current fad in programming in the mainstream tech world, there is often just as many or even more choices for developing software for Windows that are not part of the mainstream. Don't believe me?
BASIC is supposed to be a dead language and obsolete today according to the mainstream tech world, but yet there are so many independent developers of Basic compilers today, that a lot of software is being developed by them that solve many important needs in the Windows world. Some of these compilers can produce better and faster applications than with mainstream languages. Some are so easy to use, even a novice can produce quality software.
Check out this list of Basic compilers.
Now this is just the BASIC language. There are so many other choices that may not be mainstream, but yet they are popular. Consider languages like Python and Ruby on Rails. If you doubt this, check out this website to see how many popular computer languages there are today, which are not mainstream, but yet are being used by many software developers. And this is just an example of a lot of the free stuff.
The point is that Windows has been around so long and has such a rich development heritage, that the choices for writing software for Windows is just staggering.
5. Choice works for open source and has long worked for Windows. Don't take it away. The open-source world has produced so many choices for developing software for Windows, one would be ill-advised to disregard them. For example despite the popularity of DirectX, OpenGL is a popular standard for 3D graphics simply because of the huge support in the open-source world. I use OpenGL because it provides some things that DirectX does not.
It is not a matter of one programming language being better than another, but it is a matter of allowing Windows developers as many choices as possible. Windows is used by so many people worldwide that there is no way one or two major companies could provide all the software needs of all these people. You need all the many different ways of programming that currently exist.
Even the so called simple development tools like BASIC, 4GL languages and scripting languages serve a purpose. Do you realize that there are some companies today that are still using DOS applications, simply because they do the job better than any other application currently available? Windows for years supported the ability to run DOS applications and with today's virtual technologies, one could still run DOS in a VM to run such apps. You don't see anything like that in the Android or iOS worlds.
Over the weekend, Apple' App Store reached 25 billion downloads, which appears staggering. But when you consider the amount of software being created for Windows over the last few decades, I would venture to say that it dwarfs the number of iOS apps available. And that is not the number of downloads of apps for Windows I am refering to. It is the actual number of unique apps for Windows developed over many years. The reason for the huge number of Windows apps is because of its long rich heritage and because there are so many different choices for developing software. The open source world has simply expanded this even more.
6. Make backward compatibility a priority again. Until Windows 8, backward compatibility was one of Microsoft's major development priorities. Why is backward compatibility for software so important? Because it takes time to develop software, it costs money to do it. To "reinvent the wheel" every time there's new software wastes valuable money and resources. Windows' past history of backward compatibility has actually been its biggest success. Do not underestimate the importance of this. As businesses see the need to save money and use resources wisely, backward compatibility can make or break a them.
When it comes to Windows backward compatibility this eight year-old article by Joel Spolsky is one of the best reads I have found on the subject.
If Microsoft wants its newest OS to succeed, Windows 8 should stay Windows, meaning it can become Windows again by embracing the rich heritage it has. This does not mean Microsoft should drop Metro. Metro needs to simply be just another new facit of Windows, rather than to replace it. I do see the need to bring Windows forward into the world of touch and tablets -- that's WOA's role -- but not at the expense of the long rich history that is Windows.
Chris Boss is an advanced Windows API programmer and developer of 10 year-old EZGUI, which is now version 5. He owns The Computer Workshop, which opened for businesses in the late 1980s. He originally developed custom software for local businesses. Now he develops programming tools for use with the PowerBasic compiler.