Less > More @ JDJ

来源:互联网 发布:ps美工基础知识 编辑:程序博客网 时间:2024/05/17 05:44
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

 

  Among geneticists there is an ongoing argument about which species is superior: humans or bacteria. Both are the end product of millions of years of evolutionary refinement; they just took separate routes on the road to survival. Humans represent the pinnacle of animal development, possessing feature upon feature such as communication and the ability to alter the environment to suit their needs, while bacteria took the opposite tack and remained single-celled organisms that adapt to fit their environment. Large animal species tend to be very vulnerable to environmental change as each ice age or asteroid collision tends to result in a mass extinction. The small and nimble bacteria, however, can weather all storms that the planet throws at it; the irony is that bacteria predate us and will outlive us.

  I'll segue this into application user interfaces. When building software tools it's often good to put yourself in the mindset of the users who don't have your program available to them. Without the functionality you are about to add, what would they do instead? It should always be possible to not use a tool; without a particular tool a developer will just fall back to editing raw files in a text editor and running scripts to do builds or database updates. The job of a program is to take the raw APIs and package them in a form that make sense at a higher level, adding features such as validation, persistence support, or transactional integrity. Once these tasks have been done, a user interface can be added so that the execution of the tasks is easy and intuitive to the user.

  Before immediately writing a lot of GUI code, if the user without the tool was going to edit raw files and run scripts, why not work with rather than replace this environment? Some folks swear by their favorite text editors like VI, emacs, or SlickEdit, priding themselves on their ability to customize and configure macros and shell scripts. I've seen developers who when running into a particularly nasty problem crank up a command prompt and start grepping log and trace files to find out what is really going on. I used to always view it as a failure of the high-level tools if they weren't able to fully replace the need for developers to have to inspect raw files, but now I think it's just a different application species. Text editors came before the GUI and will outlive the fads of client/server to Web client to rich client and back. For me, as a Java developer, the features I appreciate most are those that help with writing code by coloring source, highlighting errors as I make them, or offering code completion choices. When the electronic keyboard was created, the piano keys were kept as they had been for hundreds of years with features added for sampling and mixing the sound. At what point does a computer program reach nirvana for its user interface?

  If the most long-lived applications are those that fit themselves around the existing interface, adding and augmenting what a user would do if the program weren't there, how does this relate to business applications? Before computers there was lots of paper and filing cabinets. Databases replaced the filing cabinets; however, apart from being a good way to archive and store information, databases didn't fundamentally fit into the way companies run. In any organization information is collated, files are dealt with or passed on for attention, and the data flows around the company. I'm not sure what the best user interface is to deal with the real world, but it is one that mirrors a world without the computer, where paper trails are kept, phone calls made, and meetings take place. I even question whether or not database records should be so formatted into rigid fixed columns that, while they help to collect data, they constrain what information can be held and arguably are just there so that fixed format reporting can occur.

  At some point in the future the kind of applications we use will look horribly dated. Something far better will come along that completely replaces the keyboard and monitor. Jakob Neilsen has a nice list of books that talk about the user interface of the future (www.useit.com/books/futurebooks.html), discussing ideas ranging from three-dimensional globes to visualize weather, to a virtual reality markup language. Whatever it will look like, one thing that evolution should teach us is that sometimes More is not necessarily better and that refined simplicity stands the test of time, and the best computer interfaces augment what the user would do if the application wasn't there.

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击