Sobre el proyecto

V es un lenguaje de programación compilado y tipado estáticamente, diseñado para construir software mantenible. Sus objetivos declarados son la simplicidad, la compilación rápida, un rendimiento comparable al de C y la seguridad. El compilador está escrito en el propio V y puede arrancar en menos de un segundo en hardware típico. Características clave descritas por el proyecto: - Simplicidad: el lenguaje está pensado para poder aprenderse en poco tiempo. - Compilación rápida: el README cita aproximadamente 110k líneas/segundo con un backend de Clang y aproximadamente 500k líneas/segundo con backends nativos y tcc en una máquina de prueba específica. - Autohospedaje: V se compila a sí mismo rápidamente, y el backend principal emite C legible por humanos. - Características de seguridad: sin null, sin globales, inmutabilidad por defecto y trabajo para eliminar el comportamiento indefinido. - Opciones de gestión de memoria: recolección de basura por defecto, además de modos manual (`-gc none`), asignación por arena (`-prealloc`) y autofree (`-autofree`). - Traducción de C a V, demostrada con un demo de traducción de DOOM. - Recarga de código en caliente. - ORM integrado y un framework web integrado (veb). - Backends de C y JavaScript, además de un REPL. - Biblioteca de interfaz de usuario multiplataforma y una biblioteca gráfica integrada. - Compilación cruzada fácil, incluidos binarios estáticos mediante imágenes Docker de Alpine/musl. La instalación se realiza principalmente desde el código fuente: clona el repositorio y ejecuta `make` (o `makev.bat` en Windows, `gmake` en BSD/Solaris). La compilación descarga un Tiny C Compiler incluido cuando existe una versión compatible. También se proporcionan Docker y Alpine Dockerfiles. `v up` actualiza el compilador y `v symlink` lo añade al PATH. El soporte para editores e IDE está disponible para Atom, CodeLite, Emacs, JetBrains, Sublime Text, Vim/Neovim, VS Code y Zed, con capacidades de servidor de lenguaje proporcionadas por v-analyzer. Los ejemplos incluyen un hola mundo, contador de palabras, buscador de noticias, Tetris y 2048. Los ejemplos de GUI y juegos que usan los módulos sokol o gg requieren bibliotecas de desarrollo del sistema adicionales. Los módulos de red (net.http, net.websocket) y `v install` pueden usar Mbed-TLS incluido u OpenSSL del sistema mediante `-d use_openssl`. El módulo sync depende de libatomic. El README señala que el lenguaje es pre-1.0 y puede cambiar todavía, con cambios de sintaxis manejados en gran parte por vfmt. Después de 1.0, el proyecto planea una congelación de características similar a Go, con solo correcciones de errores y mejoras de rendimiento.