2012-05-01 21 views
9

estoy trabajando con un poco de código heredado C, que tengo que refactorizar y en general la limpieza, para eliminar la programación de tipo espagueti, se adhieren al principio DRY etc.¿Están listas las producciones de Vala y Genie?

estaba pensando en volver a escribir usando C++, pero no lo hago quiero ir tan lejos, y me gustaría permanecer lo más cerca posible de C (mientras uso algunos conceptos de POO [sin tener que codificarlos a mano]).

Recientemente me encontré con GObject, Vala y Genie. Los dos últimos son bastante recientes. ¿Alguien sabe que Vala o Genie están siendo utilizados en el código de producción?

Por último, pero no menos importante, ¿hay una lista de las ventajas y desventajas comparaciones entre los dos idiomas. Me inclino un poco hacia Genie porque me encanta Python y no estoy muy interesado en C#, pero la (¿aparente?) Insistencia de Genie en las pestañas podría ser un poco molesta en la práctica. Me interesaría una lista de pros y contras para el dos idiomas (suponiendo que uno o ambos estén listos para su uso en producción).

Como un lado, estoy desarrollando en Linux, por lo que cualquier problema relacionado con Windows no es relevante en lo que a mí respecta.

+0

También podría considerar [Objetivo C] (http: //en.wikipedia. org/wiki/Objective_c), [D] (http://en.wikipedia.org/wiki/D_%28programming_language%29), y posiblemente un [grupo de otros idiomas] (http://en.wikipedia.org/ wiki/Object-oriented_programming # OOP_languages) similar a "C con objetos". – pmg

Respuesta

10

Unity, la interfaz de usuario utilizada por todas las versiones recientes de Ubuntu, usa Vala.

Here is a list de aplicaciones desarrolladas con Vala. Algunos de estos son parte de la instalación de GUI predeterminada de algunas de las principales distribuciones de GNU/Linux.

Y en cuanto a Genie: Es otro idioma (con sintaxis similar a Python) entendido por el compilador de Vala. Entonces, realmente es solo una cuestión de qué sintaxis prefieres (en mi opinión). Aquí es una cita de la guía de lenguaje Genie, que parece decir lo mismo:

Genie es muy similar a Vala en funcionalidad, pero se diferencia en la sintaxis permitiendo al desarrollador usar más limpio y menos código para llevar a cabo la misma tarea.

Como Vala, Genie tiene las mismas ventajas:

  • Los programas escritos en Genie debe tener tienen un rendimiento similar y uso de los recursos a los que están escritos directamente en Vala y C
  • Genie no tiene ninguno de los excesos y los gastos generales que viene con muchos otros lenguajes de alto nivel que utilizan una máquina virtual (por ejemplo, Python, Mono, Java)
  • Clases en Genie en realidad son GObjects por lo Genie se puede utilizar para la creación de código de plataforma como los widgets y bibliotecas donde GObjects son necesarios para la unión a othe r idiomas

Si no te gusta TAB caracteres, puede utilizar espacios en lugar:

[indent=2] //two space indent instead of TAB 
init 
    print "Hello World" 
+1

Gracias. Creo que iré con Vala. Todavía se está desarrollando (Parece que los últimos cambios de código a Genie se hicieron hace unos años). –

+1

El fraseo "Programas escritos en Genie ... a aquellos escritos * directamente * en Vala y C" es algo revelador.¿Qué nivel de indirección se introduce al usar Genie? Entiendo que Vala/Genie compilan primero en C antes de compilar en binarios, pero esa oración hace que parezca que los programas escritos en Genie se compilan primero en Vala antes de compilarse en C, y luego en binarios. O tal vez swahili en el medio. No tengo idea. – robru

+0

Revisé el código fuente de Unity, solo puedo ver las extensiones cpp, c, py allí. – exebook

Cuestiones relacionadas