软件与生态系统

几乎所有人初次接触电脑时,脑子里很少有“软件”这个概念,太抽象了。自己第一次接触电脑还是在初中的电脑课程上,接触的第一批软件是金山打字、记事本、纸牌游戏之类的。至于那些经常去网吧的同学,还会接触到QQ、游戏之类的软件。除此之外如果没人教,也很少接触新的软件,本来电脑都很少接触。高中时学会玩红警与魔兽,还学会了迅雷下载。到了大学,既有了自己的电脑,也有了折腾电脑的时间,玩电脑的水平才有很大提高。

刚上大学时,想不到转换格式用转换格式软件(其实还不知道格式是什么东西),不知道编辑图片用图片编辑软件,也不知道IE之外的浏览器,不知道文件或图片批量处理软件,总之有很多完全想不到。最可恶的是也不知道用百度搜一下。

后来,逛软件下载站,疯狂的下载、试用、卸载软件,总算把常用类型的软件都熟悉了一下。的确,一个软件下载站就可以熟悉常用的软件,一个智商正常的人都有能力完成这个任务。再说还有大学上的计算机基础、计算机应用、计算机程序基础等课程,还有同学朋友的熏陶。这样,大部分人的计算机技能都够应付日常生活和工作了。

后来自己接触到的很多软件,根据博客、问答等提到的信息去下载的。而且想要什么功能的软件,会去主动搜索相关信息。

逐渐理解了操作系统提供API,用来供程序开发者开发各种功能的软件,然后所有人都可以使用这些软件。仔细理解这个过程,有三个角色:API提供者,功能开发者,功能使用者。而很多系统都是由这三种角色构成的。

  • iOS:iOS,各种应用与游戏,使用iPhone或iPad的人;

  • FireFox:FireFox,各种扩展,FireFox的用户 ;

  • 魔兽争霸:Warcraft,地图(mod)开发者,魔兽玩家;

  • JavaScript:JavaScript & DOM,各种库,使用各种库的开发者;

  • jQuery:jQuery,各种插件,使用jQuery的开发者;

  • 搜狗输入法:搜狗输入法,搜狗皮肤制作者,使用搜狗输入法的人;

  • Photoshop:Photoshop & AIR,各种外挂滤镜、笔刷、纹理、样式、形状、扩展程序等,使用Photoshop的设计师;

  • 等等

而且可以注意到,上面这些系统也都可以归属于更高层的系统。比如,jQuery只是JavaScript的一个库,而搜狗输入法不过只是一个软件。

即使这样,那又如何?虽未接触,但不难联想到一些3D、音频、视频编辑软件应该与Photoshop有类似的系统。而很多软件会有主题样式之类的。

这些生态系统也在各自发展、进化,就如同生物界的生态系统一样从低级到高级,从简单到复杂。比如编程语言从机器语言到汇编语言,再到高级语言。再比如JavaScript经过数年的发展到各种库的诞生,再到基于jQuery的Bootstrap,而且Bootstrap又有各种风格的主题。

为什么会这样?和生物生态系统一样,这些发展能够适应所处的环境,不过不是自然环境,这里的环境主要就是指用户,所以要以用户为中心,客户至上。

而且,这些系统想想也挺合理的,不可能期望所有人都是程序员,所有程序员都是优秀的。是的,最终用户只需选择就可以了。