¿Desea iniciar el desarrollo para Ubuntu (y la mayoría de las distribuciones de Linux en general), que es adecuado? Python o Vala? [cerrado]


14

Soy un graduado en ciencias de la computación y aprendí lenguajes como C, C ++, C # y Java. Aunque tengo más experiencia con Java. Quiero desarrollar para Linux y prefiero desarrollar para GNOME, estoy confundido entre elegir uno de Python y Vala.

Después de revisar algunos documentos sobre Vala en las páginas de GNOME Live, me parece más familiar en comparación con Python, que es bastante diferente sintácticamente en comparación con la mayoría de los idiomas que he aprendido durante mi graduación. Mientras que la curva de aprendizaje en Vala me parece más pequeña. Entonces, ¿qué idioma debo elegir para comenzar el desarrollo, que tiene un mejor soporte en una variedad de distribuciones. Se apreciará un IDE recomendado para el lenguaje sugerido.

Gracias.


1
Algo que nadie más en este hilo ha sugerido: debería aprender Python porque es diferente de lo que ya sabe. Lo expondrá a una forma diferente de pensar que la que aprendió al programar tareas de clase exclusivamente en lenguajes tipo C. Además, la sintaxis no es que diferente. Intente reemplazar {con :y luego eliminar todo }en algún código Java, y podría comenzar a parecerse mucho más a Python.
Ryan C. Thompson

Respuestas:


18

Aparte del viejo argumento sobre qué lenguaje de programación es mejor, en el que no voy a entrar (a pesar de que Python es lo mejor desde el pan rebanado), diría que ambos son igualmente adecuados para escribir aplicaciones para el escritorio Gnome.

Pygtk, los enlaces Python GTK, se han utilizado para crear aplicaciones como PiTiVi , Deluge , emesene , Exaile , Jokosher y WingIDE .

No puedo encontrar una lista de aplicaciones escritas en Vala (aunque sé sobre Shotwell ). Pero dado que está muy diseñado para ser un idioma para el Gkome destkop, puede estar bastante seguro de que su integración GTK / GObject no le decepcionará.

Pruébalos y usa el que más te guste. Ambas son excelentes herramientas para crear aplicaciones GTK. También es posible que desee echar un vistazo al código Some Vala y el código Some Python .


6

Yo recomendaría a Vala. Parece preferir los lenguajes orientados a objetos y Vala está orientado a objetos por diseño. Python también tiene capacidades OOP, pero no están tan integradas en las otras partes, es por eso que se creó Ruby.

Python se considera más fácil de aprender y usar, pero es un lenguaje muy original, con su propia lógica y filosofía; Creo que Vala será más fácil de aprender porque es muy similar a C # y Java.

La elección también depende de qué aplicaciones vas a escribir. Python es bueno para las secuencias de comandos y la creación rápida de prototipos, pero sus enlaces GTK son actualmente pobres y muy lentos. El lenguaje en sí es aproximadamente 40 veces más lento que C en varios puntos de referencia. Vala, por otro lado, es un preprocesador C, por lo que los programas escritos en él se ejecutan muy rápido, y está diseñado para usarse en GNOME.


1
¿Qué hay de 'pobre' en los enlaces GTK para Python? Además, ¡no creo que Ruby se haya creado como reacción a Python! Aparte de eso, estoy de acuerdo con tu respuesta.
dv3500ea

Los lenguajes interpretados son, por supuesto, más lentos, eso es una compensación de diseño. Para escribir código Python rápido, debe escribir una implementación de Python que funcione, perfilar las partes que necesitan optimización y escribir módulos de Python para esas partes en un lenguaje compilado como C.
Egil

@ dv3500ea: en realidad, " quería un lenguaje de secuencias de comandos que fuera más poderoso que Perl y más orientado a objetos que Python " . No es que esté necesariamente de acuerdo, no veo cómo no se integra OOP con Python.
André Paramés

1
Si bien Python es lento, su velocidad apenas importa en la mayoría de los casos. La parte realmente lenta de una GUI es ir a los gráficos reales, que siguen siendo todos C.
Brendan Long

5

Te sugiero que comiences con Python, ya que es muy fácil crear aplicaciones PyGTK. Este libro gratuito es un gran recurso para desarrollar aplicaciones Gnome con Python.

Vala también es genial, pero te sentirás más cómodo con Python como principiante.

Más adelante, una vez que se familiarice con la filosofía del desarrollo de aplicaciones Unix, puede crear partes de su aplicación en Python o Vala o Javascript cuando lo necesite.

Yo diría que comience con PyGTK (PyGI) para sentir la plataforma y luego aprenda Vala y Javascript. Javascript será ENORME en el escritorio de Gnome. Me refiero ENORME.

El enlace para GTK, son los mismos para todas las aplicaciones ahora. Utilizará los mismos enlaces C de cualquier lenguaje utilizando la introspección de Gobject .


Espero que JavaScript se haga cargo de Gnome o de cualquier entorno de escritorio (que ya tiene al dejar una gran impresión en Gnome Shell).
Kushal

1

Python tiene mucha buena documentación / libros. Para Vala no lo sé.


0

Sugeriría wxPython (wxWidgets) junto con Boa Constructor o Aptana Studio 3 (PyDev). Python es un lenguaje fantástico para que cualquiera lo use (incluso niños - vea "Snake Wrangling for Kids"). Al codificar en Python / wxPython, estará escribiendo código que se integra perfectamente con Linux pero que también puede ser portado con un esfuerzo trivial a Windows y OS / X.


0

Use la programación que le resulte más cómoda. Si va a donar código (es decir, escribir software libre), también puede disfrutarlo. Como han dicho otros, ambos idiomas son excelentes para el desarrollo.


Obviamente, escribir software libre es lo que va a cambiar todo para siempre. :-)
Kushal

0

vala es probablemente el número 3 (o 4 si cuenta gtkmm) de idiomas con buenos enlaces GTK y documentación. produce código intermedio en c, que puede modificar o estudiar para ver cómo se hace, la mayor parte de vala son solo envoltorios alrededor de GObject y GLib. El código Vala se ejecuta casi tan rápido como C, y debería ser fácil para cualquiera que venga de c / c # / java

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.