开放API时代,把心思放在应用上

孟岩

这两天最引人关注的IT新闻毫无疑问就是微软的撤单。不管怎么说,微软收购雅虎如果最终失败,是一件令人遗憾的事情,这意味着互联网产业的基本格局短期内不会有大的变化,微软短期内也不会有大的变化。尽管购并成功会给微软带来文化整合等一系列新的挑战和风险,但是我还是认为,在互联网生态系统即将发生重大变化的前夕,不变是更大的风险。

互联网技术领域永远都在同时发生着多项变化。就拿眼前来说,至少有下面这么几件事情值得我们技术人员关注:PHP、Ruby on Rails和Python等脚本语言在服务端的崛起,REST体系结构的走红,Flex/Silverlight等第二代RIA技术的成长,虚拟机技术在服务器领域的应用,3D互联网等等。但是毫无疑问,最引人瞩目的变化还是以大型互联网社区开放API,因为这件事情具有改写整个互联网游戏规则的力量。

两个月前我们去硅谷出差的时候,造访了总部位于旧金山市区的Slide.com。这家成立于2005年的公司围绕MySpace、Facebook等大型社区网站开发图片应用,其中FunWall是Facebook上的第一大应用,在一年多的时间里成为月访问量1.44亿,拥有1500万会员,广告收益丰厚的巨大社区。而他们看上去仍然只是一个仅有100多名雇员,几十台服务器,和用着Python轻松编程的敏捷公司。在那里我看到一个跟以往完全不同的模式,你不需要巨大的市场宣传投入,不需要从零开始一点点构建服务器集群,整天挖空心思想着还要增加什么新功能新栏目,几万几万地积累会员,还要呕心沥血地管理他们,你只需要有一个好的想法,形成一个应用,就可以借助SNS网站的开放API在很短时间内获得大量的用户,并且带来可观的广告收入。

我认为这种新的模式具有巨大的能量,可以彻底改变互联网社区的思路和想法。一部分人专心专意把基础服务做好,并且开放出来,另一部分人专心专意理解用户的需求,把应用做得尽可能贴心,这个总体来讲是符合分工原则的,是好的变化,但也是对所有人的挑战。做社区的人不用挖空心思琢磨如何开发好的产品来吸引最终用户了,但是却得把平台做好,把API设计好,而且要想方设法吸引开发者来参与应用开发,否则很难生存下去。而有应用想法的开发者则不用拉出一条长长的战线,去关心诸如服务器系统配置和数据库调优等劳什子问题了。

好消息是,大多数开发者无疑是属于应用开发者的,对他们来说,所需要掌握的技术会逐渐收敛,不需要像过去一样什么都要会一点。坏消息是,你要对应用有更好的理解和把握,这一点会变得比技术更重要。说老实话,我认为这对大多数中国的开发者来说是个巨大的挑战。

中国开发者的一个大的特点就是对技术痴迷的同时不食人间烟火,整天津津乐道的就是那些算法、数据结构、设计模式、语言技巧、技术规范,对于普通老百姓关心的东西一概没有兴趣。我们中的大部分人对于时尚、化妆品、小资情调嗤之以鼻,对于电影、音乐、艺术、美食一知半解,对于地产、金融、法律知识一窍不通,对于一个普通老百姓市场生活中所能遇到的困难和问题,所追求的那一点享受和乐趣不闻不问,既不愿意亲身实践,更在主观心态上予以拒斥。策划产品的时候全凭感觉,结果呢,做出来的东西千篇一律,看上去什么都有,一用起来处处不贴心。究其根源,就在于我们太专业,把太多的时间用来围着电脑转,根本上缺少对于生活和需求的深刻体察,对于人的关怀。在企业软件领域,我们把这种情况称之为“不了解业务”,现在整个企业软件领域都在寻找“懂技术,通业务”的复合型人才,殊不知在大众软件和公众互联网领域,这种情况同样严重。我就经常感觉,就算是MP3播放器、电子书、网络论坛这样最最平常的应用,一旦加上具体应用背景,放在具体场合下,就有很多地方显得不方便,不贴心。这正是上述问题的一个体现。

随着Facebook和Google、MySpace为首的OpenSocial联盟在OpenAPI领域的快速进展,我相信我上面所描述的互联网新格局不需要很长时间就可以到来,同时,国内外的大型社区也一定会尽快地开发自己的API,争夺数量有限的应用开发者。这种局面形成之后,对普通应用开发者来说,一个新的机会窗口就会打开,我们会看到一批新的成功者。这一代人应当与以前是不同的,他们应当深刻地理解人的需求,设计出真正贴心好用的应用,而不单是靠技术去做一些想当然的平庸应用。


>国内外的大型社区也一定会尽快地开发自己的API,争夺数量有限的应用开发者。
本站论坛JiveJdon3早就以框架API开源形式开创国内程序员开发Jdon.com的局面,最近由南京葛道友开发的站内消息系统即将上线。

>天津津乐道的就是那些算法、数据结构、设计模式、语言技巧、技术规范,对于普通老百姓关心的东西一概没有兴趣。
我们在讨论设计模式 DDD一直强调场景和应用条件,没有定律和规律,必须根据需求也就是老百姓关心的具体东西来确定,这些都是正确的方法论,反而算法、数据结构才是与普通老百姓关心的东西脱离的。
从这个观点来看,两个可能:
1.作者属于传统算法教育培养背景,并且不懂OO,所以才认为设计模式和算法等同。
2.作者叶公好龙,到国外走了一趟,感官刺激了,思想没变。

把心思放在应用上观点是正确的,但是如果我们不掌握一套科学的方法,使用朴素的义和团式的热情,最好累垮的还是我们程序员自己,还是那句话:磨刀不误砍柴功,方法对了,事半功倍,没有方法蛮干,事倍功半。不掌握oo模式/DDD就属于蛮干,国外能够那么多程序员轻松参与大型社区的API开发,我想,如果他们也是采取国内程序员这种小米加步枪的方式,肯定连自己吃饭都吃不饱,整体忙于生计,哪来事半功倍参与自己感兴趣的活动呢?

所以,与其临渊羡鱼,不如退而结网,狠狠掌握不课设计模式/OO思想等基本功,而不是看别人用Python搞得热火朝天,以为外国程序员奉献精神就高于中国程序员,没有从现象看到本质,忘记Python根本是OO语言。这样出国是白出了,出国报告也是纸上谈兵了。


[该贴被banq于2008-06-10 10:55修改过]

>>这一代人应当与以前是不同的,他们应当深刻地理解人的需求,设计出真正贴心好用的应用,而不单是靠技术去做一些想当然的平庸应用。
确实是这样啊。做软件必须要靠技术,但是如果想通过做软件走上一条成功的道路,只懂技术还是不行的。


[该贴被xmuzyu于2008-06-11 00:49修改过]