Hace tiempo que hablamos sobre este lenguaje de programación que comparte mucha similitud con Ruby.
Como mencionamos anteriormente, Crystal posee una sintaxis similar a Ruby. Sin embargo, es un lenguaje que promete ser mucho más rápido y eficiente. Además de otras peculiaridades que lo hacen digno de no pasar inadvertido.
Veamos un ejemplo.
server.cr
# Un servidor HTTP básico require "http/server" server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hola, mundo, obtenemos #{context.request.path}!" end address = server.bind_tcp(8080) puts "Escuchando desde el puerto: http://#{address}" # Invocamos el bloque hasta que el proceso finaliza server.listen
En pocas palabras se trata de una aplicación HTTP que muestra el clásico "Hola, mundo". Echémoslo a andar. Pero antes de hacer nada comencemos con su instalación.
Instalación en Linux
Abrimos una terminal y tecleamos lo siguiente:
$ curl -fsSL https://crystal-lang.org/install.sh | sudo bash $ apt install crystal
Instalación en Windows
Abrimos una terminal y tecleamos lo siguiente:
$ scoop install git $ scoop bucket add crystal-preview https://github.com/neatorobito/scoop-crystal $ scoop install vs_2022_cpp_build_tools crystal
Podemos validar la instalación tecleando:
$ crystal --version
Ejecutamos el script:
$ crystal server.cr
Abrimos el navegador en la ruta: http://localhost:8080/Thomas
Salida:
Hola, mundo, obtenemos /Thomas!
En lenguajes como Java tendríamos que haber creado un proyecto completo para realizar esta actividad.
Ahora veamos cómo consumir una API pública (https://api.chucknorris.io/).
get_chiste.cr
require "http/client" require "json" response = HTTP::Client.get("https://api.chucknorris.io/jokes/random") json = JSON.parse(response.body) value = json["value"] put "Chiste sobre Chuck Norris: #{value || "Ninguno"}"
Ejecutamos el script:
$ crystal get_chiste.cr
Salida:
Chiste: Chuck Norris attended last year's Nobel Prize ceremony wearing an all-white snakeskin pimp suit with matching widebrim hat and feather.
Al ser una salida aleatoria el resultado puede variar.
Notas importantes
Crystal nos permite compilar nuestros scripts y con ello crear ejecutables.
Compilando el ejemplo anterior:
$ crystal build get_chiste.cr
Con esto nos creará los siguientes archivos:
gc.dll get_chiste.cr get_chiste.exe get_chiste.pdb iconv-2.dll libcrypto-3-x64.dll libssl-3-x64.dll zlib1.dll
O si solo preferimos la ejecución de estas dos formas:
$ crystal programa.cr # O de esta otra forma: $ crystal run programa.cr
Los "nuevos" lenguajes como Crystal, Ballerina, Go y Rust han aprendido lo mejor de los lenguajes clásicos y han olvidado lo malo de ellos.
Prometen ser la panacea universal y aliviarnos de las complejidades y otras cuestiones que hacian del desarrollo una actividad, en ocasiones, tediosa y complicada.
Continuaremos con esta serie sobre nuevos lenguajes y herramientas.
Enlaces:
https://crystal-lang.org/https://codemonkeyjunior.blogspot.com/2024/09/crystal-un-lenguaje-de-programacion.html
https://api.chucknorris.io/
https://emanuelpeg.blogspot.com/2026/01/crystal-el-lenguaje-de-programacion-que.html
