Lädt...


🔧 Por que você deveria aprender Crystal?


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Alguma vez você já ouviu falar dessa incrível linguagem chamada Crystal? Certo, vamos entender um pouco sobre tudo que essa incrível linguagem de programação 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 programação multi-paradigma, para humanos e computadores, desenhada e desenvolvida por Ary Borenszweig, Juan Wajnerman, Brian Cardiff, além de mais de 480 colaboradores até o momento, tendo sintaxe inspirada na linguagem Ruby, Crystal se destacou por aplicar conceitos de concorrência e uso geral de uma maneira "diferenciada", utilizando verificação estática de tipos por meio de um algoritmo de inferência global. Atualmente em desenvolvimento ativo, tendo como licença a Apache 2.0.

História

Com seus primeiros trabalhos se iniciando em 2011 com o objetivo de mesclar a produtividade e elegância de Ruby com a velocidade, eficiência e segurança 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 versão lançada em junho de 2014, além de ingressar no índice TIOBE em julho de 2016. Sua primeira versão estável surgiu em março de 2021, a famosa versão 1.0!

Por que Crystal é mais eficiente?

Simples, Crystal compila o código nativo usando LLVM, excluindo aspectos dinâmicos do Ruby. Sua inferência de tipo global avançada aplicada no compilador, combinada com tipos de união cria uma sensação de uma linguagem de script de maior nível do que muitas outras linguagens de programação que podem ser comparadas.

Além disso, Crystal possui um sistema de macro e suporta sobrecarga de métodos e operadores. Seu modelo de concorrência é inspirado na comunicação de processos sequenciais (CSP) implementando threads verdes (tradução literal de "green threads") chamadas de fibras (tradução literal de "fibers") e outros conceitos inspirados na linguagem de programaçao Go. Outro ponto importante é sua coleta de lixo automatizada oferecendo um coletor Boehm.

Como instalar?

A instalação varia para cada sistema operacional a ser utilizado! Você pode tentar instalar pelo seu gerenciador de pacotes padrão buscando pelo pacote nomeado crystal ou então seguir o guia oficial de instalação!

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

Shards

Shards é o nome do gerenciador de dependências da linguagem de programação Crystal, que utiliza por padrão o arquivo shard.yml para definir configurações de projeto.

name: shards
version: 0.1.0

dependencies:
  openssl:
    github: datanoise/openssl.cr
    branch: master

development_dependencies:
  minitest:
    git: https://github.com/ysbaddaden/minitest.cr.git
    version: ~> 0.3.1

license: MIT

Você pode ver o repositório oficial clicando aqui.

Código

Utilizando por padrão a extensão de arquivos .cr vamos criar um exemplo prático apenas mostrando a base de um simples "Hello World", um servidor HTTP e um modelo de concorrência, vamos lá?

Hello World!

p "Hello World!"
# ou
puts "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}!"
end

puts "Listening on http://127.0.0.1:8080"
server.listen(8080)

Agora basta acessar a página local com porta "8080" para testarmos!

Modelo de Concorrência

channel = Channel(Int32).new
total_lines = 0
files = Dir.glob("*.txt")

files.each do |f|
  spawn do
    lines = File.read_lines(f)
    channel.send lines.size
  end
end

files.size.times do
  total_lines += channel.receive
end

puts total_lines

Onde posso ver mais sobre Crystal?

Você pode ler a documentação oficial, seguir o perfil oficial da linguagem no GitHub e até mesmo estudar meu próprio guia em português de introdução ao Crystal: o famoso Crystal4noobs!

...

🔧 Por que você deveria aprender Crystal?


📈 120.86 Punkte
🔧 Programmierung

🔧 Oque é a atualização otimista de UI e por que você deveria usar em seu projeto.


📈 81.05 Punkte
🔧 Programmierung

🔧 Por que você deveria priorizar a documentação de suas experiências


📈 81.05 Punkte
🔧 Programmierung

