2005-10-07-01-自分の足を撃ち抜くリスク - project-enigma

2005-10-07-01-自分の足を撃ち抜くリスク

>> Site top >> weblog >> 月別アーカイブ >> 2005年10月のlog >> 2005-10-07-01-自分の足を撃ち抜くリスク

最終更新日付:2013/12/31 18:28:57


自分の足を撃ち抜くリスク

2005 年 10 月 07 日

最近忙しくてなかなか書けないので、またもやつまらないエントリを。

C/C++ のキャストが危険だという意見がある。また、たとえば Java は多重継承が危険だからと言って多重継承をサポートしない。同様に Java はポインタも提供しない。だから Java は安全だと主張される。また、似たような理由を並べて Java は「純粋なオブジェクト指向言語」だという言い方もされる。

安全か危険か、またオブジェクト指向として純粋か、という論点なら、まぁ同意しないこともない。しかし、あくまでプログラミング言語は道具だし、プロが使うのはプロの道具でなければならない。オブジェクト指向として純粋かどうかなど、それぞれの道具ができること・できないことに比べればどうだっていいことだ。僕に言わせれば Java などおもちゃのピストルである。本物のピストルが必要ない人、または本物を使いこなすことのできない人はおもちゃを使えばよい。プロってのはたとえ自分の足を撃ち抜く危険を孕んでいたとしても本物を使わなければならないことが多いのだ。プロにとっては、おもちゃは安全であってもいざというときに役に立たない。危険だ危険だと吹聴してまわる連中は、たいてい本物を使いこなせないか、またはおもちゃを売って金儲けをしたいのだろう。要するに Java を作って売った連中のことだ。

別に僕は Java ユーザーに恨みがあるわけでもなんでもない。しかし、Java を売り歩いた連中の誇大広告と嘘八百には恨みがある。Java がオブジェクト指向の普及に貢献したことは確かだ。しかし、それ以上に Java はその宣伝によってオブジェクト指向を、さらにはプログラミングというものまでを貶めたのである...異論・反論大歓迎だ。ただしちゃんと理論武装してから来てくれ。

── 追記 ──

読み返してみると少々誤解を招きそうなので補足しておくが、別に僕はおもちゃのピストルを否定するわけではない。僕だって本物を持ち出すに及ばぬ時はおもちゃを使う。僕が言いたいのは、時として危ない道具を使わなければならない局面があるということ、そして、「このおもちゃさえあればもう本物を使う必要はありません」と吹聴した卑しい商売人たちのことなのだ。

 

コメント

いなあも - 10/07/2005 07:42:26 PM

いや、まさに仰るとおり。

僕が始めてパソコンに触れた20年チョイ前は、プログラムを書くなら標準搭載のBASICかアセンブラしか無かった訳で、まずはBASICを使い、それに限界を感じたらアセンブラというのが王道でした。

それこそアセンブラは安全装置の壊れた45口径のフルオート拳銃のようなもので、ちょっと操作を間違っただけで足を打ち抜くどころか全身蜂の巣にされてしまいます。

ただ痒いところに手が届くと言うか、手の届かない場所が無い便利なツールでした。機種依存性が強すぎるのがネックではありましたけどね。  そんな中でC言語と出合ったときは目からウロコでしたね。

ポインタのお陰で実アドレスを意識せずにメモリ空間を触れますし、何より理解しやすい言語体系と標準ライブラリのお陰でどんな環境でもやりたい事が自由に出来る。ある意味僕の理想がここにありました。

ただしそんな経緯を辿った所為で、僕はの思考ベースはアセンブラです。プログラムの構造管理は自分でするものと言う考えが染み付いています。おかげでオブジェクト指向に魅力を感じる事無く、未だにCでプログラムを書くところまでで終わっちゃってるんですね。

さて今僕はBasic使いに戻っちゃってますが、8BitパソコンのBasicで育った人間には今のBasicは高級なオモチャのようで、これはこれで面白いもんです。

#異論反論ではなく賛同意見でした。(^^)

陰郎 - 10/07/2005 11:52:59 PM

> いなあもさん

思えば、僕もプログラミングに手を染めてから20年くらい経とうとしてます。昔は電源を入れるといきなりBASIC...って機械が多かったですね。僕は残念ながらアセンブラには行かなかったので、今でもアセンブラが書けません。今使ったら多分自分の体を蜂の巣にしてしまうな...

C言語は、まぁちょっと危なっかしい面はありますが概ねバランスいいですよね。いわゆる「安全装置」は自分が望むときに外して危ないこともできるし、コンパイラを出し抜かずにタイプシステムに従っていればそこそこ安全に使えるし。

ただ、僕には C言語は抽象化能力と組織化能力という点でちょっと物足りないんです。それらを補いつつもC言語の切れ味を失わない C++ がやっぱり僕のお気に入りです。

たしかに今は高級おもちゃも馬鹿にしたもんじゃありません。僕も手っ取り早くツールを組むときはよく Visual Basic なんかも使いますし、そのへんの使い分けは大事ですよね。

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.