なにやってんだか(蜃気楼)より:
初心者にC/C++は難しすぎるので、Delphiです。これからプログラミングを始めてみようという人にVBはおすすめしません。言語仕様が曖昧すぎてステップアップできなくなります。
簡単にプログラムを組もうと思えば組めますが、私はあまり好きではありません。VBやった後にほかの言語に手を出すことになった場合、VBでのお約束がことごとく崩れていくのが分かるでしょう。
Delphiはほかの言語のベースにもなっている(*Pascal)だけあってそれなりに使えますから。
私は、プログラミング初心者にこそ、C 言語を勧めたい。理由は、単体でできることが少ないから。
言語単体でできることが少ないということは、やりたいことを事細かく砕かなければならない、ということです。また、憶えなければならないことも少しですみます。
コメントで、とっちゃんさんがま、C# とか IDE なしでやれ!とか言われたらシャレにならんですが...w
とおっしゃっていますが、C# でできることはたくさんあります。しかし、そのためにフレームワークがふくれあがっています。14年前、Unix で vi を使いながら C のコードを書いていたとき、「選択できれば便利だな」とは思いましたが、だからといって「IDE が無ければシャレにならん」とは思いませんでした。少しの労力で多くのことができるということは、便利ですが、「少しの労力」の使い方をたくさん覚えなければならないのです。
そうですね。。。テトリスはご存じですよね。4つの小さいブロックを組み合わせて7種類の塊があります。その7種類のブロックがどういう形かを覚えておいて、どのように組み合わせるとどんな隙間ができる、ってことを考えるのが、ゲームで高得点を上げるこつです。
じゃぁ、ブロックが5つに増えると?塊は17種類くらいですか???ブロックが6個、7個と増えると、その組み合わせはすごい数で増えていきます。
ブロックの数が多くなると、それを組み合わせたときにどんな形になるのか、考えなければならないパターンが多くなります。これって、しんどくないですか?それよりも、細かくすること、「これをするためには、何が必要だろう?」と考える方が、楽じゃないですか?だって、ゴールは決まっているんだもの。
確かに、C 言語は面倒です。メモリの管理も、かなりの部分をプログラマがしなければなりません。だからこそ、最初にやっておく方が良くないですか?
これを読んでいるほとんどの人は、x や y を使った方程式をご存じのはずです。鶴亀算など、x/y を使うと簡単に解けます。
鶴と亀があわせて10匹います。鶴と亀の足を合わせると28本あります。鶴と亀は、それぞれ何匹いるでしょう?
方程式を使っていいなら、鶴の数を x、亀の数を y とし、
2x + 4y = 28
x + y = 10 より
2(10 - y) + 4y = 28
20 - 2y + 4y = 28
2y = 8
y = 4
x = 6
となります。
じゃぁこれを、x/y を使わないで求めるには?数年前このことを考えたとき、確かに小学校の時にやった問題なのですが、解くことができませんでした。
鶴が10匹の場合、足の数は20本。鶴が9匹で亀が1匹の場合、足の数は22本。つまり、亀が1匹増えるごとに足は2本増える。このことより、28 - 20 = 8, 8 / 2 = 4 で、亀が4匹、鶴が6匹。
様々な言語にフレームワークとして用意されている関数/クラス群は、ここでいうところの「x と y」に相当すると思います。これらがあると、とても便利に問題を解決できます。
しかし、カバーする粒度が大きいために、対応する関数/クラスがない言語を使用することになったとき、どのように実現したいことを表現すればよいのか、わからなくならないでしょうか。実際、そのようなことがあると思います。というのも、掲示板には「**言語な xx で実現できるのですが、○○言語ではどうすればいいのでしょう?」という質問を散見するからです。
もし、問題の粒度を小さくする力が養われているなら、「xx では、こうやってああやっているだろうから、同じことをすればよい」と、考えつけるのではないでしょうか(いや、楽したい、ってのはあると思うけど、それはまた別の問題)。
さて、もう一つ。本当に Delphi だと簡単なのでしょうか?あるいは、何が簡単なのでしょう?
私は、Delphi だけでなく、VB であっても、プログラムを作ることが簡単になるとは思いません。しかし、Windows アプリケーションを作ることは、簡単になるでしょう。さて、いったい何が変わるのでしょうか。
プログラムを作るのは、ある問題があって、その問題を解決するためです。Delphi や VB は、問題の解決を容易にしてくれるのではなく、問題への道を歩きやすくしてくれるのではないでしょうか。つまり、Windows Form というツラを作り、エンド ユーザがデータを入力しやすくするという部分において、簡単にしてくれるでしょう。しかし、エンド ユーザがどのような問題を抱えており、それを解決するためには何が必要で、必要なものをどのように加工するか、という、プログラムの核心ともいうべきところでは、何ら変わることはないでしょう。
「簡単」をセールスポイントとする開発ツールですが、「簡単」を見るポイントによっては、あるいはより難しくしているのではないでしょうか。見栄えを気にするエンド ユーザって、多いでしょ?
確かに C 言語は、配列やポインタなど、習得の障害となるポイントがいくつかあります。しかしそれらも、他の言語を習得する上で、助けにこそなれ、妨げにはなりません。
今使え、これからも使えるであろう言語から「プログラミング初心者に勧める言語は?」と聞かれると、私は C 言語を勧めます。
投稿日時 : 2007年9月11日 6:17