メッセージ。 - shiroさん、どう...
# shiroさん、どう...
shiroさん、どうもです。自動車のたとえでは、作る人のことを対象に書いたつもりだったんですけど、あまり良いたとえじゃなかったかもしれません。
ぼくがJoelさんの文章から受けた印象では、shiroさんが問題とされているポイントよりもっと具体的で個別の問題点を意識しているように感じました。で、まぁ上記の文章になったと。
コンピュータサイエンスを学ぶ学生は、コンピュータを使うだけでなく、作る技術も身につけなくてはいけないというのはまったく同感です。コンピュータは、「道具を作る道具」という側面が強くて使いこなしも難しいので、特性をよく知っておいたほうがいいと痛感します。
ただ、Javaを学ぶことでも、コンピュータの特性を理解する入口にはなると思ったんですよね。実はここにいたった過程を端折ってしまったのですが、この考えは小飼さんのところで展開されていた議論を受けています。
JavaはVM上で動きますけど、VMであってもチューリング的なパラダイムを色濃く残しているので、リアルなハードウェアとの違いって本質的にはないと思いました。だったら、Javaを問題にしてCはOKと言う人は、どこを問題だと感じているのか、と。
この手の議論になったとき、JavaとCを対比させる人って多いと感じますが、「JavaとCの関係」は、「Cとアセンブラの関係」に似ていると思います。いまでこそ「Javaはだめだ。Cを学べ」という人がいるけど、40年前だったら、「Cはだめだ。アセンブラを学べ」と言われたんじゃないかなと。
JavaとCの違いは、この議論に関係しそうなものとして「ポインタがあるか」だと思うんですけど、それ以外にもコンピュータの特性を知るうえで、RISC/CISCの違いやレジスタ、キャッシュ、バス、CPUの命令セットの意味論など、知っておいたほうがいいポイントがあるはずです。そのへんまで含めて問題にするならいいと思うんですけど、CとJavaの間に線を引くのは妥当なのかなぁってのが、上記文章を書いたときの裏の趣旨です(笑)。
うまく書けそうになかったので、また、まだ考えがまとまっていないのでだいぶ端折ってしまったのでした。すんません。
ぼくがJoelさんの文章から受けた印象では、shiroさんが問題とされているポイントよりもっと具体的で個別の問題点を意識しているように感じました。で、まぁ上記の文章になったと。
コンピュータサイエンスを学ぶ学生は、コンピュータを使うだけでなく、作る技術も身につけなくてはいけないというのはまったく同感です。コンピュータは、「道具を作る道具」という側面が強くて使いこなしも難しいので、特性をよく知っておいたほうがいいと痛感します。
ただ、Javaを学ぶことでも、コンピュータの特性を理解する入口にはなると思ったんですよね。実はここにいたった過程を端折ってしまったのですが、この考えは小飼さんのところで展開されていた議論を受けています。
CSがコンピューティングを科学的にとらえる学問とするなら、そのターゲットコンピューターはリアルハードウェアであってもVMであっても良いと考えられます。Posted by ak2i at 2006年11月10日 09:30
JavaはVM上で動きますけど、VMであってもチューリング的なパラダイムを色濃く残しているので、リアルなハードウェアとの違いって本質的にはないと思いました。だったら、Javaを問題にしてCはOKと言う人は、どこを問題だと感じているのか、と。
この手の議論になったとき、JavaとCを対比させる人って多いと感じますが、「JavaとCの関係」は、「Cとアセンブラの関係」に似ていると思います。いまでこそ「Javaはだめだ。Cを学べ」という人がいるけど、40年前だったら、「Cはだめだ。アセンブラを学べ」と言われたんじゃないかなと。
JavaとCの違いは、この議論に関係しそうなものとして「ポインタがあるか」だと思うんですけど、それ以外にもコンピュータの特性を知るうえで、RISC/CISCの違いやレジスタ、キャッシュ、バス、CPUの命令セットの意味論など、知っておいたほうがいいポイントがあるはずです。そのへんまで含めて問題にするならいいと思うんですけど、CとJavaの間に線を引くのは妥当なのかなぁってのが、上記文章を書いたときの裏の趣旨です(笑)。
うまく書けそうになかったので、また、まだ考えがまとまっていないのでだいぶ端折ってしまったのでした。すんません。
Comment
Trackback