kiyoka.2007_07_30 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2007_07
5555555555555555555
5

[プログラミング] 一つの言語を習得しても,やはり他の言語を学ぶのは難しい

5
 一つの言語を習得しても,やはり他の言語を学ぶのは難しい - カレーなる辛口Javaな転職日記EXT
5
 言語を知らない人ほど「井の中の蛙」になりやすく,「他の言語は簡単にマス
5
 ターできる」なんて暴言を吐くのではないだろうか.
5

 

5

同意見です。

5

C/C++/Java/C#/D/PHP とかをやっているうちは、まあそういう感覚を持ってしまっても無理はないと思います。

5

いわゆる Fortranを祖とする言語だけを見ているうちは、です。

5

しかし、いざLisp/Haskellを習得しようとした途端に、その考えが浅かったということを思い知ります。

5

いわゆる Lispを祖とする、Fortranとはスペクトルの反対側にある関数型言語達です。

5

さらには RubyとPython 等はそのミックスが可能になので、オブジェクト指向プログラミングと関数型プログラミングの両方の抽象化技法をミックスしたプログラミングによって抽象度を更に上げることができます。

5

『習得』を『使いこなす』という意味で使うなら、『簡単ではない』と言っておくのが正解だと思います。

5

 

5

 

5

COMMENTkh

ベクトルの反対側という表現は良く聞きますが、スペクトルは新鮮でした。

たしかにスペクトルは固有値だし、ベクトルと見ることも可能か(ぉ

同じ手続き型でも最近の言語しか知らない人は、なぜFortranが今も一部で使われるのかってことも理解し難いかもしれませんね。

高級化するのとは逆に、如何に欲しい機械語を生成するかという低級化指向ですから。

5

COMMENTkiyoka

khさん、ツッコミありがとうございます。

Paul Grahamのエッセイで同じような表現が多く出てきます。

「普通のやつらの上を行け ---Beating the Averages---」とか

「技術野郎の復讐---Revenge of the Nerds---」とか

これらの「スペクトル」で検索してみてください。

私の場合スペクトルは、ベクトルのように方向を持ったものではなく、帯状のものをイメージします。

なので、スペクトルの端っことか真ん中というような使い方もありだと思っています。

5

COMMENTkh

エッセイを参照したら納得しました。

なるほど、抽象度に応じたスペクトル(DSL)が必要であり、

それを実現するには記述を完全に制御出来るマクロが必要で、

LispではプログラムがS式なのでそのようなマクロが実現可能だと。

至極納得が行くように思います。

ただそれだとLispは上というよりも、あらゆるスペクトルを含むって表現が良さそうなもんですが...

5

COMMENTkiyoka

私がFortranとLispがスペクトルの反対側と書いたのは、Fortranはフォンノイマン型計算機を動かすために作られ、Lispはλ計算という数理モデルを実装したものなので、必ずしもコンピュータを必要としていないという話があります。

コンピュータ言語全体をスペクトルの上に広げてみた場合の話でした。

その説明がなかったですね。すみません。

5

...comment disabled...