読者です 読者をやめる 読者になる 読者になる
ようこそ。睡眠不足なプログラマのチラ裏です。

第60回CLR/H勉強会でLT登壇しました。「すっぱいぶどう」の話。

関数型言語 F# 勉強会

7月16日に参加した第60回CLR/H勉強会にて、LT登壇しました。


http://www.slideshare.net/zecl1231/clrh60-lt
アップしたらなんか崩れちゃったけど気にしない。



制限時間5分きっかりでお話するという都合上、いろいろ端折ってお話しました。
あらかじめ用意していたカンペ通りに話せませんでした(というかカンペぜんぜん見ませんでした)が、
概ね話したいことは伝わったみたいで良かったです。リアル「F#!F#!」コールもできたのでよかったですw
どんなことを話したのかわかるように、以下にページごとのカンペを張り付けておきます。



2.
ちょうど一年前までは札幌に住んでいましたが、今は旭川に住んでいます。
ここ数年は関数型言語に魅了されています。F#が大好きです。他にも少しHaskellをいじったりしてたりして遊んでます。
最近はWeb系のお仕事をしているので、JavaScriptHTML5なんかも少し書いてます。
のぶひささんが代表をしているF# User Group –Japanのメンバーです。


3.
サワーグレープスということなんですが、直訳すると「すっぱいぶどう」です。
熟語的な意味でいうと、「負け惜しみ」みたいな感じの意味です。


4.
なぜ「負け惜しみ」なんて訳があてられているかというと、イソップ童話の「すっぱいぶどう」が由来です。

こちらの簡単なあらすじを言うと、あるところの、旅をしている一匹のきつねがいまして。
おなかをすかしたところに、ぶどう畑をみつけます。


5.
とてもおいしそうなブドウが実っていたので、

きつねはそれを食べようとするんですが、ぶどうは高い所にあってぜんぜん届かないんですね。
そこに小鳥がやってきて、ぶどうをついばみはじめます。
キツネは悔しくて、「どうせあのぶどうは、すっぱくてまずいにきまってる。全然悔しくなんかないんだからねっ!。」
と捨て台詞を残して去る。というようなお話です。


6.
これは、合理化とよばれる心理作用で、
目的や欲求、あるいは理想と現実のギャップを埋めるために、
自分に都合のいい理屈をつけたり解釈をしたりして、なんとか傷ついた心を埋め合わせたり癒そうとしたりします。
そういう心理メカニズムを、心理学では合理化といいます。

例えば、彼女にふられて、しばらく悲しむんですが、
たしかに美人ではあったが、冷たくて性格の悪い女だった。別れてよかったよ。
みたいなのですね。


7.
なんでこんな話をしたかというと、
最近、関数型言語関数プログラミングが流行の兆しをみせてきています。
とはいっても、まだまだ普及しているとは言いがたいです。

関数型言語は、コードが短くてすむ。バグのあるプログラムを書きにくい。
圧倒的なモジュール性。テスト可用性が高い。などのメリットがあります。

しかし、関数型言語は、手続き型言語とは構文もかなり違いますし、考え方パラダイムも全く違うので
確かにすこしとっつきにくいところがあるのも事実です。


8.
なので、良いものだとはわかっているけども、なかなか手を出せていない。
みんな合理化の心理が働いていて、関数型言語をすっぱいと思い込もうとしている
節があるんじゃないか、と思ったんですね。



9.
ありがちな合理化ですね。

はたして本当にそうでしょうか。やる気がないならないって正直に言えばいいのにね。
もし本当なら、お察しします。お疲れ様です。


10.
職業プログラマのこと、もしかしてばかにしてますか?


11.
みんながやったらぼくもやる。日本人魂でしょうか。こだまでしょうか。
あるいは、夏休みぎりぎりになって宿題をやるタイプとか?


12.
言い訳乙。関数プログラミングは新しい技術ではないよ。むしろとても古いよ。
 

13.
合理化について否定的な内容でお話しましたが、合理化もとても大切で、
ストレスを解消したり、心のバランスをとったりするため必要です。
ただ、自分を甘やかしてばかりでは向上は見込めません。
合理化しすぎていないか、自分を甘やかせすぎていないか
自分の胸にそっと手をあてて考えてみるのもいいかもしれません。


14.
これからの若い人たちの多くは、関数型言語を学んでくるでしょう。
オブジェクト指向がわからない上司が陰で老害と言われていることがあるように、
これからは、関数型で武装しておかないと、やがて「老害」と笑われてしまうかもしれません。
おじさんたちは関数型言語で武装しておくのがよいでしょう。


そんな装備で大丈夫か?


15
「一番いいのを頼む。」


F#!F#!…(フォーエバー…)