Slide 1

Slide 1 text

Crystal - 開発進捗とロードマップ @pine613

Slide 2

Slide 2 text

プロフィールとか o ID / HN: @pine613 o Crystal-JP 運営 o crenv (Crystal Version Manager) 作者 o 趣味で最近かく: JavaScript / Crystal o Mobile Factory, Inc

Slide 3

Slide 3 text

はじめに Crystal を触ったこと無い方は この機会に是非インストールをお願いします! o インストール方法 crenv / brew / apt / yum / pacman / etc ... o 公式ドキュメントの日本語翻訳があります! http://ja.crystal-lang.org/docs/

Slide 4

Slide 4 text

もくじ 1. Crystal について 2. Crystal の基本機能 3. Crystal の最近の開発状況 4. Crystal の今後のロードマップ 5. まとめ

Slide 5

Slide 5 text

Crystal とは ? 5 ○ 高い表現力 ○ 高い生産性 × 遅い 同時に実現 C 言語 Ruby ○ 非常に高速 × 表現力が乏しい × 生産性が低い

Slide 6

Slide 6 text

Crystal について 9 Ruby 風のシンタックス 9 型推論ベースの静的言語 9 高速なネイティブコードを出力 9 最新版: v0.9.0 (2015/10/22 現在)

Slide 7

Slide 7 text

Crystal の基本機能 1. 基本文法 2. 標準組み込みクラス 3. 標準ライブラリ 4. Ruby との文法上の違い

Slide 8

Slide 8 text

Crystal の基本文法 9 if / unless 9 case ~ when 9 do ~ end / { ~ } 9 class / module 9 @ / @@ / CONST

Slide 9

Slide 9 text

Crystal の組み込みクラス 9 Nil 9 Bool 9 Integer 9 Float 9 Char 9 String 9 Symbol 9 Array 9 Hash 9 Range 9 Regex 9 Tuple 9 Proc etc ...

Slide 10

Slide 10 text

Crystal の標準ライブラリ 9 IO 9 Socket 9 TCPServer 9 File 9 Dir 9 JSON 9 XML 9 YAML 9 Markdown 9 Base64 9 OpenSSL 9 Digest 9 OAuth2 etc ...

Slide 11

Slide 11 text

Ruby との文法上の違い 9 型が存在することに起因するもの 9 型の無い配列・ハッシュが作れない 9 型アノテーション / ジェネリクスの存在 9 型によるオーバーロードが可能 9 マクロの存在

Slide 12

Slide 12 text

Crystal の最近の開発状況 9 v0.7.5 (2015/07/31) ← 第 1 回 東京 Crystal 勉強会 9 v0.8.0 (2015/09/19) 9 v0.9.0 (2015/10/17) ← 第 2 回 東京 Crystal 勉強会 2013 年 2015 年

Slide 13

Slide 13 text

Crystal の最近の開発状況 1. パッケージマネージャー刷新 2. フォーマッタの組み込み 3. Ruby から移植された問題のある仕様の削除 4. ドキュメント生成ツールのデザインの近代化

Slide 14

Slide 14 text

パッケージマネージャー刷新 9 旧 Projectfile によるパッケージマネージャー → 廃止 9 YAML 設定ベースの shards 導入 9 セマンティックバージョニングに基づく 分散型のパッケージマネージャー 9 より実用的に Crystal を利用できるようになった

Slide 15

Slide 15 text

パッケージマネージャー刷新 9 YAML ベース 9 Git の tag を使った バージョニング 9 比較演算可能 (例: =>, ~>, < )

Slide 16

Slide 16 text

フォーマッタの追加 9 コンパイラにフォーマッタが組み込まれた (v0.9.0) 9 crystal tool format コマンドで一括統一 9 ソースコードのフォーマット自動整形 9 コーディング規約の統一が容易 9 Go 言語の go fmt と同じ

Slide 17

Slide 17 text

フォーマッタの追加 整形前 整形後

Slide 18

Slide 18 text

Ruby から移植された仕様の削除 9 length / count 廃止 → size に統一 9 後置 while / until 削除 → イテレーターを利用 9 8 進数プレフィックス `0` 廃止 → `0o` へ統一 9 StringIO → MemoryIO 9 Time.to_i / Time.to_f → Time.epoch / Time.epoch_f

Slide 19

Slide 19 text

ドキュメント生成ツールの近代化 以前 (~ v0.7.7) 最新版

Slide 20

Slide 20 text

Crystal のロードマップ 9 マルチスレッド周り 9 標準ライブラリの充実 9 バグ修正 9 詳細は公式の Wiki を参照 9 https://github.com/manastech/crystal/wiki/Roadmap

Slide 21

Slide 21 text

Crystal 開発資金を募集中 9 募金により v1.0 までの時間が短縮されるかも ??? 9 https://salt.bountysource.com/teams/crystal-lang