星期日, 十月 30, 2005

编程语言

统计Sourceforge上各种语言的使用频率是很有意思的事情,当前的结果是:
C (15734 projects)
C# (2806 projects)
C++ (16510 projects)
Delphi/Kylix (1904 projects)
Java (16426 projects)
Perl (6147 projects)
PHP (11938 projects)
Python (4438 projects)
Tcl (907 projects)

可以看出:
1) Java的期望很高,并且Java也取得了一定的成功,但距离期望尚有一段距离。
2) Perl,Python,Tcl这些脚本语言使用非常广泛,进一步看,实际上这些脚本语言大都是和C/C++配合使用的.
3) Delphi已经没落
4) PHP取得这么广泛的应用(并且相当成功),多半要归功于它在WEB开发的优势以及它与MySql,Apache的紧密关联。
5) C#看起来还不错。

Java SWT

上一篇没有提到Java的界面库,是因为我一直不了解Java。但是看过Eclipse这个极为成功的应用之后,相信Java一定也可以在桌面级应用占据一席之地,这其中GUI部分由SWT承担(不是AWT)
除了Eclipse之外,看看rssowl等这些应用,我想SWT一定会越来越流行的。

另外,和RSSOWL一样用来阅读RSS的RSS Bandit更为成功,它是用C#来编写的,需要.net framework才能运行。

星期三, 十月 05, 2005

跨平台的GUI编程

跨平台的程序已经很常见,对于程序员来说,跨平台的GUI程序必然涉及“GUI库”的选择,GUI库提供跨平台的GUI编程平台,我感觉最成功的跨平台的 "GUI库"应该是WEB(HTML+CSS+CGI),得到了非常广泛的应用(估计连发明者也没有想到),但是对于设计桌面软件,WEB就不太合适了,有那些库可以用?

Qt
GTK+
wxWidgets
FLTK

最近使用了一个跨Mac和Windows的软件,Konfabulator(Konfabulator已经被Yahoo收购了),在桌面上展示非常丰富的 Widget应用,看了它的编程接口,和GDS(Google Desktop Sidebar)终于不同了,我非常喜欢它的底层技术,唯一遗憾的是没有跨Linux:

基于XML的UI设计
基于JavaScript的编程
通用的“属性”(Preferences)设计


拿它和GDS对比,作为一个程序员,我一定会选择Konfabulator,忘掉COM吧。

参考:
http://www.linuxfocus.org/ChineseGB/October2004/article350.shtml