太阳是黑色的

少年听雨歌楼上,红烛昏罗帐.壮年听雨客舟中,江阔云低断雁叫西风. 而今听雨僧庐下,鬓已星星也! 悲欢离合总无情,一任阶前点滴到天明.

Archive for 9 6 月, 2008

实习感言(二)

上周就实习的初步印象抛出了一些感性认识,其实后来我仔细思考以后,还是发现了一些深层的东西。

就整个开发流程和工具来看,公司还停留在上个世纪70-80年代的思路。当然,有人对这种满屏字符,只用VIM、Emacs的方式推崇至极。然而就效率性而言,我还是看不到这样做的意义。有一个强大的集成开发环境已经是80年代以来大多数语言开发能否普及与否的共识。比方说,因为代码深处某个地方的拼写错误,在集成环境下可以不费任何力气找出,而纯文本环境,也许就是一上午的时间。这一点和是不是熟练的开发者关系不大,因为代码量上去以后,再熟悉的人也需要合理的工具。

公司的环境和语言虽然落后,但是我却深深感到了这种方式对于公司发展的合理性。一个能够生存30年的公司,技术的稳定性是最重要的。在早年的时候,关系数据库还没有成形,SQL的国际标准还没有制订,Java还要等上十多年才被发明,一切当然只能自己做。那么现在呢?那天,我带着同样的疑问问了公司的老板,SQL那么成功,公司的数据库软件居然不原生支持,让我有一些不可理解。然而,老板却说了这么一句话:SQL的标准形成才10年,Java也不过流行了10多年,我们有30年的历史,在这30年里,流行的东西来来去去,而我们的技术却稳定了下来

这是一句实话。20年前,最红火的语言和开发平台现在已经无人知晓。谁能保证Java的未来和SQL的未来呢?30年,技术变换风云,唯有客户的需求是永恒的。满足客户的需求是最关键的业务。而要随时都能够去满足客户的需求,技术的稳定性就尤为重要。所谓稳定性就是说,版本的升级、功能的加入要非常平滑。不能上一个版本是C++,下一个版本是Java,然后又想换Python。这其实没有意义。换技术需要成本,况且在实际开发中,特别是已经积累了大量代码的软件公司眼里,语言,的的确确不是最重要的东西。

尽管开发环境丑陋,但是产品只要能够达到客户需求,产品只要能够延续,就是胜利。这一点,我们国内的开发者通常看不清楚,经常爱陷入各种技术平台的论战,而忽略了讨论需求本身。

于是,公司使用一个完全不支持对象的开发语言从1970年代直到现在。所有的产品都能够非常完美的衔接。这不得不说是一个奇迹。

—————————————————————————–

然而,我还是很不理解Linux下开发的一些“习惯”。因为要配置某个运行环境,我的一位同事在我的机器上满屏幕字符的飞快配置了足足4个小时!Emacs和Shell屏幕交相辉映,快捷键用得我眼花缭乱。但是,我一方面佩服这位仁兄的技术水平,另一方面,我着实不明白那么多配置文件和脚本的是为了什么。说到易用性,我不得不佩服微软。在微软的平台下开发程序真的是享受,用过Visual Studio的人,很难认同缺乏那么多功能的开发环境。