石锅拌饭

GORM – desktop开发的新选择

by Robin Lu on Nov.03, 2005, about , , , ,

GORM 1.0的发布在slashdot引起了不小的争论,原因是发布信息的人给出了这样的评论

with its release, comes the obsolesence of the GNOME and KDE projects

这让一些GNOME和KDE的爱好者很是不忿.
我不敢预言GNUStep的前途会如何,但不管怎么说,他们至少选对了语言.
如果你学了C++,刚好又读了Inside C++ Object Model之类的书,那么GNOME环境下的glib和gtk可能会让你兴奋一阵子.完全用C语言来完成的面向对象编程,可以给你一种low level的快感.继承,多态,RTTI,每一个被其他面向对象编程语言所隐藏的特性都不过是语法糖衣,每一个实现细节都摆在你的眼前.也许你很快就能习惯这种方式,就像很多GNOME社区的geek们一样,对他们来说,用C来OOP没什么,家常便饭.但这并不能掩盖C语言在OOP编程中的弱势.你的类需要使用大量的宏来维护继承关系和动态绑定,你用gdb中断你的程序时会发现50%的call stack都被查找一个消息的传递对象消耗了,你必须把函数名取得老长,就像这样– gtk_entry_completion_set_popup_single_match,因为mangling全靠自己.这种方式很难再保持C语言的高效,同时又增加了程序的复杂度,更给每一个想进入社区参与开发的人设置了一道不低的门槛.
而对于桌面应用,object-c显然更加胜任.在面向对象的一些特性上,它比C++甚至Java都来得更彻底.一些在C++里一些必须通过复杂多重继承来实现的模式,用object-c水到渠成.这里有一篇文章解释了为什么GORM无法用C++来完成.
“use the right tool for the job”.我不能说GNOME错或者对,不过每当我想到我再不用做gtk编程了,都会发自内心的长舒一口气.

:, , , ,

Comments are closed.

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子