V es un nuevo lenguaje de programación de tipo estático, de código abierto, creado por Alexander Medvednikov. V promete ser simple, rápido y seguro para construir software mantenible. Varios lenguajes han influido en el diseño de V, incluidos Oberon, Swift, Kotlin y Python.
Obtenga información sobre V, sus características y cómo se compara con otros idiomas.
Cosas que puedes hacer con V
V tiene mucho poder y puede usarlo en casi cualquier industria, incluida la programación de sistemas, el desarrollo web y el desarrollo de juegos. El lenguaje es sencillo, rápido y seguro.
V ofrece una amplia gama de potentes bibliotecas de gráficos para el desarrollo de juegos. Estos se basan en GDI+/Cocoa Drawing y OpenGL para aplicaciones 2D/3D más sofisticadas.
V tiene un módulo de interfaz de usuario que emplea kits de herramientas de GUI nativos para aplicaciones móviles, WinAPI/GDI+ para Windows, Cocoa para macOS y dibujos personalizados para Linux.
Razones para probar V
Aunque V es un lenguaje nuevo, estos beneficios lo convierten en una opción legítima.
Sencillez
Para construir su proyecto, solo necesita ejecutar:
v.
No necesita configurar un entorno de compilación, crear un archivo MAKE, importar encabezados o configurar un entorno virtual. Si desea instalar nuevas bibliotecas a través de vpm (Administrador de paquetes V), simplemente ejecute
v instalar <Nombre del paquete>
La seguridad
Por defecto, V tiene:
- variables inmutables
- estructuras inmutables
- opción/resultado y comprobaciones de error obligatorias
- tipos de suma
- genéricos
- argumentos de funciones inmutables
y no:
- nulo
- sombreado variable
- comportamiento indefinido
- variables globales (se pueden habilitar para aplicaciones de bajo nivel como kernels, a través de la bandera)
Velocidad de compilación
Algunos lenguajes de programación son más rápidos que otros, en términos de ejecución o compilación. V es tan eficaz como C. Cuenta con tiempos de compilación de alrededor de 110k loc/s con un backend C y aproximadamente 1 millón de loc/s con backends nativos y tcc. V también evita las asignaciones innecesarias para proporcionar un enfoque de codificación simple y sin abstracción.
Gestión de la memoria
V no usa un recolector de basura, lo que lo hace diferente de lenguajes como Go y Java. En cambio, V administra la memoria en tiempo de compilación, pero solo funciona en situaciones básicas. Debe administrarlo manualmente para casos más complejos.
Formateo para coherencia de estilo de código
Puedes usar el vfmt formateador para formatear su código V y mejorar su legibilidad ejecutando:
v fmt-w <su_nombre de archivo>.v
Mensajes de error amistosos
Los mensajes de error de V son detallados, informativos y útiles. Echale un vistazo a éste ejemplo:
usuario.v:8:14: error: `actualizar_usuario` parámetro `usuario` es mutable, debe proporcionar `mut`: `update_user (usuario mut)`
7 | mut usuario := Usuario{}
8 | actualizar_usuario (usuario)
| ~~~~
9 | }
Con la ayuda del mensaje de error, puede corregir este código:
mut usuario := Usuario{}
update_user (usuario mut)
C++ frente a Ir contra V: Comparando los Tres Idiomas
En estos ejemplos, puede ver cómo el código C++, Go y V difiere en casos de uso de programación específicos.
Hola Mundo
En C++:
#incluir <iostream>
En tprincipal(){
std:: cout <<"Hola Mundo!"<< estándar:: endl;
}
En ir:
paquete principal
importar "fmt"
función principal(){
fmt. imprimir("Hola Mundo!")
}
En V:
imprimir('Hola Mundo!')
En este programa muy básico—imprimiendo el texto "Hello World!"—puedes ver que V es mucho más simple que C++ o Go. No necesita importar ni incluir ninguna biblioteca para un programa tan sencillo.
Inicialización de vectores
En C++:
estándar:: vector<En t> números = {1, 2, 3, 4};
En ir:
numeros := []En t{1, 2, 3, 4}
En V:
numeros := [1, 2, 3, 4]
En este caso de uso, puede ver que V aún produce un código más limpio que los otros dos. A diferencia de Ir y Vectores C++, V no requiere que sus vectores contengan valores de un tipo fijo.
Imprimir un vector
En C++:
estándar::copiar (números.begin(), números.final(),
estándar:: ostream_iterator<En t>(std:: cout, ""));
std:: cout << std:: endl;
En ir:
fmt.Imprimir(números)
En V:
imprimir (números)
La función println de V puede imprimir la variable vectorial de forma nativa, al igual que la de Go, aunque esta última utiliza el paquete fmt. Los archivos de encabezado iostream de C++ proporcionan una funcionalidad similar. Sin embargo, aún deberá encargarse de imprimir los elementos individuales del vector usted mismo.
Lectura de un archivo
En C++:
#incluir
#incluirEn tprincipal(){
estándar::cuerda ruta = "/etc/hosts";
estándar::ifstream F(sendero);
estándar::cuerda texto;
texto.asignar(estándar::istreambuf_iterator<carbonizarse>(f), {});
si (!F)
estándar::cerrar << "error al leer del archivo" << estándar::final;
}
En ir:
paquete principal
importar (
"io/ioutil"
"Iniciar sesión"
)función principal(){
ruta := "/etc/hosts"
b, err := ioutil. Leer archivo (ruta)si yerra != nil {
Iniciar sesión.Imprimir(errar)
devolver
}
texto := cadena (b)
}
En V:
importar sistema operativo
ruta := "/etc/hosts"
texto := os.read_file (ruta) o {
eprintln (err)
devolver
}
Para la lectura de archivos, V utiliza el módulo os para proporcionar funciones comunes independientes del sistema operativo/plataforma. Estos manejan tareas como acceder a argumentos de línea de comando, leer archivos y manejar procesos. En este caso, queremos leer un archivo en sendero y devolver el contenido, por lo que utilizará el leer_archivo (ruta) función. read_file devuelve un error si no hay contenido existente en el dado sendero. Si quieres aprender más sobre otros módulos de V, es posible que desee consultar su documentación.
¿Listo para probar V?
V es un nuevo lenguaje de programación que aún se encuentra en sus primeras etapas de desarrollo. Aun así, tiene mucha potencia y es rápido, seguro, fácil y mantenible.
V tiene un código más limpio que C++ y Go. Esto sugiere que V puede ayudar a los programadores a adherirse a uno de los principios básicos de programación. Entonces, ¿estás listo para probar V?