2006年2月9日星期四

我的 Borland 之路

看到 Borland 公司的一篇通告 “Borland to Acquire Software Quality Company, Segue Software; Announces Plan to Divest IDE Product Lines”,其中说道 Borland 准备卖掉他们的 IDE 产品,全力发展他们的 ALM (Application Lifecycle Management) 市场。看来 Delphi 在 Visual Studio 和 Eclipse 的挤压下,最终还是选择了放弃 IDE 这个市场。那么 Delphi, C++ Builder 这些曾经优秀的软件是否将永远离开我们呢?

其实 Borland 并不是没有好软件。记得高中的时候,有一天星期六,我和 Alex 一起去电脑城买 Delphi。当时觉得 API 是一件极为神秘而伟大的东西,而比较熟悉的 VB 在这方面天生不足,强大的 C, C++ 我们又望而生畏。正没个准头时,我突然发现了 Delphi 6。那时我从没用过 Delphi,甚至连 Pascal 都只闻其名。买了一套回来试用,逐渐发现 VCL 库是多么的方便和强大,只需要引用一个头文件,就可以轻松调用 API。这是它让我爱不释手的原因之一。记得那一个学期,就靠每天中午本该睡午觉的时候,我就偷偷起来编程序,最后做出了算是我第一个比较完整的程序 Animations' (这个名字至今仍被 Alex 嘲笑,他认为这是世上最好的媒体播放软件)。无论如何,通过 Delphi,我认识了什么是 API,什么是传出传入变量,什么是 Pascal 和 Object Pascal,什么是自建控件,当然,还有 procedure 这个词。在那个时候,我颇为我的 Delphi 可能比 Alex 操得熟而自豪。

就现在为止,我仍然认为 Pascal 是一门非常严谨的语言。在我学习了编译原理以后,我越来越对它有所了解和理解,也发现了它作为传统编程语言教学范例的原因。确实,它的语言特点比 C, VB 等等静态语言更符合编译过程的需要,单就变量声明来说,var 的使用,变量-类型的顺序,所有变量声明的位置集中,这些都为编译器提供了准确和便利。我没有具体研究 Pascal 每一条产生式,但是我想,要在里面找到具有二义的文法应该是不可能的。但是可能正是这些本来优秀的特性导致了 Pascal 本身的不足。Pascal 产生的原因就是为了教学目的,似乎 Pascal 天生就不善应酬越来越多的对灵活性要求越来越大的场合。C 不同,C 生来就是杀手,就是为了写出更好更灵活的程序而诞生的。我想这就是为什么 C 语言 30 余年来还大行其道,而 Pascal 始终未能登入大雅之堂的原因吧。

在我印象中,Delphi 7 和 Delphi 6 似乎没有什么不同,即使在界面上,除了 Splash 外,也几乎完全一样 (这在微软的产品中几乎是不可能出现的,是不允许出现的:))。好像在数据库方面有所加强,不过我承认那时候我对数据库的认识也仅限于 Access。很遗憾,大家都说用 Delphi 不用它的数据库组建就想去了雅典不去太阳神庙一样,我就是这么一个人。

C# 出来了。这个带有 C 字样的语言立刻吸引了我,因为我一直对 C 语言抱有敬畏,即希望接近它,有怕被它拒绝。以前多次的尝试的失败这次在 C# 面前没有出现,原因是,我发现 C# 中有很多东西是在 Object Pascal 里面见过的。比起 VB 来说,Pascal 当然更接近 C 语言范畴,应该说,Pascal 作为了我接触 C 类语言的跳板。直到后来,我认真捧起 《C Primer Plus》,发现 C# 和 C 也异曲同工时,我才算真正学会了神秘的 C 语言。无疑的,没有 Delphi,我没那么容易能走到今天这步,所以我一直对 Delphi 抱有好感。

Delphi 8 无疑令人遗憾。我认为我没有多少权力来评价它,因为我使用它的时间总共不到 2 个小时。从界面上说,Delphi 8 有了很大改变,这让每一个 Delphi 的忠实玩家不得不花点时间来熟悉和自定义。从内容上说,感觉 Delphi 8 是一个 .NET + VCL 的……说好听点,混合体;说难听点,杂种。没有了 Object Pascal,我实在找不到以往使用 Delphi 的感觉。有了 .NET,我又实在找不到我放弃 VS2003 而转投 Delphi 8 的理由。Delphi 8 真的称得上“迈入 .NET 平台的最佳利器,将带给您无穷的潜力与展望。”吗?我觉得设一个投票,看看到底有多少人是从 Delphi 认识 .NET,这最能说明问题。

从那个时候起,Delphi 再也不是不可替代的了,因为它走了 .NET 的道路,这是微软的道路。在 .NET 领域,相信更多的人会选择 .NET 创立者门下拜师,Borland 又扮演了什么样的角色呢?我想,如果微软比作少林寺,那么 Borland 就是少林寺俗家弟子。他不会没有门徒,但绝对没法修得最高深的武功。别人 Microsoft 秘不示人的功夫可是有名的呢!直道现在的 Delphi 2005, Delphi 2006,我都没有再试用过了,看着那成 G 的 ISO,真是怀念当年 1 张 CD 打遍天下的时候啊。

说完 Delphi,在来说说,JBuilder。C++ Builder 我没用过,因为我接触 C 语言比较晚,而 Java,那我就是被逼着学的了。大二分布式的课,老师要求用 Java 写程序。我首先试了那时已经赫赫有名的 Eclipse,发觉和 Dev-C++ 有相同的毛病:调试。不知道那个调试器怎么回事,总是出现意想不到的结果,调个程序跟上战场似的得小心翼翼。没办法,只得再试试 JBuilder。JBuilder 2005 让我比较满意,至少在调试方面我感觉没什么压力。因为我对 Java 仍然持保留态度,所以没对 JBuilder 2005 进行更多的探索。不过有两点很令人不爽:1) 运行个程序还得先手动创建一个 Profile,难道就没有默认的提供选择吗?2) 用 Java 做窗口做界面,其过程似乎还停留在 Pre-VB 时代。这应该是 Java 本身的不足,看来 Java 对 EJB 这类不需要 GUI 的东西更感兴趣。巧的是,这两点微软都做得很好,看来我中微软的毒不浅哪。(我在想,Eclipse 不也是 Java 写的么?它的界面怎么这么漂亮?)

现在,Borland 要卖掉 IDE 了。如果 Delphi 以后消失了,Borland 不再是现在的 Borland 了,又还会有多少人记住这些名字,又能记住多久呢?

没有评论: