学生時代の卒業研究は純関数型言語の処理系だった。関数型言語の理論をしっかり勉強したわけではないので、入り口程度しかわかっていないのですが、自作の言語のために変なプログラムばかり書いていたために、けっこう関数型言語の特徴がわかっているつもりである。遅延評価とか無限リストとかあーだこーだと言って勉強したころが思い出されます。
学生ころとそれほど新しい何かがあるというわけでもないが、コンパイラがあってそこそこ実用的なプログラミングができるようになっていることはうれしい。手続き的な副作用を排した入出力は当時もいろいろ議論していた気がするが、モナドはわかりにくいが面白さを感じる。
C++やJavaが広く普及してオブジェクト指向プログラミングがプログラミングの基本のようになったが、大きなシステムでも作らない限りそれほど恩恵を感じることは少ない。もちろんさまざまなライブラリが充実したことはオブジェクト指向の普及によるところが大きいのですが、具体的なコンピュータへのインプリメンテーションから逃れにくいものを感じていた。オブジェクトがどのコンピュータにあるかと考えざるをえないのである。ネットワークに分散する処理を考える場合はオブジェクト的思考をしないほうがいいような気がする。
ということでHaskellでのプログラミングに興味がわいてきた。Haskellの研究をしたいというわけではなく、Haskell的発想で頭をリセットしてみたいという気持ちである。どうもオブジェクト指向化した頭がプログラミングを面倒にしている気がして、プログラムのわかり安さはもっと別のところにもあるような気がするので、まずは環境を変えてみようというわけなのである。
0 件のコメント:
コメントを投稿