Crystal 言語の 2016年を振り返ってみて

[Crystal 言語の 2015年を振り返ってみて](http://qiita.com/yahhonob/items/dd115c8ca040c7634a9a)の続きです。
2016年6月25日に Crystal-JP 有志で発刊された["Crystalの本”](https://gumroad.com/l/SlTpy#)に掲載した内容を詳細にしています。

[Crystal言語](http://crystal-lang.org/) 開発の歴史は、2016年4月に開発元の [Manastech社](http://manas.com.ar/tools/)初めての Blog [The story behind #CrystalLang](http://manas.com.ar/blog/2016/04/01/the-story-behind-crystal.html) 掲載により、詳細に明らかにされました。 2011年6月 Ary Borenszweig さんの考案で始まり、その後主として Juan Wajnerman さん、 Brian J. Cardiff さんが加わり、GitHub でのご存知のようなプロジェクトに発展しました。

以下に 、この Crystal言語の開発と発展に貢献された開発関係者と、そして一緒に歩んだコミュニテイの素晴らしい成長発展の歴史を、再度記録に残してみたいと思います。

2015年以前の状況は[Crystal 言語の 2015年を振り返ってみて](http://qiita.com/yahhonob/items/dd115c8ca040c7634a9a)をご覧ください。

#2015年12月クリスマスから振り返ってみます

12月　[Crystal Advent Calendar (JP)](http://www.adventar.org/calendars/800)チャレンジ！
　　　[「20年目のRuby の真実」インタビュー](http://www.ipsj.or.jp/magazine/ruby.html)で　笹田さん、Matz さんが　Crystal に言及
　　　[RubyKaigi2015 Tokyo](http://rubykaigi.org/2015)で Heroku の Will さんが  [Crystal紹介](http://rubykaigi.org/2015/presentations/leinweber) 　[こちらyoutube video(英語）](https://www.youtube.com/watch?v=7dwDzlVI7OU)
　　　[作者　Future of Crystal Blog](http://crystal-lang.org/2015/12/24/the-future-of-crystal.html) を[Crystal Advent Calendar (JP)](http://www.adventar.org/calendars/800)に合わせて発表。
　　　[5t111111さん日本語翻訳](http://fiveteesixone.lackland.io/2015/12/28/the-future-of-crystal/)
　　　[Hacker News](https://news.ycombinator.com/item?id=10803635) で プログラム言語の将来として議論のトリガーになった
　　　ロシア Kostya さんから[プロダクションに採用して1か月ノートラブルで稼働している](https://groups.google.com/forum/?fromgroups#!topic/crystal-lang/fXTAMilSo_Q)、
　　　　　というクリスマスメッセージ！
　　　Ver 0.10 がクリスマスリリース　新コンパイラ方向へ修正が入る
　　　フランスの ysbaddaden さんがフルスペックの Ruby On Rails ライク [frost](https://github.com/ysbaddaden/frost) を
　　　　　開発者向けクリスマスリリース
　　　師走も終わりかけたころ、Jruby9K/Truffle/Graal 開発者の Chris Seaton さんが[#IRC](http://irclog.whitequark.org/crystal-lang/)に顔を出すようになりました。

## ２０１６年
１月　[Ver 0.11 リリース](https://crystal-lang.org/2016/01/23/crystal-0.11.0-released.html)　fiber context switch が inline assembly で実装されパフォーマンス改善がされた。
　　　[Blog: Comparing Performance of Crystal 0.11.1 with other Languages](http://stefan-marr.de/downloads/crystal.html) で Jruby9K/Truffle/Graal 開発者の Chris Seaton さんが Crystal 言語をJruby9K とベンチマークし公表。　
　
２月　Ver 0.12 リリース
　　　「東京Crystal勉強会」[第3回](http://crystal.connpass.com/event/22754/)を実施。
　　　若杉（@5t111111）さんが CodeIQ で自身の発表と様子を[レポート](https://codeiq.jp/magazine/2016/02/37048/)。
　　　Matz さんが「東京Crystal勉強会」の様子を[ツイート](https://twitter.com/yukihiro_matz/status/694757899764011008)。
　　　Matz さんが　Ruby extention in Crystal のCrystal_Ruby を [ツイート](https://twitter.com/yukihiro_matz/status/694758126902337536)。
　　　The Changelog にAry さん、Waj さん招待され [Talk](http://5by5.tv/changelog/192) を行った
　　　Serdar Dogruyol @sdogruyol さんが イスタンブール [ProgGunlen]() で[Kemal 紹介](http://slides.com/sdogruyol/crystal-2#/)。
　　　@Rainforestaqaさんが量産への[Crystal言語採用を公開](https://twitter.com/rhs/status/698577956323532800)！
　　　アルゼンチンで初の[Crystal Meetup #1](https://www.youtube.com/watch?v=tVwnduD6V-o) が開催された。
　　　@Ajilopezさんが[Crystal言語からJavascriptへ変換するCrystJSコンパイラ開発](https://github.com/ajlopez/CrysJS)をスタート
　　　@Ajilopezさんは[C#でCrystal言語のインタープリタ開発CrysSharp](https://github.com/ajlopez/CrysSharp)にも着手！

３月　Ver 0.13 Ver 0.14 リリース　built-in playground が梱包された。Playground で変数のタイプがどう推定されているかトレースできるようになった。
　　　YouTube で [Crystallanguage Hangout 質疑](https://twitter.com/CrystalLanguage/status/699322859542470656)をユーザとAry さんが会話。
　　　 Serdar Dogruyol @sdogruyol さんが [ViennaRB](http://www.vienna-rb.at/) で[Kemal を紹介](https://twitter.com/sdogruyol/status/710029647153655808)。
　　　[A talk by Mark Ranallo :how to create command line utilities using the Crystal programming language at Full Stack Talks](https://www.youtube.com/watch?v=Tpw1vcxw290)
　　　@Pine613 さんが歌舞伎座 Tech [「異種プログラミング言語格闘勉強会」](http://togetter.com/li/954081)で[紹介](https://speakerdeck.com/pine613/crystal-yan-yu-falseshao-jie-ge-wu-ji-zuo-dot-tech-number-9)。[”歌舞伎座.tech#9 の Crystal の発表死霊です。供養してください。”](https://twitter.com/pine613/status/711458132505956353)。
　　　[Ruby風に書ける＆安心コンパイル！注目言語「Crystal」に触れてみよう](http://liginc.co.jp/252622)
　　　@Vagmi さんが [RubyConf India 2016 で紹介](https://twitter.com/yahhonob/status/713609851994124288)。
　　　[Ruby On Ales 2016](https://ruby.onales.com/)でWillさんが[Introducing the Crystal Programming Language by Will Leinweber ](https://www.youtube.com/watch?v=5QjvGuL4Opo)をプレゼン、built-in playgroundをbook機能に使った初めての事例。

４月　Ary さんが恒例の [AprilFool Joke を発表](https://github.com/crystal-lang/crystal/issues/2394)、英語よりEsperanto語が厳格で、今後 Crystal 言語はEsperanto 対応するとのことであった。
　　　Ruby Argentina User Group で[Crystal Meetup](https://twitter.com/yahhonob) を初開催。
　　　開発元の [Manastech社](http://manas.com.ar/tools/)初めての Blog [The story behind #CrystalLang](http://manas.com.ar/blog/2016/04/01/the-story-behind-crystal.html) 掲載
　　　Ver 0.15 リリース
　　　Windows10 preview Bash_on_windows で[Crystal コンパイラの動作が確認された](https://twitter.com/umurgdk/status/717841832491794432)
　　　@Zamith さんがbosto.rbで[紹介](https://twitter.com/subvisual/status/720025834631884800)
　　　[atom テキストエデイタ用ツール充実　atom-crystal ](https://github.com/atom-crystal)
　　　[ボスが実務で使うツール類とかにガツガツCrystal組み込んできてるなー。](https://twitter.com/tbpgr/status/722622888927309824)
　　　なんと！　[Crystal言語のアップコンパチ言語ONYX 開発が始まった！！](https://twitter.com/yahhonob/status/717103685268975616)

５月　アルゼンチンで2回目の [Crystal Meetup #2](http://manas.com.ar/blog/2016/05/23/second-crystal-meetup-recap.html) が開催され、[オンライン中継](https://www.youtube.com/watch?v=D7GwffkRj1I)された。
　　　Ver 0.16 Ver 0.17 リリース　The new global type inference algorithm が実装された。現時点ではコンパイル速度は大きく変化していないが、将来の高速コンパイラ実現とREPL実装への布石がされた。型宣言が一部記述が必要になることに対する賛否議論はあったが、結果を見ると型推定が準形式的になることで、プログラム言語全体がロバストになり、2015 年にbug 指摘やenhance 要望がペンデイングされていた案件がスムーズに解決され、織り込まれた。また新規バグ指摘に対する発見と修正の速度が速くなった。さらに言語仕様がより準形式的に見えることで、新たな言語仕様拡張強化検討が飛躍的に早まった。これに関しては、Crystal言語の新機能追加の考え方が明らかに変わった。昨年はRubyのバージョンアップでの機能追加の様子を見て織り込んでいこうという慎重トーンであって、コンカレント機能対応なども消極的（慎重）であったが、春コンパイラ構造改定以降は吹っ切れたように進化を織り込んでいる。pararell機能も今年かなり期待が持てる（すでに検討開始中）
　　　@tbpgrさんが[Crystal入門前編](http://qiita.com/tbpgr/items/c70bbdb28824ddbb3a78)をQiita公開
　　　[MAdrid.rb](http://www.madridrb.com/topics/crystal)で紹介された
　　　[Qiita:GitHub からみたプログラミング言語の動向](http://qiita.com/yahhonob/items/de92b515f87dfa484318)でCrystal言語がどのくらい注目されているかをまとめました
　　　東京Ruby会議11でksssさんが[Rubyに型があると便利か](https://speakerdeck.com/ksss/rubynixing-gaarutobian-li-ka)を講演、そのなかで、型推定事例でGolangとCrystalを引用。
　　　[Sidekicq](http://sidekiq.org/) の作者 Mike Perham さんがSidekicq.cr の基本を取り組み開始から5日で[実装公開](https://twitter.com/mperham/status/740322245831098372)、経験を[Blog化](http://www.mikeperham.com/2016/06/14/test-driving-sidekiq-and-crystal/)したことで Crystal 言語の注目が高まった。その後 3週間でほぼ全機能を移植公開。Rubyist の適応容易性を示す事例となっている。

　　　この影響の一つとしてブラジルの Ruby 伝道師 AkitaOnRails さんが [Crystal - MangaReader Downloader](http://www.akitaonrails.com/2016/06/06/manga-downloadr-porting-from-crystal-to-ruby-and-a-bit-of-jruby) を Ruby版から移植公開、その経験を[Blog化](http://www.akitaonrails.com/2016/06/06/manga-downloadr-porting-from-crystal-to-ruby-and-a-bit-of-jruby)、さらに [Blog：Flirting with Crystal, a Rubyist Perspective](http://www.akitaonrails.com/2016/05/31/flirting-with-crystal-a-rubyist-perspective) で "Crystal has Node.js/Javascript-like Event Loop in the form of a Fiber Scheduler and a Go-like Channel/CSP mechanism" と示して実装トライを提示、Crystal 言語の有用性を示した。最近のBlogなどでの紹介の特徴は、Crystal言語のGoライクなConcuurency機能を評価、紹介する事例が増えている。

６月　Matz さんが、その Blog を[リツイート](https://twitter.com/yukihiro_matz/status/738377138525458438)。
　　　Ver.0.18 リリース、 言語仕様拡張は Python, Swift など他言語の良い点は積極的に取り込む方向と、その早い対応が示された。

　　　Matz さんの 昨年6月の Crystal 言語関係リツイートはredditでブームを引き起こしたが、きしくも、その1 年後の今回リツイートと Mike Perham さんの Sidekicq.cr 発表の相乗効果で [Ver. 0.18 の発表の反応](https://crystal-lang.org/2016/06/14/crystal-0.18.0-released.html)は、かつてない広がりを見せ、Crystal 言語の開発とコミュニテイの広がりが新たな段階へと移行したことを示しました。
　　　CodeTriageで[Crystal言語サポート](https://www.codetriage.com/crystal-lang/crystal)
　　　@g3ortegaさんが[Visual Studio でCrystalをサポート](https://github.com/g3ortega/vscode-crystal)
　　　[5 new programming languages to watch out for in 2016](http://www.techworm.net/2016/06/5-new-programming-languages-watch-2016.html)で紹介される
　　　JAVAWORLD電子版で[Fresh and functional: 5 new languages to watch](http://www.javaworld.com/article/3076097/application-development/fresh-and-functional-5-new-languages-to-watch.html#tk.rss_all)でCrystalが紹介される
　　　[reddit: App Servers benchmark: Ruby, Node, Elixir, GO, Java, Crystal](https://www.reddit.com/r/programming/comments/4ods83/app_servers_benchmark_ruby_node_elixir_go_java/)で最近話題の言語と、それもConcurrent機能が同列で比較される！　この時点ではCrystal言語が最速。
　　　ParisRubyで @soveran と @sdogruyol さんが[KemalとCrystalを紹介](https://twitter.com/abelar_s/status/740079682629013504)
　　　boulderRubyでTdd Resdekさんが[紹介](https://twitter.com/sprsmpl/status/738793104686256128)
　　　drug2016 で @Aemadrid さんが[紹介](http://www.slideshare.net/aemadrid/crystal-lightning-talk-drug-2016)
　　　[RubyC2016 Kyiv](http://rubyc.eu/)でAaron Cruzさんが“Ruby Alternatives"でCrystalを紹介、[6 Ruby questions to Aaron Cruz](http://rubyc.eu/posts/54)は発表事前インタビュー記事。
　　　GORUCO 2016 でWill Leinweberさんが[Introducing the Crystal Programming Language](https://www.youtube.com/watch?v=oC9IknG40po ) をプレゼン。WillさんはCrystalコンパイラのbuilt-in Playgroundを活用した理解しやすいオンライントレーニング資料をいままでも、作成、公開、利用している。これは他言語に見られない有効ツールとなってきている。

　　　Crystal-JP　有志で[”Crystalの本”](https://twitter.com/asterite/status/745681789692293120)を[秋葉原　技術書店](https://techbookfest.org/)で30部販売、[3時間で売り切れ](https://twitter.com/ucmsky/status/746726542248579072)！
　　　急きょ[PDFダウンロード販売](https://gumroad.com/l/SlTpy#)を開始！

# ２０１６年６月時点を数字でまとめると以下です。
# [GitHub](https://github.com/manastech/crystal) 5210star!
# [Crystalshards](https://crystalshards.herokuapp.com/) ライブラリ 819!
この半年間でまた倍近くなりました！
# [Qiita でTag:Crystal 投稿が 107! ](http://qiita.com/search?utf8=%E2%9C%93&q=tag%3Acrystal&sort=created)
# [A list of programming languages that are actively developed on GitHub](https://github.com/showcases/programming-languages) で Crystal は Swift, Go を含めても なんと13番目にランクされています!

ここから、新しい出来事を継続記載します

７月　@sdogruyolさんが[Cuury-on 2016（旧RuPy Conference)](http://polyconf.com/agenda/) で[Kemal: Building Lightning Fast Web Applications With Crystal](http://www.slideshare.net/sdogruyol/kemal-building-lightning-fast-web-applications-with-crystal)を3時間セミナー([Video](https://www.youtube.com/watch?v=KJB-nAoRSr8) ) 

　　　昨年12月 Crystalプログラムのプロダクション利用実績を報告したロシアのKostyaさんが、[Fiberを使った別の事例(100万アクセス／日処理）採用を報告](https://groups.google.com/forum/?fromgroups=#!topic/crystal-lang/fXTAMilSo_Q)、RubyとCelluloidを併用した事例よりはるかに動作が安定とのこと

　　　7月15日に[Crystal-Remote-Meetup](https://www.bigmarker.com/remote-meetup/0-Crystal-Remote-Meetup)が開催、世界４拠点から同時中継されました！かなり画像、音質よかったです！　1.0までのロードマップでは、下記が実現された時期が1.0だとのこと。Nomore_Breakingchange,Parallelism,Stable_Stdlib,Unfied_DB_API,Windows_support,more_Generics_Inheritance,[]of Object が上げられました（後ろの二つは詳しくはビデオをご覧ください;;)、たぶんここにはコンパイル速度アップ、REPL対応が含まれると予想します。使われたスライドは[Aryさん](https://twitter.com/asterite/status/754021349031575552)、[Serdar Dogruyolさん](https://twitter.com/sdogruyol/status/754020527778439168)、[Julien Porterierさん](https://twitter.com/ysbaddaden/status/754013790631497728)
　　　ちなみに、ミーテイングリアルタイム参加は５４名、注目は、録画ヴィデオが１２時間で１０００アクセスを超えたことです！　メジャーな動向からは些細な数字かも知れませんが、６月以降やはり、Crystal言語の流れは第２段階に入っています。
　　　@costajob さんが[Go言語で過去作成したapache-logparser](https://github.com/costajob/apache-log-parser)をCrystal言語で[書き直してベンチマーク](https://github.com/costajob/apache_log_parser)、処理速度は同等、メモリ消費量は1/3だった。
     [A Quick Dive into the Crystal Programming Language](https://www.sitepoint.com/a-quick-dive-into-the-crystal-programming-language/) 


８月　@sdogruyolさんが @CODESHIPで[An Introduction to Crystal: Fast as C, Slick as Ruby](https://blog.codeship.com/an-introduction-to-crystal-fast-as-c-slick-as-ruby/)を掲載
　　　その@sdogruyolさんの記事が [Hacker News](https://news.ycombinator.com/item?id=12223395)で取り上げられ、24時間で400POSTを超える話題に！　Crystalを事例に、Cに置き代わる Modern言語はどうあるべきか？という広い話題作りにできたことが要因。Go,Rust,Swift 共々の議論の中でも耐えれるほどにCrystal言語が成長し、認められてきました。


#また来年２０１７年がたのしみですね(^^;)
追記
# *２０１7年１月時点を数字でまとめると以下です。
# [GitHub](https://github.com/manastech/crystal) 7300star!
# [Crystalshards](https://crystalshards.herokuapp.com/) ライブラリ 1494!
この半年間でさらに倍近くなりました！
# [Qiita でTag:Crystal 投稿が 131! ](http://qiita.com/search?utf8=%E2%9C%93&q=tag%3Acrystal&sort=created)
# [A list of programming languages that are actively developed on GitHub](https://github.com/showcases/programming-languages) で Crystal は Swift, Go を含めても なんと11番目にランクアップしました!

追記2
# *２０１7年１0月時点を数字でまとめると以下です。
# [GitHub](https://github.com/manastech/crystal) 9165star!
# [Crystalshards](https://crystalshards.herokuapp.com/) ライブラリ 2275!
# [Qiita でTag:Crystal 投稿が 141! ](http://qiita.com/search?utf8=%E2%9C%93&q=tag%3Acrystal&sort=created)
# [A list of programming languages that are actively developed on GitHub](https://github.com/showcases/programming-languages) で Crystal は Swift, Go を含めても 昨年からあいかわらず12番目にランクされ、その上位はよく知られているプログラム言語ばかりです。
# 2017年最大のエポックは[TIOBE Index](http://www.tiobe.com/tiobe_index) でCrystal言語が8月になんと31位にランクインしたことです！

#[こちらがGit のStar数の過去からの伸びを示すグラフです](http://www.timqian.com/star-history/#crystal-lang/crystal)。Githubには過去の履歴がすべて残っています。

#続きを[ドラマ仕立てで見た、Crystal 言語の2017年](https://qiita.com/yahhonob/items/6a5e7e22ce79b26497f9)に掲載しています。

＊英文blogから転載しています
[Crystallian](https://github.com/nob-suz/Crystallian/wiki) という英文での Crystal情報Web も公開しています。こちらもよろしくお願いします。
[Crystal Advent Calendar (JP)](http://www.adventar.org/calendars/800)の[１２月５日](http://qiita.com/yahhonob/items/d46a737ecadca1813b37)も関連記事を書いています。

#Crystal 関連リンク
[Crystal 言語周辺の 2017年は？（妄想）](http://qiita.com/yahhonob/items/a24dee215c70425196d3)
[これから Crystal を始める方へ: Crystal 日本語情報まとめ](http://qiita.com/pine613/items/7407e56771b504bed82f)　by Pine613 さん

[Crystalの本](https://gumroad.com/l/SlTpy#)がCrystal-JPからPDF出版されました！
売り上げはささやかですが、[Bountysource Crystal　活動支援](https://salt.bountysource.com/teams/crystal-lang)に寄付される予定です。
購入を考えられるのに以下の目次を参考にしてください
目次
第 1 章 Crystal 開発環境の構築
第 2 章 Ruby とは似て非なる Crystal
第 3 章 Metaprogramming Crystal Introduction
第 4 章 Crystal と Web
第 5 章 Crystal で Lisp 処理系を実装しよう
第 6 章 Crystal の開発過程とコミュニテイの盛り上がりを振り返ってみて
第 7 章 あとがき 


#Crystal コミュニテイ
[Crystal-JP](http://crystal.connpass.com/)
[Crystal 情報交換用 Slack チーム Crystal-jp](https://crystal-jp.slack.com)
[-> 登録：Crystal-jp.slack.com 日本語で Crystal の情報交換を行うチャットルームです。ご自由にお入りください](http://crystal-jp.pine.moe/)
[Gitter Crystal 情報交換用  Crystal-jp]
(https://gitter.im/crystal-jp/issues)
[Crystalに関する意見や質問、議論などをする場所] (https://github.com/crystal-jp/issues)