Introducción al lenguaje de programación Borgo
- Se busca un lenguaje para escribir aplicaciones que sea más expresivo que Go, pero menos complejo que Rust
- Go es simple e intuitivo, pero a veces se desearía que ofreciera más seguridad de tipos
- Rust es bueno para trabajar (al menos en el caso de código de un solo hilo), pero es demasiado amplio y complejo, y a veces doloroso
- Borgo es un nuevo lenguaje que transpila a Go y es totalmente compatible con los paquetes existentes de Go
- La sintaxis de Borgo es similar a la de Rust, con punto y coma opcional
Funciones principales
- Tipos de datos algebraicos y pattern matching
- Uso de Option en lugar de nil
- Uso de Result en lugar de múltiples valores de retorno
- Manejo de errores con el operador
?
Ejecutarlo localmente
- Borgo está escrito en Rust, por lo que se necesita cargo
- Para compilar todos los archivos
.brg de la carpeta actual:
- El compilador genera archivos
.go, que luego pueden ejecutarse normalmente
Opinión de GN⁺
- Rust es un lenguaje potente, pero su curva de aprendizaje es pronunciada y la barrera de entrada suele ser alta; Borgo parece un intento interesante de aprovechar las ventajas de Rust dentro del ecosistema de Go. Sin embargo, como todavía está en una etapa temprana, es de esperarse que su ecosistema aún sea limitado
- Mejorar el manejo de nil y de errores con Option y Result, y simplificar el manejo de errores con el operador
?, parece resolver varios puntos que con frecuencia incomodan a los desarrolladores de Go
- Poder usar tal cual las bibliotecas existentes de Go es una gran ventaja. Pero, al adoptar sintaxis inspirada en Rust, puede tomar tiempo para que los desarrolladores de Go se adapten
- Al tratarse de un enfoque basado en transpilar, es posible que salga en desventaja frente al código Go nativo en aspectos como depuración o rendimiento en tiempo de ejecución. Aún da la impresión de ser temprano para aplicarlo a código de producción de gran escala
- Así como Kotlin ha ido ganando participación dentro del ecosistema JVM, para que Borgo se convierta en una solución dentro de Go, parece que necesitará mejoras continuas en varios frentes como calidad del código, productividad de desarrollo y curva de aprendizaje. Si sigue evolucionando, podría convertirse en una alternativa atractiva en el mundo de Go
1 comentarios
Opiniones en Hacker News
Resumen:
enumy tiposOptionalimpl, sintaxis de canales y goroutines, y la función integradazeroValue()enumde Ruststructpor mayúsculas y minúsculas, haya adoptado las palabras clavepubyprivate