最近のトラックバック

2021年7月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
無料ブログはココログ

« メガバンクかな | トップページ | できた!インテリセンス »

2006.05.26

Haskellとプログラム言語


 久々にソフトウェアの本を読んだ。一応こっちが本職ですからね...
 最近何かと話題のHaskell。僕が知っている別の言語で最も近いのは大学のときにちょろっといじったML。これにモナドという概念を加えたものだ。まだこの本一冊読んだだけなのでモナドのすべてを理解したとは言いがたいが、Webにもいろいろ資料はあるので時間を見つけて追求してみるつもり。

 なお、あとがきの中にハッカーになろうというページが紹介されていて、そこにはマスターしておくべきプログラム言語としてPython, Java, C/C++, Perl, LISPの5つが挙げられていた。

 このリストにケチをつけるつもりではないが、アセンブラ(いわゆるマクロアセンブラ)はやっぱり必須だろうと思う。どんな言語を使おうともコンピュータは結局はコレで動くわけだから、アセンブラの理解なくプログラマは名乗れんだろ、と思うわけですよ。
 でもこんなことを言うと、デジタル論理回路の理解なくしてアセンブラは理解できないだろうとか、半導体の性質を理解せずに論理回路は分からないだろう、とかいう話になっちゃうだろうし、そもそも「これだけ知っていればOK」というラインがあるわけもないのでいい加減なものですが。

 上のリンク先からの引用だけど、

でも、言語を一つしか知らないなら、ハッカーではないし、プログラマですらないのです。あなたはプログラミングの問題について考えるのに、ひとつの言語に依存しない一般的な方法を身につけなくてはならないからです。真のハッカーになるには、マニュアルの記述を自分のこれまでの知識と関連づけることで、新しい言語をものの数日で習得できるようにならなくてはなりません。ということはつまり、ぜんぜん違った言語をいくつか学ぶべきだということです。

 というのはまさにそのとおり。関数型言語の知識は大学で身につけて以降直接使ったことは一度もないけれども、ほかの思考に大きく影響を与えているし、今頃になってありがたみがわかってきましたよ。

 今僕が選ぶなら、マスターすべき言語としては

* アセンブラ(x86でもARMでも)
* JavaまたはC#
* 関数型言語何か1つ(もちろんHaskellでも)

 でしょうかね。これらを押さえていれば、C/C++やPerlやRubyは必要が出たときに覚え始めても短期で何とかなるのではないかと思います。

« メガバンクかな | トップページ | できた!インテリセンス »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Haskellとプログラム言語:

« メガバンクかな | トップページ | できた!インテリセンス »