软件开发随记之二 —— 软件界面的Web化

来源:互联网 发布:mac ps 破解器 编辑:程序博客网 时间:2024/06/04 18:32

 

(一)

 

我们已经习惯了这样的软件使用模式——点击一个可执行文件(或者快捷方式),然后弹出一个窗口(全屏界面可以认为是一个特殊的窗口),上面堆砌了复杂的操作元素——菜单,按钮,滚动条,文本输入框……让一个不会电脑的人来接触这些,可能会让他们无所适从,但是,我们自己对如何使用它早已轻车熟路,对于大部分的软件,看看界面,基本就知道怎么用了,无需看帮助文档。Windows程序如此,Linux上的图形程序也如此。

 

(二)

 

基于GUI(Graphical User Interface,图形用户接口)的程序,使用起来方便,开发起来却不是一件容易的事情。如何制定软件界面风格,提高用户亲和力,让用户感觉易于使用,是一门结合工程和艺术的跨学科的学问,这里也不多讲。仅仅考虑用代码实现软件的界面这个纯工程的问题,所要花费的工夫有时也让人望而却步。虽然有很多现成的图形应用程序开发框架,但是,简单的使用它们并不能达到所想要的效果,想要深入挖掘这些框架的潜力,又会发现花了如此多的时间,到头来还是得被框架设计者牵着鼻子走,并不能用它们来完全表达我们的创意。很多时候,GUI的开发耗费太多时间,但成效很不明显。且还有一个特点:跨平台的能力不强。

 

曾经,我们都理所当然地想到,所有的电脑必定有一个显示器,软件的界面显示在显示器上。但是,如今的智能设备越来越多,比如,手机,家用路由器,家用网络存储系统(NAS之类的东东)。每一个设备中都有CPU,都有内存,完全可以当一台小电脑了。是不是它们都需要一个显示器呢?手机有自己的LCD屏,可是,家用路由器和家用NAS,接一个显示器完全是多此一举,我们用怎样的办法来灵活控制它呢?Telnet也许是一个办法,但是一般用户完全不知道Telnet是怎么回事。有什么办法来提供方便使用的GUI接口呢?

 

前面两类问题,都可以通过Web程序来解决。

 

(三)

 

基于Web的程序在互联网大兴的时代,生逢其时。统一的标准让Web程序可以适应不同的操作系统和浏览器平台,轻松解决跨平台能力。虽然微软的IE还在兴风作浪,自己搞一些特例独行的东西,但是,Web标准化是无法逆转的大趋势。简单的HTML语法,让界面开发人员上手起来也轻松自如。Javascript再复杂,也比乱七八糟的C++界面代码容易理解。虽然Web程序的整体开发并不简单,但是单从GUI来看,它让人们摆脱了很多繁琐的负担。以往,我们往往会为图形的渲染,背景的设定写出非常复杂的代码,现在我们都可以用简单的脚本实现,把复杂的重复的工作都交给浏览器去完成吧!

 

以往,我们常常会把Web程序和商业运营的网站,比如Google,网易,淘宝等联系起来。实际上,就是在家里的设备中运行的程序,比如路由器和NAS,甚至智能家电(拥有智能芯片的电冰箱,电饭煲等等)其界面也可以完全Web化。只要设备都联网,通过一个IP地址,在浏览器就可以轻松地访问它们。通过浏览器里面呈现出来的GUI,很轻松地进行各种设置。另外,因为联网,我们甚至可以在世界给地对它们进行控制。比如,假如哪一天我发达了,跑到马尔代夫去度假,可以一边在沙滩上晒太阳,一边用手机来访问家里的NAS,打开Transmission这个BT下载软件,用来下最新的1080p电影。

 

Web程序目前不能代替所有的应用程序,但是,Web的确能够完成大部分的事情,要不,Google怎么会推出完全基于浏览器的Chrome OS呢?