Will we always be stuck with Software Training Wheels?

I have a cyber-colleague who I met virtually (through email) soon after I first gained access to the Internet in 1995. We will call him Fred. He has a degree in electrical engineering but, because of his interest in software, he became a computer programmer. He is very talented and has developed a full standards-based software tool chain that is now open source and available for free. Ironically, with little formal background in electrical engineering, it was I who would go on to develop many successful electronic circuit board designs. But I still have an interest in ground-breaking software tool chains and am presently working on a 6th generation.

Back in 1995 I tried to interest Fred in co-developing a very futuristic software system that still has no counterpart on the market to this day. He and I worked together for several months on some very innovative software. Earlier, Fred had experienced a sort of nervous breakdown and was on disability. That is why he had so much free time to work with me. I understood that it came from the pressures put on him to write software but I'm sure that an ill-tempered manager had something to do with it. Fred didn't go into detail and I wasn't going to press him on the subject. No doubt that Fred's own ambitions added to his stress. Since those days, Fred seems to have found a comfortable life by accepting the status quo of how software is done in the mega software-company era.

Recently I asked him to look at my latest software tools and give me some feedback as I had given him on his. He gave me a lot of useful comments and I appreciate that. One of his comments was that I had broken some of the Windows conventions on how to do a graphical user interface. I went into a tirade about what is wrong with standard graphical user interface conventions and why.

The common masses seem to have few choices when it comes to operating systems. There are people who use computers that are said to be computer challenged. So to make things easier on them, some features act like training wheels to make sure handicapped users don't get confused. But for the rest of us, those training wheels are still on and we wish they were gone.

Probably my biggest gripe about modern user interfaces is that they lack hidden edit buffers for users to enter or change parameters that affect the way the software works. The way older (superior) software used to work is that you would make a change in a text field and it wouldn't take effect until you pressed the Return key. What the software was doing was to use a text buffer that was invisible to the application until its content was ready to be presented to the application. But the way software works now on both MacOS and Microsoft Windows is that every single key stroke is acted on and the value that is in the text field at the time is taken to be ready for use. This has been the source of a lot of frustration for me and is the basis for some badly performing applications.

I understand that the average computer-illiterate person sees a field that is on a computer screen and thinks that is what the current working parameter's value should be. They would have to be told “Well you have to press the Carriage Return Key before it takes effect”. They never seemed to understand why that should be necessary. “If it is Out of sight, then it is Out of mind” as they say. But there is a very important reason why this should be so and it is called transaction processing. It is used in the banking industry for good reason. Just imagine that you want to write a check and you were typing in the amount that you want to pay to some one. Now imagine that every digit you typed into the amount field would cause the software to make a withdrawal of that amount currently in the field from your bank account with every key stroke. That is the kind of thing that many Windows applications are doing right at this moment.

I wrote an email to Fred and went on a tirade about this. I hid some profanity with $#@! and such to express my feelings about the topic. I just re-read my email and was happy that I used constraint in the way I said things (though one literal cuss word did slip through). It got me thinking about training wheels which you may have experienced when you were young and first learning to ride a bicycle. Some conventions for how to do a windowed user interface are much like training wheels. They keep computer-challenged people from getting confused when using software. One of those is understanding how an edit buffer should be hidden from the application until the value that it represents is presented to it. In well-written software, especially if the text represents a binary data-type, then the application won't see the text at all but will see the fully-formed data item (all or none) before being acted upon. The Return key in such an instance is the commit button. It is a form of transaction processing and it prevents a value from being used while it is being formulated. It is like preventing cars from using a bridge while it is under construction.

One of my favorite applications is Terragen. It creates wonderful photo-real images and videos, many of which have been used in main stream feature movies. But this application doesn't use hidden edit buffers and this is an irritating flaw in its implementation. The reason it is so frustrating is that it has this pre-render that starts running immediately after a scene is loaded. It consumes every core in your system and its user interface can lock up for several minutes until the pre-render has finished. When you change a parameter, it starts the pre-render over and you might have to wait several more minutes before the application will even accept another key stroke.

Terragen has many fields that will affect a render so it is very time consuming to make any progress. For example, say you want to change a distance from 1349 meters to 2650 meters. You will have to delete the digits that are there with four presses of the Delete key. So you delete the ‘9’ digit and the new number becomes “134” and the pre-render starts over taking that as the number of the basis of making your picture. You have to wait a couple of minutes before the application will accept another key stroke and the picture you get is nothing like what you want. Finally, the application will let you press the delete key again and so “134” becomes “13”and you have to wait several more minutes. You will have a problem when you get to “” because the application will not accept a blank entry. So you have to gradually change the number with every key stroke, careful that the field is not empty with this tortuous process until the field finally becomes “2650”. What users of this software have learned to do to cope with this bad situation is to bring up an instance of Notepad and type the new number there. They then copy and paste it to the field in Terragen. Applications with hidden edit buffers don't suffer from this deficiency.

Once I created a storm on Planetside's forum and many of the users (who are artists and not programmers) immediately took me as attacking the company so they ganged up against me. One of the company's spokesmen read my recommendation and basically said that what I was suggesting was to the effect of being old fashioned. In truth, what software has gone back to doing is even older and hearkens from a time before solutions to these kinds of problems were invented. But it seems that even software products are design for “the lowest common denominator” and really gifted people are expected to live with the handicaps.

As in the bicycle analogy, those who have obtained the ability to walk without crutches should put them aside. For being forced to still use them will make them as handicapped as if they were still crippled. Arguably, there shouldn't be many computer-challenged people still using desk-top computers because they've all gone to cell phones. But those of us who still use them are stuck with the crutches designed for people who are not longer around.

要查看或添加评论,请登录

Paul McKneely的更多文章

社区洞察

其他会员也浏览了