Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 18, 2023 08:13 pm GMT

Por que voc deveria aprender Crystal?

Alguma vez voc j ouviu falar dessa incrvel linguagem chamada Crystal? Certo, vamos entender um pouco sobre tudo que essa incrvel linguagem de programao tem para oferecer.

O objetivo deste pequeno artigo falar um pouco sobre Crystal e por quais motivos voc poderia se interessar pelo desenvolvimento utilizando-a.

O que Crystal?

Sendo uma linguagem de programao multi-paradigma, para humanos e computadores, desenhada e desenvolvida por Ary Borenszweig, Juan Wajnerman, Brian Cardiff, alm de mais de 480 colaboradores at o momento, tendo sintaxe inspirada na linguagem Ruby, Crystal se destacou por aplicar conceitos de concorrncia e uso geral de uma maneira "diferenciada", utilizando verificao esttica de tipos por meio de um algoritmo de inferncia global. Atualmente em desenvolvimento ativo, tendo como licena a Apache 2.0.

Histria

Com seus primeiros trabalhos se iniciando em 2011 com o objetivo de mesclar a produtividade e elegncia de Ruby com a velocidade, eficincia e segurana de uma linguagem compilada, surge a chamada Joy, que posteriormente foi renomeada para Crystal.

Seu primeiro compilador foi escrito em Ruby, mas, reescrito em Crystal, possibilitando uma auto-hospedagem a partir de novembro de 2013, tendo uma primeira verso lanada em junho de 2014, alm de ingressar no ndice TIOBE em julho de 2016. Sua primeira verso estvel surgiu em maro de 2021, a famosa verso 1.0!

Por que Crystal mais eficiente?

Simples, Crystal compila o cdigo nativo usando LLVM, excluindo aspectos dinmicos do Ruby. Sua inferncia de tipo global avanada aplicada no compilador, combinada com tipos de unio cria uma sensao de uma linguagem de script de maior nvel do que muitas outras linguagens de programao que podem ser comparadas.

Alm disso, Crystal possui um sistema de macro e suporta sobrecarga de mtodos e operadores. Seu modelo de concorrncia inspirado na comunicao de processos sequenciais (CSP) implementando threads verdes (traduo literal de "green threads") chamadas de fibras (traduo literal de "fibers") e outros conceitos inspirados na linguagem de programaao Go. Outro ponto importante sua coleta de lixo automatizada oferecendo um coletor Boehm.

Como instalar?

A instalao varia para cada sistema operacional a ser utilizado! Voc pode tentar instalar pelo seu gerenciador de pacotes padro buscando pelo pacote nomeado crystal ou ento seguir o guia oficial de instalao!

Caso voc esteja utilizando Windows, voc pode instalar tanto pelo WSL quanto experimentar a verso de testes do instalador oficial para Windows!

Shards

Shards o nome do gerenciador de dependncias da linguagem de programao Crystal, que utiliza por padro o arquivo shard.yml para definir configuraes de projeto.

name: shardsversion: 0.1.0dependencies:  openssl:    github: datanoise/openssl.cr    branch: masterdevelopment_dependencies:  minitest:    git: https://github.com/ysbaddaden/minitest.cr.git    version: ~> 0.3.1license: MIT

Voc pode ver o repositrio oficial clicando aqui.

Cdigo

Utilizando por padro a extenso de arquivos .cr vamos criar um exemplo prtico apenas mostrando a base de um simples "Hello World", um servidor HTTP e um modelo de concorrncia, vamos l?

Hello World!

p "Hello World!"# ouputs "Hello World!"

Servidor HTTP

require "http/server"server = HTTP::Server.new do |context|  context.response.content_type = "text/plain"  context.response.print "Hello, got #{context.request.path}!"endputs "Listening on http://127.0.0.1:8080"server.listen(8080)

Agora basta acessar a pgina local com porta "8080" para testarmos!

Modelo de Concorrncia

channel = Channel(Int32).newtotal_lines = 0files = Dir.glob("*.txt")files.each do |f|  spawn do    lines = File.read_lines(f)    channel.send lines.size  endendfiles.size.times do  total_lines += channel.receiveendputs total_lines

Onde posso ver mais sobre Crystal?

Voc pode ler a documentao oficial, seguir o perfil oficial da linguagem no GitHub e at mesmo estudar meu prprio guia em portugus de introduo ao Crystal: o famoso Crystal4noobs!


Original Link: https://dev.to/guto/por-que-voce-deveria-aprender-crystal-2c12

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To