Delphi入門
プログラミングは楽しく学ぶもの
プログラミング言語って...
実際に、プログラム言語とは何かを考えて見て下さい。 授業でのプログラム言語は何を目的としているのでしょうか?自分はそれが見えて来ません。 確かに、大学の授業でもC言語をやりましたが、あの授業は一体なんだったのか?有意義な授業だったのか? そう思います。情報系の学生を見ていると、苦しんで言語を勉強し、 複雑なアルゴリズムを勉強させられている姿が見受けられます。
勿論、最初から出来る人にとってはラクかも知れません。そして、深く入った所を勉強するのには、 そういう知識も必要かも知れませんまた、大学のプログラミングの講義がよくできて成績優秀だから、 実用的なアプリケーションは作成できるか?と言われればそれはイコールではありません。 肝心の「ユーザ側から見た」観点が抜けているからです。そういう所の講義を大学では詳しい方にして頂きたかったと思います。 従って、全然実用的なソフトウェア開発はできないと思います。 そういう講義だけで実際にユーザに認めてもらえるアプリケーションを製作できるでしょうか? これについては「技術者の陥りやすいワナ」でご覧下さい。
自分が教える立場なら!?
自分が作成する時にまず注意しているのは、 なるべくメモリに優しい設計をする、細かい所への配慮(例えば、一度読み込んだディレクトリを前回も記憶しておくなど)、 簡単な事ですが、これをするだけで随分見る目が変わってきます。未熟な自分ができる限りの事をするのは大切だと思います。
しかし、こう言っても、やはり「ユーザの心理」というものはとても難しい問題だと思います。 結局、作れてもユーザに認めてもらえなければ意味をなさないからです。
ですから、今初めてプログラミングをやる人も十分、 そういう人を十分追い越せる能力を持っているかもしれないのです。 相手の考えをうまくつかみ取れる人はどんどんレベルアップしていきます。逆に批判ばかりしていて、 相手を素直に認めないような自分の世界に入り込んでしまっている人は、 いつまでたってもひとりよがりのアプリケーションしか作成できません。昔の自分もある意味そうでした。 でも、そういう方は批判だけをするような人は自分では作らないと思います。 なぜなら自分が苦労してアプリケーションを作った事がないからです。
アプリケーションにはセンスも重要?
アプリケーションは「センス」も大事です。 「センス」あれば多少知識はなくても、使いやすい、操作性のよいものを作れます。 「センス」なければどんなに腕が良くても、もったいない…という事になります。 いくら高度なアルゴリズムの知識をつめこんだとしても、プログラマとしてなら十分やっていけます。 それでいいというのでしたら構いませんが、やはり、自分で一から設計し、自分でプログラムを組んで使ってもらえる… というものの方が感動も大きいと思いますし、少なからずそういう事を思っている方も結構いるのではないでしょうか?
だからと言っていきなり訳も分からないものを持って来られて 「はい、やりなさい!」と言われてもそれは苦痛にしかならないと思います。ダメな教師は自分が知っているからと言って分かっているものとして説明します。 実際に、プログラム言語の授業は取っていましたが、試験も良くはなかったです。
それに情報処理資格の対策書を見ましたが、少し微妙に感じました。 「以下のソースコードの空欄を埋めなさい。」という問題が絶えないのは何でも試験で物事を判断したがる日本の悪いクセだと思います。 確かに就職などで審査する際にはいちいち一人一人を細かく見ていれないので最初にフィルタをかけるという意味ではそういった 形あるものにしておく事も大事だとは思っています。 肝心なのはどう行った挙動がユーザに影響を与えるか?または、便利に使えるようになるか?という事だと思います。 空欄なんかどうでも良いのです。試験である以上、そういう方法でしか出題できないのも納得がいきますが。
いくらそういう「ソフトウェア開発資格」を持っていても現場で本領を発揮できなければ意味はありません。 ですから、資格や試験や学歴だけで人を判断するような会社などは論外で、 一種の「指標」にはできても、上辺だけの評価だけを汲み取っている事になります。
ですから、少しでも、楽しんで自分でタイピングソフトなりを作ってみてその楽しさを享受してもらうために今回のような講座を開設して見ました。 まずは、分かりやすい簡単な所から初めて、そこから徐徐にレベルを上げていけばいいのに、 世間では難しい事から始めようとするのでみんなプログラム言語というのに高い壁があるかのように見えるのです。 でも、やはり難しい事には変わりありませんけど。という訳でまずは簡単にアプリケーションが開発できるこの「Delphi」というものを一度御覧になって下さい。 世界観が変わる人も出てくると思います。少なくとも自分はかなり変わりました。
「Delphi」に出会う前の自分...
今までは、「Delphi」に出会う前までは、Macintoshの「HyperCard」というものを結構やってました。 今ではもう面影ないですが、あれは最先端のオブジェクト指向言語だったと思います。 これもまた「主流じゃないだけで疎遠となっている」もののひとつだと思います(今思えば...)。
そこで、Windowsが流行し始めてきて、仕方なくWindowsへ移行したわけですが、 Windowsではこれに変わる開発環境はないのかな…と諦めかけていました。 そんな時に、「Delphi」の存在を知りました。「HyperCard」もObject Pascalみたいなものですが白黒という難点がありました、 「Delphi」はObject Pascal、しかもカラー!というので何も言わずに乗り換えました。 実際に使ってみると違う所はあるものの根本的には似たもの同士だったので入りやすかった訳です。
最初は、結構下らないソフトを作っていた当時はそれでも満足していました。 今思うと人に見せられるような作品ではありません。「ez-HTML」に比べたらそれは雲泥の差です。 しかし、最初から出来る人などいません。その時、有頂天になってもそれでいいと思います。 だから、今回もタイピング講座をするに当たって、動いた!と感動する方もいらっしゃるでしょう。 クサいセリフだと思うかも知れませんが、この感動がまた次へ次へと進めて行くものではないんでしょうか?
決まり切った勉強法からおさらば!
良く見かける例なのですが、え〜っと次は、構造体をやって、次にポインタをやって… と決まり切った勉強方法からおさらばして見ませんか? 順番にやろうとすると分からない所も出てきて挫折します。
最初は誰でも分かるような簡単なものを作ってそれから力を付けていけば良いだけの話です。 「ポインタ」などというのは言語のひとつの壁とまで言われるようになって 私も最近になってようやく分かり初めて来ました。それを使ったプログラムも「ez-HTML」などには搭載しております。 文字列処理高速化には必須の知識です。
しかし、こんなのはどうやっても、いきなりやる人には理解できないと思いますし、 これは挫折させる原因だと思います。「Delphi」ではポインタというものがすべて内部で処理されているために、 表に出てくる事はまずありません(勿論、使えます)。 ですから、初心者でも安心して入れる訳です。ファイル保存のダイアログだって、数秒で作れます。
プログラマの堕落と言えば堕落ですが、メカニズムを理解していれば後はそれを使って行くべきというのが持論です。 上級者になればなる程、「Delphi」とかはいきなりウィンドウがあるので気に入らない…とか、 内部から作りたい!とかいう方もいらっしゃいます。
しかし、そういう方はそういう方でいいんです。 今やろうとしているのは、プログラム経験もない人を対象にしているのですから、 そんな意見は無視して自分なりのペースで分かりやすい手法を取って修得して欲しいと思っております。 確かに、内部を知っておく必要性はありますが、ハッキリ言ってコンパイルして実行してしまえば、 作ってしまった方の勝ちなのです。内部構造などは後で経験積んだ後にじっくりやっていけばいいと思いますし、 自分も現に内部でどう動いているかなんて最近になって色々分かって来た所です。 ですから、全然初心者のみなさんでも大丈夫です。安心して入って下さい。
Delphian Power
当サイトで公開しているソフトを見ればお分かりでしょうか… プログラム知識は前からある程度あったはいえ、始めてから2年弱でもソフトが結構作れてしまうものです。
行程はどうであれ、Windows上でバリバリ動いているのはDLして実行してみれば分かりますし、 変なランタイムもないし、単独でEXEファイルで動くというのが見れば分かると思います。 しかも、割と高速だと思いませんか?
機能、性能、コンパイル速度、何を取っても「Delphi」はかなり良質なものでしょう。 特にコンパイル速度では群を抜いています。速度面でも「Visual C++」と引けを取りません。 画像処理などは「Visual C++」が適している事もあるかも知れませんね。
只、ActiveXに関しては「Visual Basic」の方が勝っている面もありますが… 「Delphi」ユーザは「Delphi」使っているから当然そういうんだ!と思う方もいらっしゃるでしょうが、 実際に使ってみて下さい。きっと、無言になるでしょう。 それほど、優れているのに皆さん気付いていないだけなんです(^^;)。 「主流じゃないだけで疎遠になっている」というのが正にあてはまるのがこの「Delphi」だと自分は思っております。
欠点を挙げるとしたら?
欠点を挙げるとしたら、参考書の数でしょうか。 「Visual Basic」は書店を見てもどこでも多くの参考書がありますよね? それに比べて「Delphi」は殆どありません。ですから、見放されるのも当然かも知れませんね。
Pascalは教育用の言語である
「Delphi」はBorland社という所が出している開発ツールです。 その他に、「C++ Builder」「JBuillder」なども出しています。 Linux到来を予測して、Linux版「Delphi」である「Kylix(キリックス、カイリクス?)」 というものも注目されております。
しかし、最終的にはやはりCの知識は必要かも知れません。 効率を考えると、Pascal(Delphi)→C→Java、XML などという手順で言語を学ぶのが最も近道かも知れません。 Pascalは元はと言えば教育用です。ですから、分かりやすくできています。只、C言語経験の長い方はかなり取っつきにくい事も確かです(汗)。