V , también conocido como vlang , es un lenguaje de programación compilado , de tipado estático y en desarrollo, creado por Alexander Medvednikov a principios de 2019. [ 4 ] Se inspiró en Go y otros lenguajes de programación como Oberon , Swift y Rust . [ 5 ] [ 6 ] [ 7 ] Es software libre y de código abierto, publicado bajo la licencia MIT y actualmente en versión beta . [ 8 ]
Los objetivos de V incluyen facilidad de uso, legibilidad y mantenibilidad . [ 9 ] [ 10 ] [ 11 ]
Historia
El nuevo lenguaje se creó como resultado de la frustración con los lenguajes existentes que se usaban para proyectos personales. [ 12 ] Originalmente estaba destinado para uso personal, [ 12 ] pero después de ser mencionado públicamente y aumentar el interés, se decidió hacerlo público. [ 13 ] V se creó inicialmente para desarrollar un cliente de mensajería de escritorio llamado Volt. [ 6 ] En el lanzamiento público, el compilador estaba escrito en V y podía compilarse a sí mismo . [ 4 ] [ 12 ] Los objetivos de diseño clave en la creación de V fueron ser fácil de aprender y usar, mayor legibilidad, compilación rápida, mayor seguridad, desarrollo eficiente, usabilidad multiplataforma , interoperabilidad mejorada con C , mejor manejo de errores , características modernas y software más mantenible. [ 14 ] [ 15 ] [ 10 ] [ 16 ]
V es desarrollado, mantenido y publicado a través de GitHub [ 17 ] [ 6 ] por desarrolladores y colaboradores internacionales. [ 4 ] En 2025, V comenzó a ser clasificado en el índice TIOBE . [ 18 ]

