我正在考虑创建一个基于GUI的工具,我想要跨平台。我已经解雇了Java,因为我个人不喜欢Swing。我正在考虑使用C#并使用Mono来实现跨平台。但是我想知道像Ruby这样的新型跨平台语言能否为我提供一个不错的GUI开发环境。
答案 0 :(得分:36)
答案简短:否(因为您说跨平台)。
答案很长:跨平台的GUI是一个古老的问题。 Qt,GTK,wxWindows,Java AWT,Java Swing,XUL - 他们都遇到了同样的问题:生成的GUI在每个平台上看起来都不是原生的。更糟糕的是,每个平台的外观都略有不同和,所以即使你能够以某种方式获得在每个平台上看起来都是原生的工具包,你也必须以某种方式将你的应用程序编码为感觉在每个平台上都是原生的。
归结为一个决定:您是否希望最大限度地减少开发工作,并且在每个平台上都有一个看起来不太正常的GUI,或者您想要最大化用户体验?如果您选择第二个选项,则需要为每个平台开发一个通用后端和自定义UI。
对于你的普通后端来说,红宝石不是一个糟糕的选择。答案 1 :(得分:8)
Ruby有Shoes,但这可能有点轻量级。
答案 2 :(得分:8)
你将拥有Ruby/GTK,它允许你在linux下使用GTK工具包。我认为应该在Windows和Mac Os下工作(对于Gimp,Gaim等)。
关于Ruby / GTK的french magazine post a good beginner article。
编辑:根据the SourceForge project上的主页,Ruby-Gnome2(又名Ruby / GTK)是跨平台的(Windows,Linux,Mac Os)。
答案 3 :(得分:7)
使用Ruby,您可以使用Tk,这是一个成熟的跨平台UI工具包。它是Python和Tcl的defacto GUI工具包,也可以与Perl一起使用。最新版本的Tk使用本机小部件来解决Tk看起来过时的主要问题。
致力于Tk的语言中立网站是http://www.tkdocs.com/,其中包含用Ruby和Tcl编码的示例。
答案 4 :(得分:2)
答案 5 :(得分:2)
作为一名wxperl程序员,我知道wxruby也在那里。 Wx非常快,具有真正的跨平台外观。
答案 6 :(得分:2)
查看Ruby GUI 2008 Survey Results和讨论here。你很想知道。
答案 7 :(得分:1)
不确定Ruby,但是你提到过Mono / C# - 我最近使用过Mono和GTK#并且给我留下了非常深刻的印象。看起来非常稳定,跨平台的可移植性很好。
答案 8 :(得分:1)
Ruby / GNOME2运行良好。您可以使用Glade拖放窗口elemtns并从Ruby应用程序加载UI。
答案 9 :(得分:0)
你看过Java上的SWT吗?它使用原生小部件,并且比Swing更容易获得一个漂亮的界面。
答案 10 :(得分:0)
Java仍然是一个选项,它也是一个不错的选择。如果您想要使用SWT / JFace的原生外观。您可以使用eclipse的RCP框架来创建功能强大的UI应用程序。
答案 11 :(得分:0)
如果您冒险尝试使用Mac,请查看RubyCocoa。这显然只适用于OSX,但是我看到很多人在寻求在Mac上进行GUI开发时会抓狂而且如果你喜欢ruby RubyCocoa很有趣。
答案 12 :(得分:0)
我强烈支持Qt进行跨平台GUI开发。这很棒,API非常直观。 GUI外观与Qt几乎是原生的,因为它使用底层操作系统提供的GUI控件。
虽然可以使用C ++其他语言绑定的基本界面。对于Ruby RubyQt是可用的。不幸的是,它还很不成熟。
答案 13 :(得分:0)
我建议查看visualruby。它是一个使用ruby创建GUI的IDE。它使用GTK作为其图形工具包,这些应用程序在任何平台上都很棒。您可以在屏幕截图页面上看到Win7,WinXP,Ubuntu和Mac上的屏幕截图:
http://visualruby.net/site/Screen%20Shots.html
您可以通过在各种平台上安装visualruby并运行示例程序,轻松地在每个平台上进行尝试。
检查答案是在visualruby被释放之前写的。