Crystal 言語の 2015年を振り返ってみての続きです。
2016年6月25日に Crystal-JP 有志で発刊された"Crystalの本”に掲載した内容を詳細にしています。
Crystal言語 開発の歴史は、2016年4月に開発元の Manastech社初めての Blog The story behind #CrystalLang 掲載により、詳細に明らかにされました。 2011年6月 Ary Borenszweig さんの考案で始まり、その後主として Juan Wajnerman さん、 Brian J. Cardiff さんが加わり、GitHub でのご存知のようなプロジェクトに発展しました。
以下に 、この Crystal言語の開発と発展に貢献された開発関係者と、そして一緒に歩んだコミュニテイの素晴らしい成長発展の歴史を、再度記録に残してみたいと思います。
2015年以前の状況はCrystal 言語の 2015年を振り返ってみてをご覧ください。
#2015年12月クリスマスから振り返ってみます
12月 Crystal Advent Calendar (JP)チャレンジ!
「20年目のRuby の真実」インタビューで 笹田さん、Matz さんが Crystal に言及
RubyKaigi2015 Tokyoで Heroku の Will さんが Crystal紹介 こちらyoutube video(英語)
作者 Future of Crystal Blog をCrystal Advent Calendar (JP)に合わせて発表。
5t111111さん日本語翻訳
Hacker News で プログラム言語の将来として議論のトリガーになった
ロシア Kostya さんからプロダクションに採用して1か月ノートラブルで稼働している、
というクリスマスメッセージ!
Ver 0.10 がクリスマスリリース 新コンパイラ方向へ修正が入る
フランスの ysbaddaden さんがフルスペックの Ruby On Rails ライク frost を
開発者向けクリスマスリリース
師走も終わりかけたころ、Jruby9K/Truffle/Graal 開発者の Chris Seaton さんが#IRCに顔を出すようになりました。
2016年
1月 Ver 0.11 リリース fiber context switch が inline assembly で実装されパフォーマンス改善がされた。
Blog: Comparing Performance of Crystal 0.11.1 with other Languages で Jruby9K/Truffle/Graal 開発者の Chris Seaton さんが Crystal 言語をJruby9K とベンチマークし公表。
2月 Ver 0.12 リリース
「東京Crystal勉強会」第3回を実施。
若杉(@5t111111)さんが CodeIQ で自身の発表と様子をレポート。
Matz さんが「東京Crystal勉強会」の様子をツイート。
Matz さんが Ruby extention in Crystal のCrystal_Ruby を ツイート。
The Changelog にAry さん、Waj さん招待され Talk を行った
Serdar Dogruyol @sdogruyol さんが イスタンブール ProgGunlen でKemal 紹介。
@Rainforestaqaさんが量産へのCrystal言語採用を公開!
アルゼンチンで初のCrystal Meetup #1 が開催された。
@AjilopezさんがCrystal言語からJavascriptへ変換するCrystJSコンパイラ開発をスタート
@AjilopezさんはC#でCrystal言語のインタープリタ開発CrysSharpにも着手!
3月 Ver 0.13 Ver 0.14 リリース built-in playground が梱包された。Playground で変数のタイプがどう推定されているかトレースできるようになった。
YouTube で Crystallanguage Hangout 質疑をユーザとAry さんが会話。
Serdar Dogruyol @sdogruyol さんが ViennaRB でKemal を紹介。
A talk by Mark Ranallo :how to create command line utilities using the Crystal programming language at Full Stack Talks
@Pine613 さんが歌舞伎座 Tech 「異種プログラミング言語格闘勉強会」で紹介。”歌舞伎座.tech#9 の Crystal の発表死霊です。供養してください。”。
Ruby風に書ける&安心コンパイル!注目言語「Crystal」に触れてみよう
@Vagmi さんが RubyConf India 2016 で紹介。
Ruby On Ales 2016でWillさんがIntroducing the Crystal Programming Language by Will Leinweber をプレゼン、built-in playgroundをbook機能に使った初めての事例。
4月 Ary さんが恒例の AprilFool Joke を発表、英語よりEsperanto語が厳格で、今後 Crystal 言語はEsperanto 対応するとのことであった。
Ruby Argentina User Group でCrystal Meetup を初開催。
開発元の Manastech社初めての Blog The story behind #CrystalLang 掲載
Ver 0.15 リリース
Windows10 preview Bash_on_windows でCrystal コンパイラの動作が確認された
@Zamith さんがbosto.rbで紹介
atom テキストエデイタ用ツール充実 atom-crystal
ボスが実務で使うツール類とかにガツガツCrystal組み込んできてるなー。
なんと! Crystal言語のアップコンパチ言語ONYX 開発が始まった!!
5月 アルゼンチンで2回目の Crystal Meetup #2 が開催され、オンライン中継された。
Ver 0.16 Ver 0.17 リリース The new global type inference algorithm が実装された。現時点ではコンパイル速度は大きく変化していないが、将来の高速コンパイラ実現とREPL実装への布石がされた。型宣言が一部記述が必要になることに対する賛否議論はあったが、結果を見ると型推定が準形式的になることで、プログラム言語全体がロバストになり、2015 年にbug 指摘やenhance 要望がペンデイングされていた案件がスムーズに解決され、織り込まれた。また新規バグ指摘に対する発見と修正の速度が速くなった。さらに言語仕様がより準形式的に見えることで、新たな言語仕様拡張強化検討が飛躍的に早まった。これに関しては、Crystal言語の新機能追加の考え方が明らかに変わった。昨年はRubyのバージョンアップでの機能追加の様子を見て織り込んでいこうという慎重トーンであって、コンカレント機能対応なども消極的(慎重)であったが、春コンパイラ構造改定以降は吹っ切れたように進化を織り込んでいる。pararell機能も今年かなり期待が持てる(すでに検討開始中)
@tbpgrさんがCrystal入門前編をQiita公開
MAdrid.rbで紹介された
Qiita:GitHub からみたプログラミング言語の動向でCrystal言語がどのくらい注目されているかをまとめました
東京Ruby会議11でksssさんがRubyに型があると便利かを講演、そのなかで、型推定事例でGolangとCrystalを引用。
Sidekicq の作者 Mike Perham さんがSidekicq.cr の基本を取り組み開始から5日で実装公開、経験をBlog化したことで Crystal 言語の注目が高まった。その後 3週間でほぼ全機能を移植公開。Rubyist の適応容易性を示す事例となっている。
この影響の一つとしてブラジルの Ruby 伝道師 AkitaOnRails さんが Crystal - MangaReader Downloader を Ruby版から移植公開、その経験をBlog化、さらに Blog: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機能を評価、紹介する事例が増えている。
6月 Matz さんが、その Blog をリツイート。
Ver.0.18 リリース、 言語仕様拡張は Python, Swift など他言語の良い点は積極的に取り込む方向と、その早い対応が示された。
Matz さんの 昨年6月の Crystal 言語関係リツイートはredditでブームを引き起こしたが、きしくも、その1 年後の今回リツイートと Mike Perham さんの Sidekicq.cr 発表の相乗効果で Ver. 0.18 の発表の反応は、かつてない広がりを見せ、Crystal 言語の開発とコミュニテイの広がりが新たな段階へと移行したことを示しました。
CodeTriageでCrystal言語サポート
@g3ortegaさんがVisual Studio でCrystalをサポート
5 new programming languages to watch out for in 2016で紹介される
JAVAWORLD電子版でFresh and functional: 5 new languages to watchでCrystalが紹介される
reddit: App Servers benchmark: Ruby, Node, Elixir, GO, Java, Crystalで最近話題の言語と、それもConcurrent機能が同列で比較される! この時点ではCrystal言語が最速。
ParisRubyで @soveran と @sdogruyol さんがKemalとCrystalを紹介
boulderRubyでTdd Resdekさんが紹介
drug2016 で @Aemadrid さんが紹介
RubyC2016 KyivでAaron Cruzさんが“Ruby Alternatives"でCrystalを紹介、6 Ruby questions to Aaron Cruzは発表事前インタビュー記事。
GORUCO 2016 でWill LeinweberさんがIntroducing the Crystal Programming Language をプレゼン。WillさんはCrystalコンパイラのbuilt-in Playgroundを活用した理解しやすいオンライントレーニング資料をいままでも、作成、公開、利用している。これは他言語に見られない有効ツールとなってきている。
Crystal-JP 有志で”Crystalの本”を秋葉原 技術書店で30部販売、3時間で売り切れ!
急きょPDFダウンロード販売を開始!
2016年6月時点を数字でまとめると以下です。
GitHub 5210star!
Crystalshards ライブラリ 819!
この半年間でまた倍近くなりました!
Qiita でTag:Crystal 投稿が 107!
A list of programming languages that are actively developed on GitHub で Crystal は Swift, Go を含めても なんと13番目にランクされています!
ここから、新しい出来事を継続記載します
7月 @sdogruyolさんがCuury-on 2016(旧RuPy Conference) でKemal: Building Lightning Fast Web Applications With Crystalを3時間セミナー(Video )
昨年12月 Crystalプログラムのプロダクション利用実績を報告したロシアのKostyaさんが、Fiberを使った別の事例(100万アクセス/日処理)採用を報告、RubyとCelluloidを併用した事例よりはるかに動作が安定とのこと
7月15日にCrystal-Remote-Meetupが開催、世界4拠点から同時中継されました!かなり画像、音質よかったです! 1.0までのロードマップでは、下記が実現された時期が1.0だとのこと。Nomore_Breakingchange,Parallelism,Stable_Stdlib,Unfied_DB_API,Windows_support,more_Generics_Inheritance,[]of Object が上げられました(後ろの二つは詳しくはビデオをご覧ください;;)、たぶんここにはコンパイル速度アップ、REPL対応が含まれると予想します。使われたスライドはAryさん、Serdar Dogruyolさん、Julien Porterierさん
ちなみに、ミーテイングリアルタイム参加は54名、注目は、録画ヴィデオが12時間で1000アクセスを超えたことです! メジャーな動向からは些細な数字かも知れませんが、6月以降やはり、Crystal言語の流れは第2段階に入っています。
@costajob さんがGo言語で過去作成したapache-logparserをCrystal言語で書き直してベンチマーク、処理速度は同等、メモリ消費量は1/3だった。
A Quick Dive into the Crystal Programming Language
8月 @sdogruyolさんが @CODESHIPでAn Introduction to Crystal: Fast as C, Slick as Rubyを掲載
その@sdogruyolさんの記事が Hacker Newsで取り上げられ、24時間で400POSTを超える話題に! Crystalを事例に、Cに置き代わる Modern言語はどうあるべきか?という広い話題作りにできたことが要因。Go,Rust,Swift 共々の議論の中でも耐えれるほどにCrystal言語が成長し、認められてきました。
#また来年2017年がたのしみですね(^^;)
追記
*2017年1月時点を数字でまとめると以下です。
GitHub 7300star!
Crystalshards ライブラリ 1494!
この半年間でさらに倍近くなりました!
Qiita でTag:Crystal 投稿が 131!
A list of programming languages that are actively developed on GitHub で Crystal は Swift, Go を含めても なんと11番目にランクアップしました!
追記2
*2017年10月時点を数字でまとめると以下です。
GitHub 9165star!
Crystalshards ライブラリ 2275!
Qiita でTag:Crystal 投稿が 141!
A list of programming languages that are actively developed on GitHub で Crystal は Swift, Go を含めても 昨年からあいかわらず12番目にランクされ、その上位はよく知られているプログラム言語ばかりです。
2017年最大のエポックはTIOBE Index でCrystal言語が8月になんと31位にランクインしたことです!
#こちらがGit のStar数の過去からの伸びを示すグラフです。Githubには過去の履歴がすべて残っています。
#続きをドラマ仕立てで見た、Crystal 言語の2017年に掲載しています。
*英文blogから転載しています
Crystallian という英文での Crystal情報Web も公開しています。こちらもよろしくお願いします。
Crystal Advent Calendar (JP)の12月5日も関連記事を書いています。
#Crystal 関連リンク
Crystal 言語周辺の 2017年は?(妄想)
これから Crystal を始める方へ: Crystal 日本語情報まとめ by Pine613 さん
Crystalの本がCrystal-JPからPDF出版されました!
売り上げはささやかですが、Bountysource Crystal 活動支援に寄付される予定です。
購入を考えられるのに以下の目次を参考にしてください
目次
第 1 章 Crystal 開発環境の構築
第 2 章 Ruby とは似て非なる Crystal
第 3 章 Metaprogramming Crystal Introduction
第 4 章 Crystal と Web
第 5 章 Crystal で Lisp 処理系を実装しよう
第 6 章 Crystal の開発過程とコミュニテイの盛り上がりを振り返ってみて
第 7 章 あとがき
#Crystal コミュニテイ
Crystal-JP
Crystal 情報交換用 Slack チーム Crystal-jp
-> 登録:Crystal-jp.slack.com 日本語で Crystal の情報交換を行うチャットルームです。ご自由にお入りください
[Gitter Crystal 情報交換用 Crystal-jp]
(https://gitter.im/crystal-jp/issues)
[Crystalに関する意見や質問、議論などをする場所] (https://github.com/crystal-jp/issues)