Windows programming (3) - 他言語との比較 - 2000.December #01.February: Kylixの綴りが間違ってたのを修正 1. 他の言語との比較  ちょっとだけ。  まずC:  C   1999末、C99という新しい規格ができた。が、まだそれに対応したCコンパイラは   出てない。ということでまだまだ現役の言語。   組み込み機器からスーパーコンピュータまで広く使える言語。ポインタの扱いで   挫折する人が多い。CはPascalと違い、コンパイルが通ったとしても、実行時に   何が起きるか分からない。という側面がある(Pascelとかその後継のModula-2とか   だと、コンパイル時になるべくおかしなコードはエラーにする。という設計思想   で作られている)。   その分、Cだとプログラマの思い通りにプログラムできるのでなかなか快適。   (タチの悪いバグを仕込んで酷い目に遭うことも。。。)   ちなみに文字列を扱うことは苦手。なにせ「文字列型」というものが存在しない   のだ(あるのは文字型)。  VB - Visual Basic (VB4-VB6共通)   プロ向け。素人が使うと確実に他人に迷惑をかけます。   「簡単。初心者向け」などと言う人がいたら、そういう人は絶対にVBで実用   プログラムを作ってません。インストールすると確実に他のVBプログラムの   息の根を止める可能性があるような代物ができるっちゅーのに、それのどこが   簡単なのか?自分のプログラム*だけ*動けば後は全滅してもオッケー。とでも   言うなら話は別だが。   特定マシンで、OSやアプリの更新は絶対にない。という条件でない限り、   採用するのは自爆を招きます。   IEやMS-Officeのバージョンにもの凄く依存するので、広範囲に配布するつもり   があるアプリでは絶対に採用してはいけません。   メモリリークは*当然*なので常駐ものをこれで作るのはトラブって下さい。と   願うようなもの(VB6 SP4で大分直ったみたいだが...?)。   やたらでかい配布ディスクができるし、実行速度は遅いし、制限も多いし、   バージョンアップしたら過去との互換性を見事に切り捨ててくれるわと、   巷での人気が信じられないほどの、ひでー言語です(笑)。   #私の知る限り、MSの宣伝はともかくとしてDelphiに速度で勝ったという話は    聞いたことがない。ネイティブコンパイルしても遅い(-_-;   ポインタが使えないのが致命的(抜け道もあるが、M$は保証してないんだから、   覚悟して使うこと!)だし、文字列を勝手にUNICODEにしてしまうという、   始末に負えない*仕様*もあります。   #どっちも非常にいやらしい問題を引き起こしますぞ。アクロバティックな    コードとか、隠しAPIを使ってこれらを何とかすることも可能ですが、    (あたしはそーしたもん)んなことで苦労するより、他の言語でまっとうな    処理をするのが吉。とか思うな。   こいつを唯一擁護できる点があるとすれば、Word/ExcelなどのVBAとの親和性。   あれらとほぼ同じ文法なのです。つまり、VBを知っていればVBAも扱えるし、   WSH、VBScriptだって使えます。   が。まぁその。主観なんですけど。Word/ExcelなVBAって破綻してません?   私、Word/Excelでマクロ組んでいて、どうにも理解し難い挙動をするのに   とっても狼狽したことあるし。   #未熟者が何を言うか!という意見もあるでしょうが。。。  Delphi   MSがどうしてもBasic言語を捨てられないのと同様、元Borlandはやっぱり   Pascalな製品を作るのだな。とかでにやり。としてしまう言語。   VBと同様なRAD言語(簡単にアプリが作れるような言語のことをこう呼ぶ)だが、   MS製品ではないので、OSのファイルを無断で書き換えて再起動もできないように   破壊する心配は全くない。   VBとDelphiを両方使う方(私は違う)の意見によると、データベースが絡むなら   Delphiが最強。だそーだ。   惜しむらくは、こいつがPascalをベースにしていることだろうか。「いや、   DelphiはPascalだから敬遠……」とかいう発言を幾つも読んでいるからかも。   しかしねぇ。PascalもCも元はAlgol-60だぜ?Basicとかは別口な言語。なのに   どうして嫌われるかねぇ?   lispやforth、prolog、APL。がベースな言語。ってなら、そりゃ考えますけどね。   for/while/if何てのが同じように使える言語なのに「Pascalだから」ってのは、   *食わず嫌い*の何物でもない気が、私はしますが。   ま、VBとDelphiで「同じ事」ができる。とか期待するとしっぺ返し喰らいます。   「同じ結果」になる、「別の方法」を探さないと苦労するです。   (設計思想が違うんで、これはしょうがないですね)   んでも、Pascalってのは元々ポインタが使える言語ですしね。ポインタ使い   まくりなWindows APIとどっちが親和性が高いかってのは議論の余地ないです。   #「おれはAPIは使わないもん」という人がいたら、考え直してね。    VBでAPIを使えるようになると世界が64倍は広がります。で、VBから直接    ポインタが使えれば256倍は広がるのに。というのが私の感触。   GUIを使う簡易な言語としてはお薦めしておきます。あたしはお試し版をちょ   こっとしか触ってないので、このサイトでDelphiな話題が出ることはもうないで   しょうけど。   後、Delphiを覚えるとKylixというLinux対応のDelphi (話をはしょるとそういう   ことだ)が発売された時にWindows/Linux両対応なプログラムが作りやすく   なるかも。   #そんなことはJavaでやれ?ん〜。そうかもしれない(^^;; 2. 他のGUIが作れる言語(ぱっと浮かんだものだけ)  html   ダイナミック・HTMLとかXMLとかいう潮流はあります。が、プロバイダによっては   使えません。   そして私はクライアントの差異を考慮したつもりでHTMLではVBSCriptを絶対に   使わない。とか実践したんですが、JAVAScriptもブラウザによっては非互換です   ねぇ(;_;)   JAVA自体もSUNが標準化の動きを取り下げるなどということをしてるし。   M$のC#とかってのも出てきたけどねぇ。   #C#はJava対抗馬。似て非なる混乱の種を蒔くM$のいつもの手法。とか思った。  Tcl/Tk   unix系では有名。しかし、私の場合、本が埃にまみれている。買っただけで   全く読んでいないというのが敗因だろう(爆)   Windowsでも動くはずだけど、フォローできてない。   真面目にやればWindowsからでもPerl/Ruby他からもTkなGUIアプリが作れるよう   なんだが……。  Java   Win/Mac/Unixのどのプラットフォームでも同じように動くぞ。ってのが売り   だったんだけど、Tutorialしかやってませんです。   Winで「どっから見てもUnixなGUI」ってウィンドウがぽろっと出てきたのは   体験してます。が、そこまで。そのうちまたやるかも。   Mac OS9でのJava2サポートが結局無くなったとか、逆風も吹いてます……。  Ruby/perl/...etc   挫折中(;_;)。焦点が絞れないんですぅ。   スクリプト言語は普通、「文字列」を扱うなら最強です。awkやperlで   すこっと書ける処理をCやBasicでやれ。とか言われたら逃げるしかないです。   思いっ切り面倒だったりします。まぁ、昨今のSTLとかを駆使すればOKなの   かもしれませんが(STLはC++ですけどね)。 今の所、少々の加工ならCでフィルタ書くわい!という、つまり「トンカチ 持っている奴には全ての問題が釘に見える」という、情けない状態な私 だったりします……。 え〜。ここはそーゆーサイトですぅ(しくしく)。 (EOF)