Características
Seguridad
V tiene políticas para facilitar la seguridad de la memoria, la velocidad y el código seguro, [ 14 ] [ 20 ] [ 6 ] incluyendo varias características predeterminadas para una mayor seguridad del programa. [ 7 ] [ 14 ] [ 12 ] Emplea comprobación de límites , para protegerse contra el uso fuera de límites de variables . Se utilizan tipos de opción/resultado , donde el tipo de datos de opción ( ?) puede representarse por none(entre las opciones posibles) y el tipo de resultado ( !) puede manejar cualquier error devuelto. Para garantizar una mayor seguridad, la comprobación de errores es obligatoria. Por defecto, los siguientes son inmutables : variables, estructuras y argumentos de función . Esto incluye valores de cadena que son inmutables, por lo que los elementos no pueden ser mutados. Otras protecciones, que son el valor predeterminado del lenguaje, son: no usar valores indefinidos , sombra de variables , punteros nulos (a menos que estén marcados como inseguros) o variables globales (a menos que estén habilitadas mediante un indicador).
Actuación
V utiliza tipos de valor y búferes de cadena para reducir las asignaciones de memoria. [ 21 ] [ 22 ] [ 14 ] El lenguaje se puede compilar a C legible por humanos , [ 7 ] [ 4 ] y en ejecución y compilación, se considera rápido. [ 14 ] [ 15 ] [ 12 ]
Gestión de la memoria
V admite cuatro opciones de administración de memoria: [ 23 ] [ 6 ] [ 12 ] [ 4 ]
- Un recolector de basura . Esta es la opción predeterminada.
- Gestión manual de la memoria mediante la desactivación del recolector de basura.
- Autofree, que es experimental, sirve para invocar las llamadas necesarias para liberar automáticamente los objetos durante la compilación.
- Asignación de arena .
traductores de código fuente
V admite un compilador de código fuente a código fuente (transpilador) y puede traducir código C a V. [ 15 ] [ 24 ] [ 10 ]
También se están desarrollando traductores funcionales para Go, JavaScript y WebAssembly . [ 25 ] [ 26 ] [ 4 ]
Sintaxis
Algunos ejemplos representativos de la sintaxis V son:
Hola Mundo
El programa "Hola, mundo!" en V: [ 14 ] [ 27 ]
fn main () { println ( "Hola, mundo!" ) }Variables
Las variables son inmutables por defecto y se definen usando :=y un valor. Use la mutpalabra reservada (palabra clave) para hacerlas mutables. Las variables mutables se pueden asignar usando =: [ 28 ] [ 27 ]
x : = 1 mut y : = 2 y = 3No está permitido volver a declarar una variable, ya sea en un ámbito interno o en el mismo ámbito: [ 28 ] [ 27 ]
x : = 1 { x : = 3 // error: redefinición de x } x : = 2 // error: redefinición de xEstructuras
Ejemplo de estructura: [ 9 ] [ 7 ] [ 27 ]
struct Foo { número int nombre cadena puntuación f32 }// Los campos de la estructura se pueden inicializar por nombre var1 : = Foo { number : 21 name : "baz" score : 2.5 }// o por posición var2 : = Foo { 50 , "taz" , 3.14 }Estructuras de montón
Por defecto, las estructuras se asignan mediante asignación de memoria basada en la pila (en la pila). Cuando las estructuras se referencian mediante el prefijo &o tienen el [heap]atributo, se asignan mediante asignación de memoria basada en el montón (en el montón) en su lugar: [ 4 ] [ 27 ]
struct Foo { número int }@ [ montón ] struct Baz { número f32 }// Las estructuras a las que se hace referencia se asignan en el montón var1 : = & Foo { 2 }// Baz siempre se asigna en el montón debido a su atributo [heap] var2 : = Baz { 4.5 }Métodos
En V, los métodos son funciones definidas con un argumento receptor . El receptor aparece en su propia lista de argumentos, entre la fnpalabra clave y el nombre del método. Los métodos deben estar en el mismo módulo que el tipo de receptor.
El método enrolled_status (abajo) tiene un receptor de tipo Clientllamado x. La convención es no usar nombres de receptor como self o this, sino preferiblemente un nombre corto. Por ejemplo: [ 9 ] [ 10 ] [ 27 ]
struct Cliente { inscrito bool }fn ( x Cliente ) estado_inscrito () bool { return x . inscrito }cliente_1 : = Cliente { verdadero } cliente_2 : = Cliente { falso }println ( cliente_1.estado_inscrito ()) // "verdadero" println ( cliente_2.estado_inscrito ( ) ) // "falso "Manejo de errores
Los tipos de resultado pueden representar un error devuelto por una función. Los tipos de resultado se declaran anteponiendo !:!Type
Los tipos opcionales pueden representar none. Los tipos opcionales anteponen ?al nombre del tipo: ?Type. [ 9 ] [ 7 ] [ 23 ] [ 27 ]
fn algo ( t cadena ) ! cadena { si t == "foo" { devolver "foo" } devolver error ( "inválido" ) }x : = algo ( "foo" ) o { "default" } // x será "foo" y : = algo ( "baz" ) o { "default" } // y será "default" z : = algo ( "baz" ) o { panic ( "{err}" ) } // z saldrá con un errorprintln ( x ) println ( y )Véase también
Referencias
- ↑ "Creador de V" . GitHub .
- ↑ "Primera versión pública" . GitHub . 20 de junio de 2019.
- ↑ "Versión 0.5.2" . 12 de julio de 2026. Consultado el 13 de julio de 2026 .
- 1 2 3 4 5 6 7 Rao 2021 .
- ↑ Lewkowicz 2019 .
- 1 2 3 4 5 James 2019 .
- 1 2 3 4 5 Umoren 2021 .
- ↑ "El lenguaje de programación V" . vlang.io . Consultado el 4 de noviembre de 2023 .
- 1 2 3 4 Knott 2019 .
- ^ Nasufi , Erdet . "Una introducción a V: la vlang" . Conferencia Debian ( DebConf ) . Consultado el 24 de julio de 2022 .
- ↑ Sharma 2024 .
- ^ Chakraborty y Haldar 2023 .
- ↑ "Una breve presentación de las características de V en IBM" . YouTube . Consultado el 6 de marzo de 2023 .
- 1 2 3 4 5 6 Galuh, Rosa (8 de agosto de 2022). "Una breve introducción al lenguaje V" . MakeUseOf (MUO) . Valnet . Recuperado el 8 de agosto de 2022 .
- 1 2 3 Choudhury, Ambika (3 de julio de 2019). "Conoce V, el nuevo lenguaje de programación de tipado estático inspirado en Go y Rust" . Analytics India Magazine (AIM) . Archivado del original el 26 de enero de 2025.
- ↑ "Lenguajes de programación de GitHub (detalles del repositorio)" .
- ↑ "Índice TIOBE" . tiobe . TIOBE . Archivado del original el 11 de abril de 2025. Recuperado el 11 de abril de 2025 .
- ↑ "Mascota oficial de V" . GitHub . Consultado el 8 de noviembre de 2023 .
- ↑ Abbas, Hazem (5 de agosto de 2024). "Introducción al lenguaje V y al desarrollo de aplicaciones de escritorio" . medevel . Consultado el 3 de enero de 2025 .
- ↑ Rao 2021 , pág. 7.
- ↑ "El lenguaje de programación V ahora es de código abierto" . Packt Hub . Packt Publishing . 24 de junio de 2019. Consultado el 24 de junio de 2019 .
- 1 2 Tsoukalos 2022 .
- ↑ Schlothauer 2019 .
- ↑ "Convertir Go a V con go2v" . Zenn (en japonés). 26 de enero de 2023. Consultado el 26 de enero de 2023 .
- ↑ "El backend del compilador V WebAssembly" . lm . 26 de febrero de 2023. Archivado del original el 8 de julio de 2024.
- 1 2 3 4 5 6 7 "Documentación V" . docs.vlang.io . Consultado el 25 de agosto de 2025 .
Este artículo incorpora texto de esta obra de contenido libre . Licenciado bajo la Licencia MIT ( declaración de licencia/permiso ). - 1 2 Rao 2021 , págs. 28–40.
Bibliografía
- Chakraborty, Soubhik; Haldar, Subhomoy (6 de diciembre de 2023). "Aleatoriedad revisada utilizando el lenguaje de programación V" . Editores de ciencia nueva . doi : 10.52305/CVCN5241 . ISBN 979-8891133280. S2CID 265170755 .
- James, Ben (23 de julio de 2019). "El lenguaje de programación V: ¿vano o virtuoso?" . Hackaday . Hackaday . Recuperado el 16 de junio de 2026 .
- Knott, Simon (27 de junio de 2019). "Una introducción a V" . Recuperado el 16 de junio de 2026 .
- Lewkowicz, Jakub (25 de junio de 2019). "Resumen de noticias de SD Times: el lenguaje V ahora es de código abierto" . SD Times . SD Times . ISSN 1528-1965 . Recuperado el 16 de junio de 2026 .
- Rao, Navule Pavan Kumar (10 de diciembre de 2021). Introducción a la programación en V. Packt Publishing . ISBN 978-1839213434OCLC 1290492862
- Schlothauer, Sarah. "Los cinco repositorios más populares de GitHub en junio de 2019" . JAXenter . Archivado del original el 17 de febrero de 2020.
- Sharma, Gaurav (19 de marzo de 2024). "Explorando los lenguajes de programación más recientes para desarrolladores en 2024" . TechGig . TechGig.com .
- Tsoukalos, Mihalis (mayo de 2022). "Descubre el lenguaje V". Revista Linux Format (288). Linux Format . ISSN 1470-4234 .
- Umoren, Samuel (5 de abril de 2021). "Construyendo un servidor web usando Vlang" . Sección . Archivado del original el 13 de marzo de 2023.
{{cite web}}: CS1 mantenimiento: referencia duplica el valor predeterminado ( enlace )
Lecturas adicionales
- El lenguaje de programación V básico (en japonés). Laboratorio independiente. 20 de junio de 2020. ASIN B08BKJDRFR .
- Lyons, Dakota "Kai" (13 de abril de 2022). Introducción a la programación en V. Publicado de forma independiente. ISBN 979-8801499963.
- Sanders, Rafael (18 de septiembre de 2025). Lenguaje V para principiantes: Cómo programar con V para obtener software rápido, sencillo y fácil de mantener . Lincoln Publishers. ISBN 979-8263861681.
- Sanders, Rafael (18 de septiembre de 2025). Guía intermedia del lenguaje V: Cómo crear software fiable con las funciones sencillas pero potentes de V. Lincoln Publishers. ISBN 979-8263865429.
- Trex, Nova (24 de diciembre de 2024). Programación V: Creación de sistemas de software robustos y eficientes . Wang Press. ISBN 979-8304813778.
- Vinícius Silva; Heitor Leite; Fernando Pereira (19 de diciembre de 2025). "Generación de puntos de referencia en varios idiomas a través de L-Systems". arXiv : 2512.17616v1 [ cs.SE ].
Enlaces externos
- Sitio web oficial
- Vlang en GitHub
- Documentación
- Software de 2019
- Lenguajes de programación creados en 2019
- Lenguajes de programación
- Lenguajes de programación multiparadigma
- Lenguajes de programación procedimental
- Lenguajes funcionales
- Lenguajes de programación concurrentes
- Software multiplataforma
- Software libre multiplataforma
- Compiladores libres y de código abierto
- Software que utiliza la licencia MIT.
- Compiladores de código fuente a código fuente
- Lenguajes de programación de tipado estático
- lenguajes de programación de sistemas
- Familia de lenguajes de programación C