Hare: Drew DeVault es un programador que tiene en su haber numerosos proyectos, como como un administrador de ventanas en mosaico (Sway WM).
Pero ayer presentó un proyecto nuevo, mayor y a más largo plazo, en el que él y treinta colaboradores llevaban dos años y medio trabajando en secreto: un lenguaje de programación llamado Hare, con el que pretende ofrecer una alternativa —nada menos— que a C.
Palabras mayores, siendo C como es el lenguaje de programación más importante de la historia (y sí, aún lo es, aunque no sea el más usado: es el lenguaje en que se desarrollan los núcleos de los principales sistemas operativos).
Su idea, de hecho, es “simplificar C sin reducir su utilidad”. De hecho, lo califica como un lenguaje adecuado para desarrollar “sistemas operativos, drivers, herramientas del sistema, compiladores, software de red y otras tareas de bajo nivel y alto rendimiento”.
Así luce un ‘Hola Mundo’ en versión multilingüe, con Hare:
Y así se ve un programa de ejemplo, capaz de calcular su propio hash SHA-256:
Y si necesitas ejemplos más complejos y tangibles, ya existen dos proyectos basados en Hare: el almacén de contraseñas Himitsu y el microkernel x86_64 Helios.
Punto débil: no está dirigido a usuarios de Windows y macOS
¿Un punto negativo? Su disponibilidad —actual y prevista— para ciertas plataformas. Por ahora, funciona en Linux y FreeBSD para x86_64, aarch64 y riscv64. Quieren añadir más arquitecturas (sobre todo el 32 bits), pero entre los sistemas operativos contemplados, aunque encontramos el minoritario Haiku, no se encuentran Windows y macOS:
¿Qué ofrece Hare que no ofrezca Rust?
Pero, ¿no era Rust el lenguaje que se estaba alzando como sustituto de C? ¿No está en proyecto empezar a desarrollar partes del propio Kernel de Linux en Rust, incluso? ¿Por qué reinventar la rueda, entonces? Unos meses antes de que DeVault empezara a trabajar en la creación de Hare, explicaba en su blog por qué no consideraba a Rust un buen reemplazo para C.
En aquel entonces, DeVault vaticinaba que el lenguaje que sustituyera a C sería más sencillo, no más complejo que éste. Y explicaba que Go había logrado eso “especializándose en ciertas clases de problemas y abordándolos con la solución más simple posible”, pero destacaba que no había logrado reemplazar “por completo” a C. Y ahí es donde entra Hare.