日々常々

ふつうのプログラマがあたりまえにしたいこと。

第1回 関数型言語勉強会 大阪に行って話してきた感想とか #fpstudy

なごやがおとなしくてこわかったです。

関数型言語勉強会と銘打たれ、入門編として行われたイベントに参加、LTしてきました。

参加対象者:関数型言語に興味がある人。初学者〜中級レベル

と言うことで、私はHaskellのインストールからhspec、HUnitを使ったテストを紹介してみました。スライドは適当にスペース借りて置いてみた。SphinxのS6です。Safariで大雑把に調整したせいかChromeでみると微妙に文字のサイズが残念、まーいいや。
関数型言語勉強会 大阪 LT

先に断っておきますが、私はHaskellに手を出たのは今月からです。文法をシャキョって*1、とりあえずxUnitだろーとHUnitに手を出したものの、なんか微妙だなーと思ったところにhspecを見て「これだよこれー」と思った感じです。この辺りの過程は、また別にまとめたいと思ってます。

勉強会自体の感想

正直、今回の勉強会のターゲットだったはずの「関数型言語は学習コストが高い」と思っている「関数型言語に興味がある人」は、大半の話にポカーンとしてしまったのではないでしょうか。また、発表の多くが平然とHaskellを使ってる状態。私が「なんとなーく、わからない、でも、ないなー。うん。」と思えたのはLTするためにHaskellに手を出していたからのような気もします。
冗談だとは思うのですが、本気で以下のような事を思ってしまう方も居たのでは無いかは危惧するところです。

関数型言語を使いこなすためには、関数の深い知識が必要だと思いますが、単に関数型言語の恩恵を軽く受ける程度であれば、別段深い知識は要らないんじゃないかなと思っています。だいたい今使っている言語を詳しく知っていると言える人がどれだけ居るだろうか?知った分応用が利くのはどんなものでも同じで、兎に角使ってみる事は大事だと思うのです。

この辺りは勉強会全体の流れとして「こういうメッセージでやりたい」とかあれば良かったのかもしれません。もしかしたら何か狙いがあったのかもしれませんが、私には汲み取れませんでした……。

あ、勉強会自体が悪かった訳じゃないです。私は面白かったし、参加された他の方々も楽しんでたと思います。ただ、メインターゲットだったはずの「興味はあるけど触ってない」方々がどのような感想を持ったかは定かではありません。本編のmoririringさんのブログのように一言だったとすれば、それはとても残念です。ただ、懇親会の方では全員に聞いて回られてその事を書かれており、これを見て頂ければまだ救い……と言うのも変ですが、そう言うものになるんじゃないかなと思います。

どの言語やればいいのん?

関数型言語と一口に言っても色々あります。どれもこれも特色があって、一体どれをやったらいいの?と言うのはよく話題に挙げられ、私も何故か良く聞かれます。私は関数型言語なんて、Scalaを数ヶ月前にちょこちょこやったものの暫くやらずにいたら忘れて、最近OCamlの本読み始めたものの止めて、なんとなくHaskellに手を出したとかそんあ微妙な輩です。とは言え言える事はあります。

どれでも良いです。決められないならサイコロでも振って、とにかくやりましょう。

選んでても仕方ありません。学習曲線が急勾配かもしれませんが、序盤はどれも似たようなもんだと思います。選びやすいものをやれば良いんじゃないかなと思います。聞ける人が居る。情報に手が届きやすい。環境構築が楽。日々の中で活用しやすい。何でも構わないと思うんです。
懇親会で聞かれた時に答えたのですが、関数型言語を学ぶ事には、関数型言語自体を使用しなくてもメリットがあります。一言で言うと、プログラムの書き方が変わります。関数型言語と言っても、誤解を恐れながら言う*2と、プログラミング言語の違いで「できること」なんてそう変わりません。もちろん、向き不向きはありますが。パラダイムの違う言語を学ぶと、今使っている言語でも書き方の選択肢が増えます。増えた選択肢から、今までのを選んでも良いですが、選択出来ないのとは大違いです。違った考え方は、そうするのが自然な中で身につけるのが手っ取り早いと思うんです。なので、異なるパラダイムの言語を学ぶことは、良い成長材料になるはずなんです。



「すごいHaskellたのしく学ぼう!」がとても楽しみです。

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

*1:写経して

*2:こわい