TDC2016SP - Crystal-lang. Tipo o Ruby, mas é C.

Post on 20-Mar-2017

87 views 0 download

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: vitordami@gmail.comGitHub: https://github.com/vitormd

Obrigado!