Search This Blog

Tuesday, August 7, 2012

Does Windows 8 and WinRT mean Death to the Command Line in Windows?

First, if you didn't get the news, Windows 8 has been released to computer manufacturers (OEMS) so they can start on developing device drivers and other components for Windows 8. If you have a MSDN subscription, you can grab the RTM version on August 15.

With Windows 8 comes a big emphasis on (graphical) user interface in programming. A big part of this is developing with touch in mind and what you can do with touch. However, I am concerned that the graphical user interface is being somewhat overemphasized and the usefulness of the command line is in danger of being neglected.

For those of you who haven't done work in Linux or are too young to remember MSDOS, a command line (on Windows, I believe it is called "Command Prompt") is a tool you use to type in and execute a program and any (special?) parameters for it. Up until Windows 95, you needed to have MSDOS installed to run windows. Windows 95 was the first release of windows to be independent of the command line. This trend that Windows 95 started has continued through further release versions of Windows even through today. Even though Windows 95 and any future releases of Windows can run independent of the command line, Microsoft still includes a console program to access the command line in Windows.

I will admit that a graphical user interface makes computer use much easier, especially for those who are "computer-challenged" or don't know a lot about computers. However, the command line offers much more power than any graphical user interface. You can specify exactly the program and any parameters you want the program to run with. If you launch a program from a graphical user interface, it either launch with the "default" options and no special parameters or, if using a shortcut, whatever parameters are configured for the given program in that shortcut. It is possible for programs which have a graphical user interface (gui) to also have parameters which can be used on the command line. Most of the time, these parameters for programs with a gui are either hidden away somewhere (such as the README) or not disclosed.

In Windows 8, Microsoft DID include the command line. I know this is certainly true for the 32-bit and 64-bit X86 builds of Windows 8 (partially, I think, because of desktop mode). However, there is still no word yet on whether Microsoft will include the command line for the ARM build of Windows 8. This is further complicated by the fact that the LaunchFileAsync() function found in the Launcher class in WinRT will not launch files which contain executable code. With this function, the file chosen will be launched by the default program associated with the file's extension or you can use an "Open File With" dialog box to choose which program will open that file type. For more details on the Launcher class, please see http://msdn.microsoft.com/en-us/library/windows/apps/br241801.aspx.

The fact that you cannot use a program to launch another program (command line excepted) is not a problem for most developers in most situations. However, if there does come an instance where you need to launch an external program in a WinRT program, you will be out of luck. This is particularly true for those of you who use rom kitchens to build custom roms for your smartphone or pocket pc. As to not derail the purpose of this article, I will touch on rom kitchens in Windows 8 in a future article.

Touch does pose a problem in implementing a command line. The command line, at its conception, never envisioned that people would use touch (or a stylus) with it. The command line was designed for use with a hardware keyboard. To get around this, you can use a "soft" keyboard (or handwriting recognition software when using a stylus, but this is not foolproof) to type in the command line on a computer which lacks a hardware keyboard. This is the approach used in Windows XP Tablet, Windows Vista, Windows 7, and any handheld varieties of Linux. In a touch world, the command line will have to "evolve" so that there is an onscreen keyboard which is movable on the screen to wherever the user wants it AND be able to view what you are typing using the onscreen keyboard. One approach to this could be having the onscreen keyboard at the bottom of the screen and any console output above the keyboard without the console output and the onscreen keyboard overlapping.

As always, a good graphical user interface will always make your users happy, since most of the users are not heavy power users which need a command line. The big thing is to have the great emphasis on an excellent graphical user interface, but not to leave the big power users which need a command line out in the cold in the process.

So what do you think this situation? If you have any thoughts or comments of your own about this, feel free to share them via the comment box below or e-mail me at catholictechgeek@gmail.com.You can also find me on twitter (twitter username is @rctechgeek). Feel free to subscribe to my rss feed too. I am now on Tumblr now as well (link to Tumblr is http://www.tumblr.com/blog/catholictechgeek), so please follow me on Tumblr too.

If you're feeling thirsty while using the computer or can't quite stay awake while using one, drink  (or give someone you care about) some tasty Mystic Monk Coffee (use this link or click on the picture below to access the store and purchase). Trust me, it's good coffee (in most instances, much better than Starbucks coffee) and you won't regret buying some (just keep it away from your computer keyboard or laptop/tablet). For the summer, they are also offering Iced Coffee as well. If you like tea more than coffee, they also offer tea. Using the link (or picture below) to buy the coffee (or tea) helps the monks out and helps me with college expenses as well.








Feel free to try out my apps for Windows Phone: Mobile Media Manager, a media player app I made which has some features which (I feel) are missing from the system Zune player, and BSA Eagle Tracker, an app that boy scouts can use to track their progress to Eagle Scout (when the scout handbook isn't always handy). The update for the paid version of Mobile Media Manager is out, but my last submission update for the free version in Microsoft Apphub certification failed, so release of the update to the free version will be a few days (< 7). BSA Eagle Tracker is also getting a bug fix for an obscure bug I noticed recently.

BSA Eagle Tracker download: http://bit.ly/Mm1Upo
Mobile Media Manager (paid version) download: http://bit.ly/y3rf6V
Mobile Media Manager (free version) download: http://bit.ly/xGCsWE

No comments:

Post a Comment

ShareThis