软件突变:预言缺少的一环(1)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:40:19
突变:预言缺少的一环(1)  (790个读者)
原作者: John Milan    译者:sinceresi...    发表时间:08/07/2007   原文链接
http://www.yeeyan.com/articles/view/3695/1259
显示原文
这个系列有两篇文章,这是第一部分。
明天的软件会是什么样?它们将会有四大要素:互联网,开源,可移动设备和Web2.0。每个要素的是非都存在争议,但作为整体,它们塑造了未来的成功的应用软件的基因蓝图--从现在开始。
最近我很关注进化和全球变暖,但是今天我们要探索这些宏大的事件预示着什么:突变。我们原始的软件领域的大人物(leviathans)正忙着勾画他们的下一代解决方案。但是虽然到目前为止规模是很有利的因素,四个主要的事件已经引发一连串不可逆转的事件。在新的环境中,灵活性将再次被重视,而规模将成为劣势。实际上,良善之人的将继承的世界又多了一个缺陷(the meek have just gotten another crack at inheriting the earth.这一句很难译,原文来自于圣经“Blessed are the meek: for they shall inherit the earth”,被作者用在此我觉得纯属拽文)。
互联网是一个释放无限可能的彗星撞击;开源是一股清新空气;移动设备开创了从桌面电脑的迁徙;Web2.0是的所有一切更加人性。我们可以辨析它们的价值--互联网是个巨变,而Web2.0更像是天气变化--但作为一个整体,它们将塑造未来的成功的应用软件的基因蓝图,从现在开始。
互联网
互联网融入我们的日常生活已经到了怎么样的程度?曾经我的亲戚们问我--一个“玩电脑的人”(computer guy)--怎样给他们的微软word文档排版, 现在他们在线购买电脑并连入宽带网。我曾经很有前途的家庭电脑技术支持工作现在正式的被废除了。
每个人都知道互联网的优点,甚至可以纠正溢美之词。结合上述的宽带连接,互联网达到了这样一种状况:无处不在,可靠,更重要的是,被视为理所当然。建立一个连接所有家庭的稳定的电网系统需要很多年,让扳动电灯开关的新鲜感消失需要更多年头。终于,当墙上的电源很可靠时,我们开始拥有很酷的东西,比如说收音机和电视。最后出现的是那些不可缺少的电冰箱,吸尘器,洗衣机等日常电器。
互联网已经建立起来了,人们也早就经历过网站所带来的新鲜感,我们现在有iTunes(苹果在线音乐商店)和YouTube(在线视频网站)。现在是产生真正重要的东西的时候了。我们需要多等一会才知道一个互联网驱动的吸尘器是什么样的,或者它是怎样运行的,但我们知道它跟互联网是密不可分的。
保护树木,在线购物
除了每季度推进我们办公室的大量的微软系列软件包,我记不得我上一次购买的盒装软件是什么。同样,自从我拥有了iPod,我的CD都变得满是灰尘,并且我上次购买CD的那家店已经关门了。你想不到的是,我的软件公司从来不用考虑包装的事,至少是那种需要木材的纸质包装。
一切都是在线。如果明天网络崩溃了并且故障持续了一个月,或者长到足够使人们重新认识到物理媒介的重要性,我们很可能破产。网络崩溃对译言YEEYAN也不一定有利。 实际上,我们的竞争对手所要做的就是摧毁网络。
也就是说,曾经只有网络应用软件才把它们事业存活的赌注押在互联网上,但是,现在这种风险只比把赌注押在电网上高一点点。那些曾经依靠物理媒介(出版物及软件公司)或是现实和网络都涉及的实体,都正在转向纯粹的在线领域。这对那些想要获得几百万美元印刷机投资的报纸来说是个困难的骤变。但如果你只是写日志,编软件,做医学笔录,制作音乐或导演电影,那么你只需要一个东西去运送你的产品:一根宽带。
无处不在,可靠并且易用。现在我们需要互联网哲学。
开源
提到开源,第一个浮现在脑中就是Linux,公共的代码和年轻的理想主义者。软件巨头的基层竞争者是不可抵挡的;从知识产权的外衣中剥去不符自然的法则的确很大胆;谁会不喜欢年轻的理想主义者呢?但是尽管开源哲学已经做了很多有意义的工作,但它还没完成它真正的内在需求。的确,一个年轻的乖戾之人没有善心,一个年老的理想主义者没有头脑。给开源代码一个合法手段是很好的,不过更重要的是把开源理念应用到数据上。
事实上,我只想说(如果有机会的话)我更希望数据能够被公开而不是代码。代码可以,经常也应该,被一次又一次的重写,重构,但是只有合适的数据才能使系统运转。当我们,以及我们的计算设备,互相联系的越来越紧密,我的日程安排软件的代码是开源还是的私有的变得越来越不重要;使用微软的或是Apache的互联网服务器,由.NET(微软最新的开发平台)或X.org(提供Xwindow系统的开源应用软件,是freedesktop.org社区的一部分,他们最著名的桌面系统是Xdesktops,GNOME和KDE)的界面进行显示。真正重要的是我的日程数据是不是符合(譬如说)iCalendar 格式。当数据的重要性明确以后,应用软件的来源,是开源的还是私有的,都无关紧要了。
一切都是数据
Jeff Atwood最近指责Joel Spolsky失去了吸引力(jump the shark,详细)。尽管在那个帖子里有一些可疑的地方,但实际上Joel提到了很多文章外的东西--其中有一点跟我产生了共鸣,那就是Excel可以读写Lotus123数据文件是Excel成功的关键(tipping point)。(这里陈述一下背景,当微软开发出Excel是, Lotus123几乎占据电子表格软件的全部市场,但Excel成功的打败Lotus123占据市场,其中主要一条就是兼容Lotus123数据文件)
最直接的目标是移除障碍,这些都阻碍你从竞争对手那赢得市场份额的。但实际的意义更大:如果所有的电子表格软件都可以读写任何其他同类软件的数据文件,那么我们就可以通过它们的实际表现来评价它们,而不是它们的用户群有多大。公司必须不断的提高它们的产品,而不是一直吃老本,设置种种障碍。你可以选择吃什么,去哪里购物,开什么样的车。难道我们不应该更灵活的选择我们的电子表格软件,日程软件和视频会议么?你买的软件代码并不是你的--仅仅是借给你使用。但你的数据完全是你的;由你自己创建,编辑和存档。
市场,市场
开源获得了很多优秀程序员的关注和时间投入;也因此向世界展示了什么是可以完成的。但开源运动需要很多市场营销人员的关注和时间,需要营销人员去解释这个运动的重要意义。典型的工程方式把营销作为事后的辅助。但如果把投入写操作系统的精力用来推行数据标准,那些理想主义者应该会离他们的理想更接近。
说实话,尽管过分乐观的非商业的开源模式仅仅是过去。今天那些最显著的开源项目--Linux(操作系统),Apache(服务器)和Mozilla(浏览器)--背后都有巨头的支持(IBM和Google)。你认为Firefox(Monzilla浏览器)营销得这么好仅仅是偶然么?激励支持者关注结果需要些比梦想更切实的东西。需要一个新的催化剂。
移动设备
移动设备的销售超过个人电脑很久后才得到人们的关注。结果是什么?个人电脑是一个由复杂软件驱动的通用设备,差不多可以做任何事情, 然而移动设备是用来运行简单软件--结合一个明确的配置(form factor),可以很好的完成一些功能。
当前的台式机,甚至笔记本,与类固醇过度的运动员更相像,而不是一个整洁的计算设备。我上文提过的我亲戚刚买的电脑,有250G的硬盘。那得需要很多小孩子的照片才能把那块硬盘填满。实际上,如果每星期存入100张100k的相片,孩子们要到480岁才能使奶奶的硬盘存满。
绿色计算
移动设备的计算能力并不是很强。它们必须经过严格的测试变得轻巧,小到足够放到你的口袋,小到显得造型别致。的确,单一功能的移动设备像iPod也拥有大硬盘--但程序员还想要无线网络连接,更多的小工具,以及开发平台。这跟早期的桌面计算很相似,当时人们使用的内存最大才640k。因为运行在台式机和笔记本上的数据量太大了,它们不能运行在移动设备上。
移动设备所要做的就是仅仅处理需要的数据。也就是说,你不需要全部的数据库(dataset),如果你有独特的标识,每一部分都可以正确的运行。这不仅使数据更便于移动,也可以使改进和限定数据交互更容易。
醒来并感受数据
回到iCalendar的例子,我们可以想象一个圆形的头上有两个铃的支持WiMax无线宽带的报时移动设备--我们叫它iAlarmClock。虽然完整的说明书规定了ICalendar对所有的日期有关的事件都管用,我们最关心的只是:闹铃什么时候会响? 一个合适的,格式良好的iCalendar条目可能包括4页UML那么多的信息。我们的IAlarmClock仅需要第四页的信息--闹钟零件属性。更好的是,如果我使用手动控制--后边的圆形旋钮--来调整闹钟时间,那么iCalendar源文件的条目,以及任何依赖该源文件的设备,都应该自动更新那段数据。这样的话,不管我在哪,我所有的iAlarmClock都会允许我睡懒觉。
我们程序员应该习惯使用一部分而不是全部数据。有时候没有所有的数据也没有关系,我们只需要于我们手头工作相关的那部分。我们的目标不是完整数据,而是有用的数据--足够运行闹钟,电冰箱,吸尘器和洗衣机这样的普通机器就可以了。