GORM - desktop开发的新选择

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编程了,都会发自内心的长舒一口气.

发表评论

Recent Posts:

Recent Comments:

Archive:

Tags:

Bookmarks:

My music:

About Me:

I am a software engineer in Beijing, China. I write code for work and for fun. I am interested in web technology, life hacking and console games. This blog is dumped from my left brain.
View Robin Lu's profile on LinkedIn

My Flickr:

    scribbleAt Modern Sky Music FestivalIMG_0389IMG_0312urumqi panaramaIMG_9664

Friends: