2008-09-22 9 views
22

Estoy considerando crear una herramienta basada en GUI que quiero que sea multiplataforma. He descartado Java, ya que personalmente no me gusta Swing. Actualmente estoy considerando C# y el uso de Mono para hacerlo multiplataforma. Sin embargo, me pregunto si los nuevos lenguajes multiplataforma como Ruby pueden ofrecerme un entorno de desarrollo de GUI decente.¿Ruby es bueno para el desarrollo de GUI?

+0

De hecho, uso una aplicación multiplataforma que tiene un conjunto de herramientas que podría usar: Netbeans. Creo que está basado en Swing, pero tienes Netbeans como una capa de abstracción. Me encantaría hacer algo en Ruby, pero todos los marcos mencionados en las respuestas parecen patéticamente inmaduros. Si solo Microsoft hubiera hecho .Net multiplataforma ... –

+0

Um, .NET es multiplataforma. Se llama Mono, yo. –

Respuesta

36

La respuesta corta: no (porque dijiste multiplataforma).

La respuesta larga: GUI multiplataforma es un problema antiguo. Qt, GTK, wxWindows, Java AWT, Java Swing, XUL: todos sufren el mismo problema: la GUI resultante no parece nativa en todas las plataformas. Peor aún, cada plataforma tiene una apariencia ligeramente diferente y, así que incluso si de alguna manera pudieras obtener un kit de herramientas que pareciera nativo en cada plataforma, de alguna manera deberías codificar tu aplicación a sentir nativo en cada plataforma .

Se trata de una decisión: ¿desea minimizar el esfuerzo de desarrollo y tener una GUI que no se ve y se siente bien en cada plataforma, o desea maximizar la experiencia del usuario? Si elige la segunda opción, deberá desarrollar un back-end común y una IU personalizada para cada plataforma.

ruby ​​no es una mala elección para su back-end común.

+1

Aunque no respondo/me gusta/usted responde, ya que no es lo que quería escuchar, esta es la respuesta más útil (y honesta). –

+1

¿SWT para Java no intenta resolver el problema de tener una GUI nativa en un entorno multiplataforma? – Kibbee

+2

Creo que la única GUI que la gente acepta como "nativa" pero que no es nativa es el navegador web. Es por eso que me gustan mucho los RIA. – Nosredna

8

Ruby tiene Shoes, pero que podría ser un poco más ligero.

+0

Mi experiencia con los zapatos es que no es genial ... –

+0

Por cierto, el enlace no funciona para mí. ¿El proyecto de zapatos está muerto? – Genadinik

+0

El proyecto Shoes se ha reiniciado, con un nuevo enfoque: tiene una API de Ruby pura, que es principalmente compatible con las versiones anteriores, y un kit de herramientas conectable que crea las imágenes reales. (Actualmente, el único juego de herramientas es Java Swing) –

1
No

seguro acerca de Ruby, pero usted ha mencionado Mono/C# - He usado Mono y GTK # un poco últimamente y estoy muy impresionado. Parece ser bastante estable y la portabilidad multiplataforma es agradable.

7

con Ruby puede utilizar Tk, que es un conjunto de herramientas de plataforma cruzada IU madura. Es el conjunto de herramientas GUI de hecho para Python y Tcl, y también está disponible para su uso con Perl. Las versiones más recientes de Tk hacen uso de widgets nativos que abordan la principal preocupación de que Tk parezca anticuado.

Un sitio web de lenguaje neutro dedicado a Tk es http://www.tkdocs.com/ que incluye ejemplos codificados tanto en Ruby y Tcl.

+0

Un consejo para cualquiera que mire TK, al menos para mí, planifique con anticipación y cómo quiere que sea su interfaz de usuario, y cada panel. Luego aprende cómo se llaman esas cosas en TK, y el resto debería encajar en su lugar. Me metí en ello pensando que iba a poner en marcha la próxima mejor opción, pero me enteré de que tenía un largo camino por recorrer. – Pred

8

Tendrás Ruby/GTK, lo que le permite utilizar el kit de herramientas GTK bajo Linux. Creo que debería funcionar en Windows y Mac OS (en cuanto a Gimp, Gaim, etc.).

Un french magazine post a good beginner article sobre Ruby/GTK.

Editar: Según la página principal en the SourceForge project, Ruby-Gnome2 (también conocido como Ruby/GTK) es multiplataforma (Windows, Linux, Mac OS).

+0

GTK ... SciTE, portado a través de GTK se movió de 900 kbytes para Win a 80 mbytes para Mac. Incluso si no cuenta todas las dependencias (python, perl, sqlite ...), solo tarda ~ 20 segundos en iniciarlo. – Nakilon

2

También hay FXRuby que tiene la ventaja de un libro de Programador pragmático, así como wxRuby que se basa en el marco de la GUI wxWidgets C++.

1

Ruby/GNOME2 funciona bastante bien. Puede usar Glade para arrastrar y soltar elementos de la ventana y cargarla en la interfaz de usuario de su aplicación Ruby.

0

¿Has mirado SWT en Java? Utiliza widgets nativos y es mucho más fácil obtener una interfaz agradable que Swing.

0

Java sigue siendo una opción y también es una buena opción. Si desea un aspecto nativo, use SWT/JFace.Realmente puede hacer aplicaciones poderosas de interfaz de usuario con el marco RCP de eclipse.

2

siendo un programador de wxperl, sé que wxruby también está allí. Wx es bastante rápido y tiene una verdadera apariencia y diseño de plataforma cruzada.

+0

wxRuby está muerto desde 2009 ( – Nakilon

0

Si alguna vez se aventura al mac, echa un vistazo a RubyCocoa. Obviamente, es solo para OSX, pero he visto a mucha gente rascarse la cabeza cuando se trata de hacer el desarrollo de la GUI en el Mac y si te gusta el rubí RubyCocoa es muy divertido.

0

Apoyo Qt para el desarrollo de GUI multiplataforma. Es increíble y las API son muy intuitivas. La interfaz gráfica de usuario se ve y se siente casi nativa con Qt porque usa controles de GUI proporcionados por el sistema operativo subyacente.

Aunque la interfaz básica con C++ enlaces de otros idiomas están disponibles. Para Ruby RubyQt está disponible. Desafortunadamente es muy inmaduro.

0

Sugeriría mirar visualruby. Es un IDE para crear GUIs usando ruby. Utiliza GTK como su kit de herramientas de gráficos, y las aplicaciones se ven muy bien para mí en cualquier plataforma. Se puede ver capturas de pantalla en Win7, WinXP, Ubuntu y Mac en la página de capturas de pantalla:

http://visualruby.net/site/Screen%20Shots.html

Usted puede probar fácilmente en todas las plataformas mediante la instalación de visualruby en varias plataformas, y la ejecución de los programas de ejemplo.

La respuesta comprobada se escribió antes de que se lanzara visualruby.

Cuestiones relacionadas