Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Articles
Search: 

In-Your-(Inter)Face
John Koziol, December 1, 2006
John Koziol Column
Summary
John Koziol Column
Description
In 1982, I was a young aspiring programmer freshly released from a tour of duty with the United States Air Force. Honestly, I had no clue as to my real-world marketability and my worth to private data processing firms. I had a fair knowledge of UCSD-pSystem Pascal and was getting pretty good at 6502 Assembler. I could tell you every peek and poke and every entry address to the Apple ][ ROM and had already written my own Apple DOS derivative using the RWTS (Read Write Track Sector) routines that were in firmware.

Reality slapped me hard. Since I had no mainframe experience and couldn’t code COBOL to save my life I was lucky to score an apprentice position with a firm in Greenwich, Connecticut. It was there from 9 to 5, for the next year, that I toiled at key-edit machines, JCL, punch-cards, and telegram machines (all telegrams ended with NNNN).

At night, I would fire up my trusty Apple and play or write games. I would do this until midnight practically every night. At the time, I was staying with my father who used to get pretty annoyed at this (in his words) “obsession”. He saw no value in it for several reasons.

Finally, one night, I fired back at him. I told him that I was learning; I was learning the best ways for people to interact with computers. I think I kind of meant it at the time but after saying it I realized that there was truth to it.

Which brings me to my point: The best man-machine interfaces on this planet are in games.

Games will not survive in a highly competitive environment if they have cumbersome interfaces which distract from gameplay. Can you imagine a shoot-‘em-up that required a menu traverse of Tools -> Options -> Weapon -> Shotgun -> Reload to reload your weapon in the heat of battle? It just doesn’t happen in game design.

Most game command interfaces are single hits in Verb-Noun pairs or, at most, choose Verb and then select Noun. Most game action interfaces are grab the darn thing and do something with it.

This is the way it has to work. Game interaction is so intense that anything else takes away from the focus of the game and that leads to a loss of acceptance of the game. This is why game consoles can get away with not having keyboards and offer rich value with simplistic controllers.

Somehow, we in the business world have not learned this lesson. Oh, to be sure, we’ve learned some lessons. With the advent of GUIs we’ve learned how to be non-modal and un-procedural. But we still lack, for the most part, the immersive aspect of an interface.

When we need to do something in a business application it tends to take away from our focus in what we’re trying to do. For example, if we’re trying to book a transaction in an accounting system we already have to have the chart of accounts entries in the system. If not, we have to make those entries before we can book our transaction.

A measure of the productive use of an application years ago was how many keystrokes it took to complete a given task. Somehow in the switch to graphical interfaces we lost that metric.

Perhaps it’s time to bring it back.

John Koziol, Ultimate Software
John Koziol was an independent consultant and developer off and on for almost 20 years before joining Microsoft in 2001. Since leaving in 2005 he has been involved in several cutting-edge projects using .Net (WPF, C#), SQL Server, and other tools. He is currently a software engineer specializing in model-based testing (MBT) for Ultimate Software in Weston, Florida. He has written numerous articles on VFP related topics for both print and on-line media. He was a Charter Member MCSD and was awarded Microsoft's MVP award from 1998 through 2001. John is married and has three children.
More articles from this author
John Koziol, January 8, 1999
There are usually a lot of posts on the UT regarding numeric bound columns in ComboBoxs, mainly in that people do not get the expected value returned. This is due to the BoundTo property. It defaults to .F. (False) and this means that character listed values will react as you would expect (List ...
John Koziol, January 1, 2001
This is the presentation article for a introduction to data buffering for experienced FPD/FPW people I gave. It's an overview to buffering and basic buffering uses and commands. Data Buffering in Visual FoxPro Introduction to Data Buffering in Visual FoxPro Prepared for the Tal...
John Koziol, October 26, 1999
Spell checking test from VFP, using Microsoft Word's dictionary is so easy it's painful.
John Koziol, August 1, 1998
A common problem is that Valid always fires, regardless of the actual status of the add or edit. Logically, if an edit is being cancelled, you do not want to enforce validation. There is a way to do it. If involves using some old (but still supported) Fox commands. What this code does is look for t...
John Koziol, February 10, 2000
Creating a Data Link is a bit different than in Windows NT, 95, and 98 due to the fact that the MDAC (Data Access Components) are built into the operating system. Here it is: Open a folder. Right-click in the folder, select New and then Text File. Go to the Folder menu item in the folder and c...
John Koziol, September 17, 1998
To create a virtual GotFocus and LostFocus for a grid, create a Container class and put a Grid into it. If you change BorderWidth and BackStyle to make the Container transparent, you can then drop it on a Form with only the Grid visible. The Container *has* a Got and LostFocus. And they will fi...
John Koziol, February 1, 2002
FoxPro Report Designer has always been a great tool, very easy and efficient. However, developers must very often design reports in a format that can be easily viewed by third parties, specially the ones that must be visualized from a non-VFP application. The only native format the rep...