📰 Acceso Remoto Seguro: Por que es importante y por que hay que hacerlo bien


📈 79.4 Punkte
📰 IT Security Nachrichten

🔧 Por quê eu estou aprendendo e acho que vocês também deveriam aprender scala em 2024


📈 71.58 Punkte
🔧 Programmierung

🔧 20 Livros sobre Linguagem SQL que você deveria ler


📈 63.11 Punkte
🔧 Programmierung

🔧 18 Métodos de Arrays em JavaScript que Você Deveria Saber


📈 63.11 Punkte
🔧 Programmierung

🔧 Você deve trabalhar pra você Por Zarathon Viana


📈 60.15 Punkte
🔧 Programmierung

🔧 ¿Por Qué Vale la Pena Aprender a Programar en la Era de la Inteligencia Artificial?


📈 57.07 Punkte
🔧 Programmierung

🔧 Por que é vital aprender a dizer não no ambiente profissional


📈 57.07 Punkte
🔧 Programmierung

🔧 Por que aprender OCaml?


📈 57.07 Punkte
🔧 Programmierung

🔧 3 Livros que eu acho que todo dev deveria ler pelo menos 1 vez


📈 56.51 Punkte
🔧 Programmierung

🔧 Los 6 lenguajes de programación de ciencia de datos que hay que aprender en 2024


📈 53.64 Punkte
🔧 Programmierung

🔧 Uma história sobre HTTP status code e por que você deve ler a documentação


📈 53.55 Punkte
🔧 Programmierung

🔧 Mais do que armazenamento de código: 5 features do GitHub que você não conhece


📈 50.12 Punkte
🔧 Programmierung

🔧 O que é o Virtual DOM e por que ele torna o React tão eficiente?


📈 46.95 Punkte
🔧 Programmierung

🔧 HTML Semântico: O que, por quê e como


📈 46.95 Punkte
🔧 Programmierung

🔧 HTML Semântico: O que, por quê e como


📈 46.95 Punkte
🔧 Programmierung

🔧 O que é Design system e por que usar


📈 46.95 Punkte
🔧 Programmierung

🔧 O que é DTO? Por que usar?


📈 46.95 Punkte
🔧 Programmierung

🔧 Por que a Apple Odeia o Brasil? A História Proibida que Ninguém Contou!


📈 46.95 Punkte
🔧 Programmierung

🔧 O Que é UX/UI Design e Por Que É Importante para Desenvolvedores


📈 46.95 Punkte
🔧 Programmierung

🔧 O Que é Design de Código e Por Que Isso Importa


📈 46.95 Punkte
🔧 Programmierung

🔧 15 Livros para você Aprender a Criar Sua Própria Linguagem de Programação


📈 45.73 Punkte
🔧 Programmierung

🔧 Timezone Buddy! Se você trabalha remoto com outros países você PRECISA dessa extensão!


📈 42.22 Punkte
🔧 Programmierung

🔧 10 Livros que Todo(a) Programador(a) deveria ler


📈 42 Punkte
🔧 Programmierung

🔧 O mínimo que todo programador deveria saber de encoding e charset


📈 42 Punkte
🔧 Programmierung

🔧 Sites, Newsletters e Podcasts que todo dev deveria conhecer


📈 42 Punkte
🔧 Programmierung

🔧 Mulheres no Mercado de Trabalho : Dados e Reflexões. O que podemos aprender no filme "Barbie".


📈 39.13 Punkte
🔧 Programmierung

📰 Ikea apuesta por el ‘live shopping’ con una presentadora generada por IA


📈 35.88 Punkte
📰 IT Security Nachrichten

🔧 Por teoria ou por instinto.


📈 35.88 Punkte
🔧 Programmierung

🔧 Macros no Flutter/Dart: A Revolução da Metaprogramação que Você Esperava


📈 35.62 Punkte
🔧 Programmierung

🔧 10 Livros sobre Sistemas Operacionais que vale a pena você ler


📈 35.62 Punkte
🔧 Programmierung

matomo