圧倒亭グランパのブログ

30年後の自分にもわかるように書くブログ

Crystal勉強会 in 渋谷 を開催しました

この記事は、 Crystal Advent Calendar 2016 の1日目の記事です。

 

先日、Crystal言語の勉強会を開催しました。Crystal言語が好き過ぎて、勢いに乗って開催まで進んだ形です。参加された方、準備を手伝ってくださった方、みなさんどうもありがとうございました。

crystal.connpass.com

 

内容紹介

自分のイントロダクションの発表から始まり、Talk枠2つ、LT枠4つという内容です。 connpassの資料一覧 に全て載っていますが、こちらでも簡単にご紹介します。

イントロダクション

www.slideshare.net

  • 0.20.0 release !!
  • どんな言語?
  • Crystalの歴史
  • Crystalの周辺
  • 勉強会の発端

簡単な歴史やCrystalの情報を得られるサービスの紹介などを話しました。発表していると、「一次情報は Google Groups じゃないかなー」 という勉強会らしい会話もありました。

Crystal - Google Groups

 

Talk1. What's Crystal?

slides.com

  • Crystal言語はこうして生まれたのでは?という妄想
  • Crystalの言語仕様について
  • 実用事例

@maiha さんによる発表です。「Crystalはこうして生まれたのでは?」という@maihaさんの妄想を、とてもおもしろく話してくださいました。言語仕様についてもわかりやすく解説していただき大変勉強になりました。

@maihaさんは、事前のアンケートで「言語仕様/実用事例」の希望が多かったことを踏まえて資料を作ってくださいました。ありがとうございました。

また、CrystalのContributorの方でもあり、gitterなどでいろいろと議論に参加されています。

  

Talk2. C Compiler in Crystal on Compile Time

speakerdeck.com

@make_now_just さんによる発表です。@make_now_justさんは以下の記事でもおなじみですね!

qiita.com

qiita.com

@make_now_justさんも@maihaさんと同じく Crystal の Contributor であり、PRのmergeも多くされています。

今回の内容は「Crystalのコンパイル時に動くCコンパイラ」の話でした。Crystalの機能である macro は、コンパイル時に実行され、その結果を踏まえてCrystalのコードがコンパイルされます。この「コンパイル時に実行され」の部分でCコンパイラを動かそう、という試みです。結果はどうなったのか、ぜひ内容を御覧ください。

 

LT

LTは4枠でした。

発表してくださった方々、ありがとうございました。下記資料にもありますのでぜひ御覧ください。

crystal.connpass.com

 

懇親会

ピザと寿司を囲み、さまざまな話がされてとても盛り上がりました。

  • Crystalの良いと思うところ
    • 書きやすい
    • 型制約はやっぱり安心感ある
    • macro便利
  • Crystalのもうちょっとなとこ
    • 方針が統一されていない部分があるかも
    • 破壊的変更がまだまだある(まぁ仕方ない)
    • 並列実行に弱い(goに軍配かなぁ)
  • 翻訳業大変!
    • なんとかしたい
  • 今後、Crystalはどういった分野に広がるのか
    • better ruby が今のところ近いかなぁ
  • もっとCrystalを広めるにはどうしたら良いですかね
    • 何か爆発的に人気の出るライブラリが必要?

などなど。話していて楽しかったです。

 

勉強会を終えて思ったこと

上の箇条書きの最後にもありましたが、自分はCrystalが好きで「もっと広まって欲しいなぁ」「広まるにはどうしたら良いのか」と思っていました。そのことを勉強会でも話したのですが、いろんな方と話した結果、以下のツイートをすることになります。

勝手に焦っていたんですね。また、この焦りから来る「広めよう!広めよう!」という自分の気持ちは、ある意味危険だなと思いました。周りの人に「Crystal使ってみなよ!めっちゃいいよ!ねぇねぇ!」というのは自分のエゴなんですね。何を使うかは個々人次第であり、他人が強制するものではないと思います。社内の雑談でもこのような話をし、結局自分にできることは、

 「大好きなCrystalを触り、事例を作って、それをひたすら公開し、Crystalの素晴らしさを発信すること」

だと思いました。そうすれば、興味を持ってくださる方も自然と増え、自分から楽しくCrystalを書ける人が増えるのではないかと思います。

そういう場として、ブログを書くもよし、githubにライブラリを公開するもよし、Twitterでつぶやくもよし、勉強会を開催するもよし。いろいろとやることがありますね。こんな楽しいこと、やらなきゃ損だなーと。つまりは、

「エンジニアなら、口先だけでなくコードで語ろう」

ということでしょう。これを再考できたことも、勉強会を開催してよかったなと思います。

 

さて、今日も crystal コマンドを叩きますかー