作者tka (tka)
看板Ruby
标题Re: [闲聊] 关於Ruby的GUI Toolkit/Bindings
时间Sun Feb 6 20:21:29 2011
补充一下我的跨平台(linux, osx, windows)经验
有错的话, 还麻烦指正D一下
: FXRuby: 有书(+1)
: 好装(+2,gem install FXRuby,
: 有mingw32的binary可直接用,免再装其他东西。
: 对新使用者应该比较方便)
: 文件(+1,不错的官方API参考文件)
没使用过, 忘记当初为什麽完全没测试他
: Shoes: 简单(+1,那个语法真的异常简单...)
: 好装(+2,Binary直接有,还可以把自己的东西打包给没装Shoes的平台直接用)
没有与系统整合的部份, 例如 system tray, 觉得他是自己独立一个环境
: Ruby/GTK+2: 好懂(+2,语法好懂,很自然)
: Ruby-GNOME 好装(+1,拿到Binary包加入path後到gem install gtk2就可用)
: 文件(-1,他的官方Wiki活跃率很低,而且英文版常常500 error....)
上述两者在osx候需要 X11, 而且一般用 osx 的人不会有 gtk 环境
linux 下面binding的完成度比 python 差很多(ex. webkit元件)
: wxRuby: 威(+1)
: 好装(+1,各个平台上的对应装机物很完整)
: 文件(+1,官方参考不错详细)
: 语法(-1,恐怖....)
ubuntu 10.10 上面我没法建立 wxRuby (osx, windows 未测)
: qtRuby: 有书(+1)
: 好装?(0,他的gem binary限定win32平台,居然没办法在win x64装...)
: 所以下面没有了orz||)
qt library 颇肥大, LGPL版本要2百多mb
osx 下面 qt4-ruby 我找不到可以编译成功的方法( 测试了binrary, macport, homebrew的版本都不行)
: Tk: 泛用(+1,另前年迈入8.5後介面有改善了,没有像8.4这麽恐怖)
: 好装?(0,在Win下需要编译,不过dll应该是可以给ocra或rubyscript2exe带着跑。
: 另Linux对於这个应该大多有内建了,比较没问题。
: Win下的gem版本Tk有tk_as_gen和ffi-tk,
: 後者有些时候没办法完全等於tk,前者....准备编译环境很麻烦orz)
对他的印象就是介面糟糕, 所以完全没测试
结论要选哪一套呢?
结果最後我选了 jruby + swt + rawr
优点 java 能做的都能做,
跨平台支援还算不错(还是要写一点特例就是了)
能打包成 .exe, 或是 .app 档案, windows 上没装 java 时会导引使用者下载安装
缺点 启动缓慢
系统资源用量大
swt library 三种平台 + 32&64bit = 可能会需要包出 6 种package
传说以後 osx 上面可能会没有内建 java 了?
有兴趣的人可以抓
https://github.com/tka/jruby-rawr-swt-helloworld 下来玩看看
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.155.163.82
※ 编辑: tka 来自: 124.155.163.82 (02/06 20:21)
1F:→ myua7:qt真的肥到很靠杯 02/06 20:25
2F:→ myua7:java的问题应该不用担新,死透的话会被骂爆 02/06 20:25
3F:→ myua7: 心 02/06 20:25
4F:推 myua7:话说我很讨厌的桌面环境-KDE就是Qt的产物(掩嘴笑 02/06 20:28
5F:→ myua7:哦对了,tk_as_gem我刚刚正确装完还是没办法require.... 02/06 20:29
6F:推 myua7: 而且他编译久到我快睡着了.. 02/06 20:34
7F:→ myua7:非官方的doc说开发环境要Tk就要用compile的方式弄Ruby环境囧 02/06 20:36
8F:→ tka:其实只要是跨平台, 原生种UI, 方便散布安装, 我应该都可以接受 02/06 20:41
9F:推 myua7:方便散布安装是我的重点,不然别人看到安装手续就不想玩了。 02/06 20:43
10F:→ myua7:跨平台现在只要有跨几乎都有御三家了,虽然还是有少数.. 02/06 20:43
11F:→ myua7:JVM真的异常方便 02/06 20:43
12F:→ myua7:虽然资源一吃经常就100M起跳不过确实方便不少 02/06 20:44
13F:→ tka:用 jruby 还有一个好处是使用者不需要知道 ruby 的存在 02/06 20:48
14F:→ tka:打包出来的程式是独立运作的, 所以也不会被系统的library干扰 02/06 20:49
15F:推 myua7:绑着j的implement都是利用JVM能读的bytecode 02/06 21:00
16F:推 myua7:哦对了,Tk我刚才照着非官方doc去compile Ruby环境就正常了 02/06 22:01
17F:推 myua7:话说Tk的语法写起来有点像Swing,好累人.... 02/06 22:20