significado - Vala: Gotchas, consejos y trucos
vala significado (9)
Como programador que es nuevo en Vala, ¿cuál es su consejo número uno para alguien que es nuevo en el idioma?
- Para recursos múltiples, este será un recurso general por un tiempo: Vala - GNOME Live! .
- Para conocer de cerca y personal con GObject: Manual de referencia de GObject .
- No sé de qué fondo vienes, pero encontrarás esto útil: Introducción rápida de Vala para programadores de C #
En cualquier caso, el conocimiento de C será de gran utilidad. Nuestro equipo está considerando una renovación progresiva y la migración a Vala. Tenemos miembros con sólidos antecedentes en C # / C ++ y este cambio de dirección (a lo largo del tiempo) será beneficioso para el rendimiento y la flexibilidad de nuestros productos.
Advertencia: No estoy familiarizado con Vala, pero espero que mi respuesta se aplique al aprendizaje de cualquier idioma nuevo. Solo quiero ofrecer algunas ideas en caso de que ayuden ... Definitivamente no debería recibir la recompensa por mi respuesta.
En pocas palabras: depende de por qué lo estás aprendiendo ...
Si está intrigado porque es un nuevo lenguaje genial, pero no está seguro de cómo puede usarlo en la práctica, intente recrear / portar algo con lo que esté profundamente familiarizado para ver cómo se compara.
Si lo estás aprendiendo porque crees que resuelve un problema específico que enfrentas, asegúrate de que vale la pena la inversión inicial, ya que aprender cualquier idioma nuevo puede consumir mucho tiempo y puede haber una solución razonable en un entorno más familiar. idioma.
De lo contrario, se trata de cómo aprendes mejor. ¿Es alguien que necesita comprender los aspectos internos del lenguaje o simplemente hacer las cosas rápidamente? (¿O, como yo, en algún lugar en el medio?) Para el enfoque de hacer las cosas, solo busco tutoriales simples y trato de poner en marcha algo básico para ver cómo se siente. Si estoy disfrutando el idioma, entonces comenzaré a leer más información en profundidad sobre el idioma y a entender lo que sucede bajo el capó.
Cualquiera que sea tu enfoque, ¡mucha suerte!
Aquí está mi consejo para ti: lee la documentación oficial. :)
Consejo: Usted puede acelerar su tiempo de construcción significativamente usando TinyCC en lugar de gcc para el desarrollo. Vala usa la variable de entorno CC para seleccionar el compilador de back-end, por lo que "export CC = tcc" hará el truco.
En general, Vala es excelente, pero una gran sorpresa que he encontrado es que, o bien su manejo de matrices es muy primitivo en comparación con el resto del lenguaje o su documentación tiene un gran vacío.
A pesar de una mirada larga y dura a través de la documentación, los tutoriales y Google, he llegado a la conclusión de que:
- La única forma de concatenar dos matrices es recurrir a trucos estilo C o usar
foreach
y+=
para agregar manually una matriz al otro elemento por elemento. - Puedes hacer una porción como
argv[1:-1]
pero parece que no hay sintaxis equivalente a laargv[1:]
de Pythonargv[1:]
, así que tienes que recurrir a algo más de procedimiento para eso. - Libgee es inútil para mí porque, si bien los objetos Gee tienen métodos como
add_all
, ninguno de ellos toma arrays tipo C, así que vuelvo a usaradd
withforeach
y+=
.
En gran medida, depende de los antecedentes de donde vienes. Si vienes de C / C ++ / Java, el mejor consejo es aprender programación funcional. Vala admite cierres verdaderos, por lo que debe aprender (profundamente) cómo usar expresiones lambda. El mejor recurso para esto es Estructura e Interpretación de Programas de Computación por Abelson y Sussman. Fue el libro de texto introductorio para CS en MIT durante muchos años. Está disponible de forma gratuita en línea en http://mitpress.mit.edu/sicp/full-text/book/book.html , pero la versión impresa es más legible. Las videoconferencias están disponibles en http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ . Los conjuntos de problemas están disponibles gratuitamente en http://icampustutor.csail.mit.edu/6.001-public/ .
Aparte de eso, generalmente solo trato de aprender bien el estilo de programación de C #. Es similar a Vala, pero hay muchos libros sobre ese tema.
Capturas:
- Tenga en cuenta que Vala no tiene recolección de basura. Hace referencia al conteo.
- Tenga en cuenta que Vala todavía se está desarrollando. Es un lenguaje bastante nuevo y no ha llegado a 1.0. El código que escriba ahora puede romperse en el futuro.
- Si elige aprender Vala, tenga en cuenta que es un poco obsoleto, en lo que respecta a los conceptos del lenguaje de programación. No hace nada para ayudar con la programación multinúcleo. No hace nada para ayudar con la gestión de la memoria (el rendimiento del código se basa en gran medida en la coherencia del caché; los buenos lenguajes recogidos de basura pueden reorganizar la memoria para ayudar aquí). Es una envoltura alrededor de C, y viene con muchas de las limitaciones de C (aunque sí agrega cierres).
Además, uno de los carteles recomienda tinycc. Esta es una opción razonable para el desarrollo, pero debe usar un compilador optimizado como gcc (o si es compatible, el compilador de Intel) para la implementación.
Mi consejo # 1 es aprender sobre GObjects. Son la columna vertebral del poder y la flexibilidad de Vala, y aprender a envolver varias bibliotecas con GObject les da a sus programas Vala acceso a todo lo que c puede vincular (¡eso es mucho!).
Aquí hay algunos enlaces que pueden ser de interés:
* http://library.gnome.org/devel/gobject/stable/
* http://fosswire.com/post/2009/7/gobject-vala/
* http://developer.gnome.org/doc/tutorials/#gobject
* http://en.wikipedia.org/wiki/GObject
Mi consejo sería leer la documentación, pero personalmente aprendí el idioma mirando ejemplos del código vala:
el tutorial vala me ayudó mucho y la página de documentación contiene muchos ejemplos útiles, pero el único sitio que más me ayudó fue y todavía es valadoc.org:
valadoc te ayudará mucho con las diferentes clases y funciones también con otras bibliotecas.
vala es muy similar a c # pero a menudo también verás interfaces similares a Java. cualquier experiencia con C es buena porque todas las bibliotecas alrededor de vala están escritas en C y cuando llamas a funciones puedes ver casi todo el código C que está justo debajo de la superficie.
para aquellas personas que dicen que Vala es demasiado joven: vala seguirá siendo tan joven como ahora hasta que alguien haga una documentación MUY grande o inicie un proyecto tan grande como QT donde miles de personas hacen preguntas todos los días.
vala es un poco difícil de aprender al principio debido a la mala documentación, ¡pero no te rindas! es un gran lenguaje cuando has aprendido que es básico. ¡buena suerte! y perdón por el mal inglés :)
Si está considerando que Vala escriba una aplicación de servidor, entonces puede que le gusten algunas características de agrupación de objetos (función token de objeto) en Aroop . Aroop es una bifurcación de Vala que agrupa la memoria. Y tiene como referencia al recolector de basura. Puede encontrar una lista de características here . Permítanme nombrar algunos de los objetivos aquí en la lista,
- Agrupación de memoria
- Escritura de servidores de red, shotodol_net , shotodol_web .
- Paso de mensaje basado en cola sin bloqueo
- Desarrollo basado en el plugin, shotodol .
- Desarrollo integrado