ruby 風シンタックスな静的言語 crystal の紹介

15
Crystal Ruby 風シンタックスな静的言語の紹介 水音ぴね

Upload: kazuki-matsushita

Post on 08-Aug-2015

463 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Ruby 風シンタックスな静的言語 Crystal の紹介

CrystalRuby 風シンタックスな静的言語の紹介

水音ぴね

Page 2: Ruby 風シンタックスな静的言語 Crystal の紹介

目次

•  Crystal とは ?

•  Crystal と Ruby の相違点

•  Crystal の使い所とは ?

•  Crystal の開発進捗

Page 3: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal とは ?

ヒトコトで言うと …?

3  

u  Ruby の表現力

u  C の速度

を兼ね備えた言語

Page 4: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal 詳細

•  Ruby に酷似した syntax

•  静的型付け / コンパイラ言語– LLVM ベース

•  非常に高速

•  C 言語資源の再利用性を重視4  

Page 5: Ruby 風シンタックスな静的言語 Crystal の紹介

Ruby  の復習  

5  

•  動的型付け

•  インタプリタ / JIT コンパイラで動作

•  Ruby on Rails がとても有名– ORM のチューニングが大変なことで有名

•  Pascal / Delphi 系 シンタックス

Page 6: Ruby 風シンタックスな静的言語 Crystal の紹介

Ruby  syntax  require ‘sinatra’

get ‘/’ do name = if params[:name] params[:name] else ‘anonymous’ end ” Hello world, #{name} ” end 6  

# 制御構文に括弧はない

# メソッド呼び出しのカッコを省略できる

# end 地獄

Page 7: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal  syntax  app  =  App.new            app.route  “/”,  do  |req|          name  =  if  req.get.has_key?  “name”                  req.get[“name”]          else                  “anonymous”          end          ok("Hello  world,  #{name}")  end        app.run(ENV[“PORT”].to_i)   7  

# 入らなかったので require 省略してます

# end 地獄は健在

# Hash の key が無いと exception # (Ruby よりちょっと厳しい)

# to_i 使える!

Page 8: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal  syntax  ≒ Ruby  syntax  

8  

•  ほとんど同じだって Matz も言ってる!!

出展: https://twitter.com/yukihiro_matz/status/610842781091672064

Page 9: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal と Ruby の相違点

9  

Ruby 比較項目 Crystal

遅い 実行速度 早い

可能(FFI / Extension) C との連携 容易

(それを前提に設計)

中央管理(rubygems.org)

ライブラリリポジトリ

分散(git)

Bundler 依存モジュール管理 コンパイラに内蔵

安定フェーズ(v2.2.x) 安定性 開発フェーズ

(v0.7.x)

Page 10: Ruby 風シンタックスな静的言語 Crystal の紹介

Crystal  の使い所  

10  

•  速度が求められる場所

•  C / C++ からの段階的移植

•  Ruby エンジニアが多い環境での新規採用

•  クロスプラットフォームで高速な CLI ツール(現状の Golang の領域)

もちろん、安定版という条件ですが

Page 11: Ruby 風シンタックスな静的言語 Crystal の紹介

11  

Crystal の開発進捗について

※ 『 のんのんびより りぴーと 』 は 7月6日 スタート!

Page 12: Ruby 風シンタックスな静的言語 Crystal の紹介

•  最新版: v0.7.3 (2015/06/07)•  セルフホスティングコンパイラ

–  ある仕様 FIX & 安定動作するフェーズ

•  安定した開発

12  

[Crystal 進捗] 全般

Page 13: Ruby 風シンタックスな静的言語 Crystal の紹介

•  Linux– 公式サポート: Debian / Ubuntu / RHEL / CentOS

•  Mac OS X– Homebrew tap を提供

•  Windows– 未サポート– GitHub に Issue はある ... 13  

[Crystal 進捗] 対応環境

Page 14: Ruby 風シンタックスな静的言語 Crystal の紹介

•  コンパイラに内蔵–  Golang と同じかんじ

•  依存関係は Projectfile に記述–  Cpanfile, Gemfile と同じかんじ

•  分散型 リポジトリ–  GitHub を直接参照 / Golang と(ry

14  

[Crystal 進捗] パッケージマネージャ

Ruby ... gem, Bundler Perl ... cpanm, Carton

Page 15: Ruby 風シンタックスな静的言語 Crystal の紹介

Fin.