Aiken es un novedoso y accesible lenguaje de programación, específicamente diseñado para simplificar y mejorar el desarrollo de smart contracts sobre Cardano. Tiene una sintaxis fácil de aprender, concebida para integrarse sin esfuerzo con otras herramientas y lenguajes, además de incluir diversas características de última generación que satisfacen las expectativas actuales de los desarrolladores.
Siguiendo la línea del verdadero código abierto, Aiken nació de los esfuerzos dedicados de varias personas. Tras el arranque original con el apoyo de TxPipe, nuevos desarrolladores mostraron su interés por el proyecto y decidieron aportar su tiempo y atención para ayudarlo. Por su parte, la Fundación Cardano también ve el potencial de Aiken, cómo puede fomentar el crecimiento del ecosistema Cardano ofreciendo al desarrollo de smart contract una experiencia optimizada para el desarrollador. Invitamos a todo el mundo a saber más sobre Aiken, y damos una calurosa bienvenida a cualquiera que esté interesado en participar en esta fase alfa recientemente lanzada.
Vislumbrando las diferencias
Es bien conocido que la plataforma Haskell Plutus -hasta ahora el único lenguaje de smart contract completamente desarrollado en Cardano- a menudo resulta difícil o incluso frustrante de utilizar. De hecho, la configuración de un entorno Haskell que funcione puede resultar todo un reto, especialmente cuando implica complementos de compilador ad-hoc como PlutusTx - el complemento del compilador Haskell de Glasgow (GHC) para compilar código fuente Haskell para la cadena Cardano. Los complementos como los servidores de lenguaje -herramientas que mejoran la experiencia de programación integrándose con los editores de código- no suelen funcionar con los ajustes de instalación por defecto y son engorrosos de configurar. Además, dado que la plataforma Plutus está vinculada al lenguaje Haskell existente, pero luego añade diferentes bibliotecas incorporadas, ecosistemas y una semántica de programa que difiere del Haskell estándar, a menudo da lugar a situaciones confusas, incluso para un Haskeller experimentado. Finalmente, la plataforma Plutus desalienta el uso de otros lenguajes para el código fuera de la cadena, lo que impide a los equipos trabajar con sus herramientas y lenguajes habituales para lo que representa, a fin de cuentas, una gran parte de su aplicación descentralizada. Si bien es posible adoptar un lenguaje diferente para toda la infraestructura fuera de la cadena, la interconexión con el código dentro de la cadena puede ser torpe y difícil de solucionar. No obstante, a pesar de estos obstáculos, muchos proyectos optan por adoptar lenguajes diferentes para su código fuera de la cadena.
Ahora bien, esta no tiene por qué ser la única vía. Lenguajes como Rust y Elm han llevado la experiencia de escribir código a nuevas cotas. Por ejemplo, Elm hace imposible que se produzcan errores en tiempo de ejecución al mantener los límites entre un programa y el mundo exterior tras una separación clara y segura, restringiendo la forma en que el código que se escribe interactúa con el código exterior, los sistemas o las interfaces de programación de aplicaciones (API). Por si fuera poco, convierte la programación en un placer y reduce considerablemente la barrera de entrada al lenguaje, de modo que cualquiera puede ser productivo de inmediato, incluso en grandes bases de código.
Rust, por su parte, vuelve a conectar con la gestión manual de la memoria y la mutabilidad, pero con un enfoque innovador que evita errores sencillos, aunque potencialmente catastróficos. También sigue ampliando continuamente los límites de lo que las herramientas pueden hacer por los desarrolladores y de cómo estos pueden incorporar más inteligencia a las prácticas de desarrollo cotidianas.
Dichos lenguajes y plataformas ofrecen una experiencia de desarrollo más fluida a los desarrolladores, lo que facilita la escritura de código robusto y de alta calidad. De ahí que los ecosistemas que no cumplan estas normas puedan tener dificultades para atraer y retener a los desarrolladores pragmáticos. Aiken surgió precisamente para abordar esta carencia.
Tanto la arquitectura de Cardano como su máquina virtual de smart contract permiten la creación de herramientas de terceros y de nuevos lenguajes sobre ella. De hecho, el ledger de Cardano no ejecuta Haskell en cadena. Cada nodo viene con un intérprete Plutus que se encarga de ejecutar los validadores de las secuencias de comandos en la cadena. Este intérprete ejecuta un lenguaje de bajo nivel llamado Untyped Plutus Core (UPLC). Este es el lenguaje al que compila la plataforma Haskell Plutus. Y ahora, también lo hace Aiken.
Presentando Aiken y su funcionamiento
Aiken introduce un nuevo lenguaje de programación fácil de aprender, diseñado para llevar la experiencia de desarrollo de smart contract de Cardano al nivel que los desarrolladores esperan en 2023. Puesto que ha sido creado específicamente para Cardano, incorpora una serie de comodidades específicas del sector para que el proceso de desarrollo sea más sencillo y eficaz. Entre ellas se incluyen:
- Comentarios útiles y rápidos del compilador
- Formato automático del código
- Un lenguaje del lado del servidor con integraciones de editor
- Un entorno de pruebas y evaluación comparativa
- Documentación generada a partir de los comentarios del código
- Un formato de especificación binaria interoperable y portátil (CIP-0057)
El objetivo de Aiken consiste en acelerar la puesta en marcha y la finalización de los proyectos de los desarrolladores. Su equipo deseaba convertir lo que actualmente es una experiencia de configuración de varios días en un inicio rápido de 10 minutos sin comprometer ninguno de los aspectos de seguridad y calidad. Por ello, Aiken presenta una sintaxis familiar de la familia C sin dejar de ser un lenguaje puramente funcional. En muchas formas, es sintácticamente similar a Rust y TypeScript.
Resumiendo el proceso, un compilador es un programa que convierte el código escrito en un lenguaje de programación en código que puede ser ejecutado por un ordenador - como una CPU e instrucciones de máquina de bajo nivel. En Aiken, el compilador toma el código escrito, realiza una serie de comprobaciones y a continuación, genera programas Untyped Plutus Core que pueden utilizarse en la blockchain de Cardano. Técnicamente hablando, Untyped Plutus Core es un cálculo lambda polimórfico con funciones incorporadas, añadidas específicas para la cadena Cardano y utilizadas, por ejemplo, para verificar firmas. Normalmente, estas traducciones de un lenguaje de programación a otro no se escriben a mano. En su lugar, las máquinas deben escribirlas e interpretarlas. Los compiladores permiten a los desarrolladores utilizar lenguajes más expresivos que son más fáciles de aprender y razonar, y aun así producen instrucciones de máquina entendidas por el motor de ejecución subyacente. Se pueden aplicar cuando se trata de una máquina de escritorio o un navegador de Internet, o, en nuestro caso, con la blockchain de Cardano.
El hecho de escribir nuestro propio compilador significa que podemos buscar casos específicos para la escritura de smart contracts y ofrecer una mejor retroalimentación del compilador, así como una guía extra a la hora de escribir contratos. Por si fuera poco, el lenguaje está orientado a la legibilidad para que resulte fácil de auditar y se reduzca la posibilidad de equivocarse.
Aparte del lenguaje de programación, Aiken también ofrece un kit de herramientas para trabajar con los smart contracts de Cardano y en concreto con el Untyped Plutus Core de bajo nivel. Se ofrece una forma accesible de descompilar el código de la cadena en una representación de nivel superior. Permite evaluar las secuencias en el contexto de una transacción e informar de los costes de ejecución, de forma similar a como lo hace el ledger de Cardano incrustado en cada nodo.
Historia, presente y futuro de Aiken
Este proyecto nació como una conversación entre ingenieros de distintos horizontes, cobrando vida con el apoyo inicial de TxPipe a partir de unos objetivos compartidos y una filosofía común. La Fundación Cardano no tardó en decidir apoyar el proyecto y acelerar su desarrollo. Actualmente, el proyecto ha superado a sus dos iniciadores y ha empezado a echar raíces en la comunidad Cardano en general.
“Cuando se propuso por primera vez la idea de desarrollar un nuevo lenguaje y una cadena de herramientas desde cero, nos pareció bastante desalentador, algo que exigiría un equipo de 10 ingenieros y varios años de desarrollo”.
"En menos de un año, sobrepasando todas las expectativas, Aiken ya está listo para una versión alfa. La capacidad y la experiencia del equipo central son realmente notables. El resultado es un testimonio del poder del desarrollo de código abierto y del espíritu de colaboración dentro de la comunidad Cardano.
"Gracias al enorme apoyo ofrecido por la Fundación Cardano, estoy seguro de que Aiken tendrá un profundo impacto en nuestro ecosistema, fomentando la innovación y capacitando a los desarrolladores ".
Santiago Carmuega - TxPipe
Aiken es un magnífico ejemplo de código abierto, con contribuyentes de la comunidad Cardano colaborando en muchos frentes y compartiendo sus comentarios. Más aún, para construir un ecosistema fuerte en torno al lenguaje, el equipo se aseguró de ofrecer un gestor de paquetes que fomenta el desarrollo de bibliotecas de código abierto con una documentación limpia y fácil de generar. Estamos deseando ver las bibliotecas que la comunidad desarrollará y compartirá.
A fin de ayudar a cualquier persona interesada en iniciarse en el uso de Aiken, hemos creado un tutorial “hola mundo” a modo de guía de inicio rápido para aquellos que quieran empezar a trabajar desde cero. Antes incluso de cualquier anuncio, más de 30 pioneros ya han completado el tutorial, y animamos a otros a unirse a la creciente comunidad Aiken probando el tutorial ellos mismos. Además del tutorial, el equipo de Aiken ha trabajado en numerosa documentación sobre el lenguaje y sobre cómo escribir smart contracts en Cardano, toda ella alojada en repositorios públicos y a la que es fácil contribuir, para que también pueda mejorar y crecer con el tiempo.
Nosotros, desde la Fundación Cardano, así como todo el equipo de Aiken, nos sentimos entusiasmados al ver que Aiken entra en su fase alfa oficial. Aunque esto signifique que se han implementado todas las características principales, es posible que todavía haya que limar algunas asperezas y errores. Asimismo, aunque el alfa ya viene con las funcionalidades esenciales para escribir, probar, documentar y realizar benchmarks de contratos en cadena para Cardano de forma productiva, es importante actuar con cautela a la hora de utilizar Aiken en producción. Por el momento, no recomendamos hacerlo.
Este año, el equipo de Aiken llevará a cabo auditorías exhaustivas de Aiken para garantizar que cumple con los estándares de robustez que se esperan de un kit de herramientas de nivel empresarial. Si Aiken va a ser responsable de la gestión de importantes cantidades de activos, es crucial que ofrezca todas las garantías necesarias. La robustez forma parte integrante de la filosofía de Aiken, junto con la facilidad de uso. Parte de este viaje hacia la mainnet requiere incorporar a los desarrolladores desde el principio, ya que solo los verdaderos comentarios de los usuarios pueden darnos alguna esperanza de moldear correctamente esta herramienta a largo plazo. Por ello, hacemos un llamamiento a los primeros pioneros de Aiken para que se unan a nosotros en esta aventura y nos ayuden a convertir Aiken en el futuro del desarrollo de smart contracts de Cardano.
Después de meses de intenso trabajo, estamos encantados de haber alcanzado este hito y es importante dar las gracias a las numerosas personas que han garantizado que el proyecto llegara a esta fase. Nada importante se construye solo. Aiken no habría superado tantas dificultades sin el apoyo de múltiples colaboradores que dedicaron su tiempo y atención a mejorar Aiken.
Ya sea haciendo el tutorial “hola mundo”, ofreciendo comentarios, abriendo debates, o escribiendo algo de código Aiken, la Fundación Cardano invita a todos y cada uno a participar en la construcción de Aiken más allá. Esperamos que aporte un futuro brillante a los smart contract en Cardano.
Traducción al español de “Aiken: the Future of Smart Contracts”, escrito por Lucas Rosa, Ingenirio Principal de Software de la @Cardano-Foundation, en abril 20 de 2023.
Notas del traductor
- Corchetes del traductor.
- indica que el enlace apunta a un contenido en idioma inglés.
- indica que el enlace apunta a un contenido en idioma español.