« February 2008 | Main | May 2008 »

March 10, 2008

从SOA说开去

余晟昨天跟我讨论SOA问题。我说了说自己的观点。后来想想,应该整理一下。于是就有了这个blog。关于SOA是什么,请自行google,不多说SOA。

首先值得肯定,SOA试图解决的问题是正确的。SOA所关注的问题,是确实存在的。其实说穿了,所有的开发方法,项目管理方法,框架,工具,无非都是为了解决这些问题。抽象点概括出来不过就是可扩展,易维护,稳定性高,可复用这么几种而已。

所以说,SOA所希望解决的问题,说回根本上还是这些,其实这是废话,因为计算机诞生起,人们就在为了解决这些问题不懈努力着。不错,SOA是一种尝试,但是在众多厂商的推波助澜之下,这种尝试变的有点吓人,看起来似乎不再是一种尝试,而是解决问题的银弹。这当然是不对的。

使用计算机,最终还是为了解决现实世界中的问题。而用计算机,需要用计算机世界的逻辑。这个工具的逻辑和要解决的问题域模型非常不吻合。所以试图在计算机中模拟真实世界,就成了一个难题。(题外话,所谓面向对象,其实可以看作人们试图在计算机世界中重现现实世界的一种努力)。因为这种思维转换的难度,使得程序设计变成了一门专门学科。回想历史,只能写机器码的时候,人们利用计算机解决的是需要快速获得运算结果的大数据量运算的问题,比如导弹的飞行轨迹之类。现在需要解决的问题种类就很多了,运算量也越来越大,当然需要更好的工具。

这是一个有趣的循环,有了更好的工具,就可以解决更复杂的问题,而更复杂的问题又让更好的工具变的束手无策。想想你在写程序中遇到的困难,有多少是问题本身的困难?有多少是写程序这件事本身的困难?换句话说,写程序本身在某些情况下变的比要解决的问题更加困难。这里余晟概括说:好像你会写文章,但是不会用某支笔写字。

我们来看看语言的抽象层次。从机器码,到C语言,到更高级的语言,到动态语言,从底到顶,语言越低级,越接近计算机世界,越高级,越接近于现实世界。我常常说,C很好,不过只适合写系统级别的东西,不适合写应用。一样是因为这个原因。C是对计算机系统的最小抽象,所以用来描述系统级别的问题很轻松,但是用来描述现实世界的问题就很吃力,好比用笔画来写字没问题,不过只用笔画来写文章,那就累人了。

当然,理论上任何语言都是一样的。你当然可以用C来做网站。不过因为模型的不符合,这会让你付出更多的时间和钱,还有失败率。

SOA试图通过一系列的描述来解决接口混乱和扩展困难的问题。同样的情况发生在webservice上过,发生在ejb上过。同样的厂商喧嚣也同样在webservice和ejb上出现过。(甚至,厂商们还往往在试图让ejb标准变的更加难用而不是更加容易)与其引入更复杂的问题,不如让工具本身更富有表现力。这是我近年推崇动态语言的原因。语言够简单了,阅读就容易多了。想像一下,一个python写的程序和一个汇编写的程序,哪个更好懂,更好修改?

我认为,目前的程序设计,只要解决了3个问题,就可以让很多普通用户进行开发,解决自己的实际问题了。这3个问题是:数据类型和函数,内存管理,进程管理。可以说,这3个问题都是目前计算机语言中和现实世界的经验最不符合的,所以导致了理解困难,没经过一定训练的用户难以完成这个思维转换。

SOA试图让接口描述和数据统一,这种统一的办法是xml。而如果开发足够容易,代码本身比那一堆包含无数规则的xml描述更富有逻辑和表现力,更容易看懂,这时候,还有人想去看xml吗?

这就好比开自动挡的车,你只要关心路线和目标,操作本身可以不用那么关注。你要完成的任务是解决问题,而不是为了学习SOA。

因此,了解SOA的思想,并应用于实际开发。但是,最好别被那堆规范吓倒。要知道,SOA的思想和SOA绝对是两回事。

March 6, 2008

德国式的幽默

我一直觉得德国人是平时严肃,但是幽默感一旦爆发简直寒死人的那类型。今天看一堆德国人的source的readme的时候发生以下恶搞事件。草译如下:

先看README
xxxx:~/download/pvpgn-1.8.2$ cat README

CONGRATULATIONS!!!!
祝贺!!!!

WHY ?? BECAUSE YOU ARE ONE OF THE VERY VERY VERY FEW WHO READ THE README FILE!!
为什么 ?? 因为你是非常非常非常少数的会去阅读README文件的人之一。

But because the other, huge percentage do NOT, we moved the actual contents
of this file into IGNOREME file because the chances for most of the people to
read IGNOREME are at least the chances to read README (more than that, we
believe they are really much higher).
但是,因为大部分人根本不听这一套,我们就把这个文件中应该有的内容挪到IGNOREME文件里面了。估计大部分人读IGNOREME文件的机会怎么也比读README大。
So now, go read IGNOREME with the actual contents what you would have
expected here.
所以,这没有你期望的内容,读IGNOREME去吧。

然后看看IGNORME

xxxx:~/download/pvpgn-1.8.2$ head IGNOREME
NOTE: we believe that most people are more likely to read IGNOREME file than
the README file so we moved the actual contents of README into this file. We
hope that this will improve the quality of questions on support channels.
注意:我们认为大部分人更愿意读IGNOREME,不读README,所以我们把README里面的内容都挪到这了。希望这能让我们支持栏目的问题质量提高点。

March 3, 2008

说总是比做容易

麦田的蚂蚁又一次上线了。说又一次,是因为这已经是第三次大改版了。

麦田是如此的受争议,以至于每次做点什么说的什么都是毁誉参半。

这当然不是什么大问题,不过我还是觉得,说总是比做容易。

2005-2006,正是中国所谓的web2.0活跃期,这期间听到了太多的模式,话语,价值判断。终于到了2008,回头看看,说话的人还在说,做事的人还在做。2年过来,我们明白了世界是做事的人创造的,而不是评论家们创造的,当然,世界也是需要评论家的。不过如果只有评论家,那么....

创业是困难的,我之前在某篇blog说过,到了某个年龄,有了某些经验,去找个能养活一家老小,看起来也光鲜的工作很容易。选创业反而难上很多。我是佩服所有创业的人,除了没安好心,耍流氓,坑蒙拐骗的,其他的创业者或者贡献产品,或是贡献体验,或是贡献经验,最糟糕的那怕项目死掉了,也让后来者有了个方向。所以应该多给点掌声,多来点批评,但是少点谩骂。

同时,所有投资人都是伟大的。当我们真正开始创业,才真的明白了“投资人并不仅仅给你带来钱”。毕竟,那是人家辛苦赚来的钱,人家信任你,让你花,让你做失败率很高的事。这是对你多大的信任,不好好做事,行吗?

所以说,虽然麦田折腾来折腾去,一会像论坛,一会像facebook,我还是觉得蚂蚁还不错,花钱在技术和产品上,哪怕来回折腾,也比做公关做市场烧掉好。

顺便做个广告给我自己:我们专门解决搜索问题。我希望我们不仅仅是做一桩生意,还能给其他创业者带来方便,甚至创造价值。

还是标题这句话,说永远比做容易。所以,多做事,多做有用的事,少说废话。

about me:
me.jpg
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2