赵翔鹏的Blog Xiangpeng's Thinkpad

23十一/050

软件开发:怎样满足所有人的需求

想写出完美的软件,满足所有人的需求?好像不可能……因为每个人的需求都是不同的。但是用过firefox,emacs,eclipse之后,忽然觉得这也是可以部分做到的。解决方法就是可定制化,插件化。

但是!初学者是不管你的系统有多么可扩展的,比如我第一次下载firfox时,根本不知道还可以装“extension",还以为就是一个模仿IE的产品
呢。第一次用oracle之类注重功能而不考虑入门用户上手速度的软件,也是有点痛苦的。相比之下,vs.net的特色就是入门快,虽然用到细节之处就开
始发现问题多多……

不妨总结一下:1. beginner希望界面简单,容易上手;2. power user希望更多的功能,更多的插件。

按照这个原则,emacs违反了1. 这也解释了为什么网上有很多“预配置”好的emacs,比如easyemacs,"latex专用emacs"等等。

同样按照这个原则,为什么windows“好用”?因为它有大量的application可以用。对第一次使用linux的一般用户而言,常见的问题是:
有qq吗?有word吗?(什么?只有这么难看的gaim?只有这么难用的open
office?)还好,linux也在改进。windows以前的缺陷是高端服务器应用太差,不过,windows也在改进嘛~

如果windows和linux都有无数的application可以用,那时候才要看谁的内核更强了……在此之前,作这个比较常常是没有意义的。

Windows的成功除了因为有大量的application可以用外,m$开发了很多成功的典型应用也是很重要的,如office等。相比之下symbian的讨厌之处在于nokia总等着第三
方来写应用,默认的录像机程序竟然设成只能录1分钟,还只能录图像没有声音,吓走了很多初级用户。ipod,mac的成功也在于apple把最常用的功能都做的非常好用。

并不是每个人都有能力安装配置新的插件、应用;即使有能力,也未必有时间。预配置也是很重要的,不仅有利于吸引初级用户,也有利于高级用户迅速理解该系统
的能力究竟如何。为什么我们需要linux发行版,而不是下载所有的linux源代码自己编译?因此,可定制性和易用性的平衡一定要把握好,才能吸引更多的用户。(其实我也承认,完美的软件是不存在的……)

Update:
unix下的命令行小工具也是一种比较好的满足各种不同需求的方式,用户只要用脚本语言把他们连接起来就可以了。vba也是满足各种特殊定制需求的一个解
决办法。从这个意义上说,web service,soa也是一个很好的可扩展架构,用bpel就可以把web
service粘在一起,满足一种需求。再前卫一点的是http://www.ning.com

Update:
想了想,其实插件就是一种组件,准确的说插件就是基于黑板体系结构的组件,插件之间一般是没有互相的交互的。相比之下命令行工具、web
service就灵活得多,用户可以自己写一个connector把不同的组件连接起来。总而言之,组件技术还是非常实用的。

评论 (0) 引用 (0)

还没有评论.


Leave a comment

(required)

还没有引用.