TDC2016SP - Crystal-lang. Tipo o Ruby, mas é C.
-
Upload
tdc-globalcode -
Category
Education
-
view
87 -
download
0
Transcript of TDC2016SP - Crystal-lang. Tipo o Ruby, mas é C.
pen4education
Ruby – Crystal-lang.Tipo o Ruby, mas é C.
Vitor D’Amico
pen4education
Sobre mim
<< Vitor D'Amico
pen4education
Agenda
Crystal-lang✔ Por quê inventar o Crystal?✔ Objetivos do Crystal!✔ Mais uma linguagem?✔ Benchmarcks. Yey!✔ Live Code
pen4education
pen4education
Versão atual v0.18.7 03/07/2016
Lançamento v0.1 19/06/2014
Compilador Crystal 14/11/2013
Primeiro commit público 04/09/2012
Histórico
pen4education
Por quê inventar o Crystal?
Nós amamos a eficiência de escrever código em Ruby.
pen4education
Nós amamos a eficiência de executar código em C.
Por quê inventar o Crystal?
pen4education
Por quê inventar o Crystal?
Nós queremos o melhor dos dois mundos.
pen4education
Por quê inventar o Crystal?
✍� Nós queremos que o compilador nos entenda sem termos que especificar tipos em todos os lugares.
pen4education
Por quê inventar o Crystal?
Nós queremos OOP completa.
pen4education
Por quê inventar o Crystal?
❤� Ah! E nós não queremos escrever em C para fazer o código ficar mais rápido.
pen4education
Objetivos do Crystal!
Ter uma sintaxe similar à Ruby(porém compatibilidade com a mesma não é uma meta)
pen4education
Objetivos do Crystal!
Checagem estática de tipos mas sem
ter de especificar o tipo das variáveis ou
argumentos de método.
pen4education
Objetivos do Crystal!
Poder chamar código em C
escrevendo bindings ao mesmo em
Crystal.
pen4education
Objetivos do Crystal!
Ter avaliação em tempo de
compilação e geração de código, para
evitar código repetido. (boilerplate)
pen4education
Objetivos do Crystal!
Compilar em código nativo eficiente.
pen4education
Mais uma linguagem?
pen4education
Mais uma sintaxe?
Mais uma documentação?
Mais uma biblioteca básica?
Mais um ecossistema?
Mais uma comunidade?
pen4education
✔ Mais uma sintaxe?
Mais uma documentação?
Mais uma biblioteca básica?
Mais um ecossistema?
Mais uma comunidade?
pen4education
✔ Mais uma sintaxe?
✔ Mais uma documentação?
Mais uma biblioteca básica?
Mais um ecossistema?
Mais uma comunidade?
pen4education
✔ Mais uma sintaxe?
✔ Mais uma documentação?
✔ Mais uma biblioteca básica?
Mais um ecossistema?
Mais uma comunidade?
pen4education
✔ Mais uma sintaxe?
✔ Mais uma documentação?
✔ Mais uma biblioteca básica?
✔ Mais um ecossistema?
Mais uma comunidade?
pen4education
✔ Mais uma sintaxe?
✔ Mais uma documentação?
✔ Mais uma biblioteca básica?
✔ Mais um ecossistema?
✔ Mais uma comunidade?
pen4education
Benchmarks. Yey!
https://github.com/kostya/benchmarks
pen4education
Live Code!
pen4education
• crystal http_server.cr
• ruby -run -e httpd . -p 8080
• ab -n 1000 -c 100 'http://127.0.0.1:8080/'
Live Code FallBack
pen4education
Crystal-lang:
Website: http://crystal-lang.org/Emulador NES: https://github.com/romeroadrian/nes.crBenchmarks: https://github.com/kostya/benchmarksProjetos: https://github.com/veelenga/awesome-crystal#web-frameworksExemplos: https://github.com/askn/crystal-by-example
Vitor D’Amico:
Email: [email protected]: https://github.com/vitormd
Obrigado!