Translate
viernes, 9 de junio de 2017
Cristal, rápido como C, amigable como Ruby
Cristal es un lenguaje similar a ruby que viene creciendo bastante, entre sus características podemos nombrar:
Sintaxis: La sintaxis de cristal es muy similar a la de ruby, lo que lo hace fácil de leer y de escribir.
Veamos un ejemplo:
# A very basic HTTP server
require "http/server"
server = HTTP::Server.new(8080) do |context|
context.response.content_type = "text/plain"
context.response.print "Hello world, got #{context.request.path}!"
end
puts "Listening on http://127.0.0.1:8080"
server.listen
Es un lenguaje compilado, lo que lo hace más rápido y con menos uso de memoria.
Chequeo de tipos, cristal es de tipado estático y hace chequeos de tipo en tiempo de compilación.
Chequeo de posibles errores por valores nulos.
if rand(2) > 0
my_string = "hello world"
end
puts my_string.upcase
y si compilamos:
$ crystal hello_world.cr
Error in hello_world.cr:5: undefined method 'upcase' for Nil (compile-time type is (String | Nil))
puts my_string.upcase
^~~~~~
Macros, que permiten extender el lenguaje:
class Object
def has_instance_var?(name) : Bool
{{ @type.instance_vars.map &.name.stringify }}.includes? name
end
end
person = Person.new "John", 30
person.has_instance_var?("name") #=> true
person.has_instance_var?("birthday") #=> false
y mucho más!!
Dejo link:
https://crystal-lang.org/