SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

パソコンの歴史

まずは、息抜きにパソコンについて、ちょっと勉強。(^^)
(けっこう、いいかげんなので、読み流す程度に。) (笑い)

■コンピュータの生い立ち

  現在のコンピュ−タは、フォン・ノイマン(だったと思う) の一命令を順に実
  行していくアーキテクチャを継承しています。
  ただ、この様なアーキテクチャは人口知能などのプロセッサには不向きで、新
  しいアーキテクチャによるプロセッサもあります。
  しかし、こう言う特殊分野を除けば、すべてのコンピュータはノイマン型とな
  っています。

■電卓とコンピュータを別けるもの

  単純に言って、プログラミングが可能かどうかと言うこと。
  そのプログラミングに『条件判定』命令があると言うことだと思います。
  いつかは人間のパートナになれるほどのお利口な AI が出来るといいですね。
  まだまだ計算機の延長を超えることができません。
  それに比べ、人間って、なんて賢いんでしょう。

■パーソナルコンピュータの歴史

  現在のパソコンプロセッサの元祖は 4004 と言う CPU になると思います。
  一般にパソコンのプロセッサが登場したのは、8080 あたりからです。
  この改良版みたいな Z80 が世界を制覇しました。
    4004         4bits                  知らない
    8080         8bits                  インテル
    Z80          8bits 5MHz             ザイグロ   NEC PC-8001、SHARP MZ
    6502         8bits                  モステクノロジー APPLE
    8086-8087   16bits 5MHz 〜 8MHz     インテル   NEC PC-9801
    V30         16bits 10MHz            日本電気   NEC PC-98 シリーズ
    68000       16bits                  モトローラ APPLE MAC
    Z8000       16bits                  ザイグロ   (日の目は見なかった)
    80186-80187 16bits                  インテル
    80286-80287 32bits 12MHz            インテル   EPSON ノートシリーズ
    80386-80387 32bits 16MHz 〜 33MHz   インテル   NEC PC-9801DA
    68040       32bits                  モトローラ
    80486       32bits 25MHz 〜 100MHz  インテル   IBM PS/V
    Pentium     32bits 60MHz 〜 233MHz  インテル   IBM PC750
    PentiumII   32bits 233MHz 〜 450MHz インテル
    PentiumIII  32bits 450MHz 〜 866MHz インテル
  インテルでは、486 以降は数値演算コプロセッサ(末尾 7) が CPU とワンパッ
  ケージになりました。(コプロセッサ: 浮動小数点や三角関数など数値演算を
  高速に行う専用プロセッサ。CPU で計算するより思いっ切り速い。)
  一方、OS は、BASIC そのものが OS の役目を果たしていた時代から、DOS が
  主流になり、Windows 3.0 から一気に Windows シフトが加速しました。
    Z80        N-BASIC
    8086       N-BASIC86、CPM/86、DOS 1.0、Windows 1.0
    80386      DOS 5.0、Windows 2.11/386、Windows 3.0
    Pentium    Windows 3.1、Windows 95
    PentiumII  Windows 98、Windows 2000

■ソフトウェアの歴史

  一般の人がパソコンを使い始めるためには、どうしても普及ソフトと言うもの
  が必要でした。その意味で一太郎とロータス123 は記憶に残るでしょう。
  123 は非常に優れたソフトでしたが、OS に Windows を使用する Excel とは
  比較にならず、また、Windows 版 123 の出来が悪かったこともあって、ロー
  タスはシェアを失ったと思います。
  一太郎は、これはもうなんと言っていいのか、私の感性とは合わないです。
  センタリング一つするのにメニューを操作しまくらなければならず、しかも空
  白調整のセンタリングとなっては限界。しかし、逆に初心者には使い方がわか
  りやすく日本を制覇したのかもしれません。
  Excel の出来に比べると開発チームの違いか Word の初期版はカスのようなも
  のでした。日本の罫線文化に弱く、普通の文章以外使いたくないタイプ。
  Excel で作ったものを貼り付ける機能がなかったら消えていったと思います。
  そんなこともあってか、Windows 版をかなり後になってから出した一太郎では
  ありましたが、なんとかまだシェアを維持しているのではないでしょうか。
  ただ、世界シェアのない一太郎はインタネが普及する中、つらい戦いとなるで
  しょう。DOS の世界でデータベースと言えばハピネスインタフェースで有名な
  桐も Windows 版を出さず、消えていってしまいました。
  一時、Windows 版のソフトがいろいろ出ましたが、自然淘汰の力は強く、マイ
  クロソフトの天下となってしまいました。これは、おもしろくないですね〜。
    Z80        N-BASIC、Assembler
    8086       N-BASIC86、Assembler、C
    80386      MS-BASIC、MASM、C、Pascal、一太郎、123、Word、Excel
    Pentium    VB、C、Delphi、Word、Excel、Access
  開発言語系は、DOS の時代、C や Assembler が主流でしたが、Windows にな
  って、もはや Assember で書ける時代ではなくなりました。
  ほとんど C で Windows プログラムは書かれています。
  もっとも、これは OS や市販ソフトレベルの話で、ソフトウェアベンダなど
  OA では、VB が主流です。
  Delphi は、Pascal の VB 版みたいなものですが、性能的には C に近く市販
  ソフトも作れるベースです。
  ただ、そこまでするなら C の方がもっと良いし、OA に Pascal を使うまでも
  ないと言う難しい位置づけ言語です。
  アメリカでは教育言語として Pascal が広く普及しているので、あちらでのシ
  ェアは凄いものがあるかもしれません。
  日本はどちらかと言うと、Basic が教育に使われることが多いので、Delphi
  が生き残れるかは難しいところ。

■開発言語の特徴

  だいたいメジャーな言語は限られている。マイクロソフトとボーランドがシェ
  アを分け合っているが、最近、今一つボーランドは元気がない。
    Assemble: MASM
    C       : MS-C、Borland C
    Pascal  : Delphi
    Basic   : VB

  MASM:
    マクロアセンブラは、直接 CPU のマシン語命令と対になったニーモニック
    でコーディングするので、すべての資源をプログラミングできる。
    ただ、ハードにどうしても依存してしまうので、移植性なんてものはない。
    もっとも、Windows マシンのハード構成はどれも似たようなものではある。

      CSEG     SEGMENT
      ASSUME   CS:CSEG
      ORG      0000H
      START:
          PUSH      DS
          PUSH      DX
          MOV       DX   ,OFFSET MSG
          PUSH      CS
          POP       DS
          MOV       AH   ,09H
          INT       21H
          POP       DX
          POP       DS
          MOV       AX   ,4C01H
          INT       21H
      MSG DB        'Copyright (C) 1992-1996 Y.SAK ',0DH,0AH,'$'
      CSEG     ENDS
      END      START

    アセンブラでは、特定の IC を直接モードセットしたり、プリンタインタフ
    ェースの 8255A を制御して、プリンタのドットひとつひとつを制御したり
    などできる。
    当然ではあるが、こんな言語で Windows プログラムミングはしたくない。

  C:
    アセンブラベースに近いところから、OA まで広い範囲で使用できる。
    移植性が良く、コンパイラのオブティマイズ機能が高度なことは有名である。
    個人的には、ここ 8 年ほど C の世界に住んでいる。
    フリーソフトウェアやシェアウェアなど、凝ったもの向きと思う。
    コンパクトで高速な独立型オブジェクトを生成する。

      int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInst, LPSTR CmdLine, int CmdShow)
      {
        MSG            msg;
        #ifdef SET_ACCS
        HWND           hWnd;
        HANDLE         hAccs;
        #endif

      // ウィンドウ準備
        #ifdef SET_ACCS
        if ((hWnd = WinInit(hInstance, hPrevInst, CmdLine, CmdShow, &hAccs)) == NULL) return(ERR_RET);
        #else
        if (WinInit(hInstance, hPrevInst, CmdLine, CmdShow) == NULL) return(ERR_RET);
        #endif

      // メッセージループ
        #ifdef SET_ACCS
        while (GetMessage(&msg, NULL, NULL, NULL)) {
          if (TranslateAccelerator(hWnd, hAccs, &msg) == NULL) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
          }
        }
        #else
        while (GetMessage(&msg, NULL, NULL, NULL)) {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
        }
        #endif
        return(msg.wParam);
      }

    C を崇拝する人も多いが、OA 程度に C を使用するのは無用の長物と思う。
    その性能の 10% も使いこなせないだろう。
    また、C++ になると、ガクっとスピードが落ちてしまう。
    C++ で、定義済み Windows スタイルを使用するなら、VB と変わらない。

  Delphi:

    ほぼ、C と同じであるが、制御構造は C に劣ると思う。
    しかしながら、C のライブラリより、Pascal のユニットの考えたかの方が、
    より優れている。コンパイル速度も速く、そこそこのオプティマイズ機能も
    持っている。但し、昔の Pascal はコプロセッサが使えなかった。
    Delphi は使えるようになってるかも。

      {メツセージループ}
        {$IFNDEF SET_ACCS}
        while GetMessage(message, NULL, 0, 0) do
        begin
          TranslateMessage(message);
          DispatchMessage(message);
        end;
        {$ELSE}
        while GetMessage(message, NULL, 0, 0) do
        begin
          if TranslateAccelerator(hwindow, haccs, message) = NULL then
          begin
            TranslateMessage(message);
            DispatchMessage(message);
          end;
        end;
        {$ENDIF}
        halt(message.wparam);

    Windows 流儀でプログラミングするだけなら、C との差はほとんどない。
    ただ、C 同様に OA に使う必要があるかというと疑問である。

  VB:

    素人プログラマでも容易に Windows プログラミングを可能とした功績は高
    い。VB で作ったようなものがシェアウェアで登録される時代である。
    他の言語と違い、どうしても実行にランタイムと言う物が必要となる。
    可搬性に欠けるので、プライベートではメインで使うことはない。
    また、処理性能も最低のランクに入る。Windows へのフック関数やコールバ
    ック関数作成など、出来ないことも多い。
    しかしながら、わずかのコードで処理を実現でき、インタプリタ環境で簡単
    に作成、デバックできると言う他の言語の追随を許さない魅力もある。
    特に OA で使用する機能には必要十分で、VB でさえそのほとんどの機能を
    使用することはないたろう。
    ファイル入出力が大半を占める OA プログラミングでは、速度差も吸収され、
    もっとも適した言語となる。
    その昔の Basic では、文字変数領域の整理(ガーベージコレクション) が
    実にうっとしかった。最近の VB では CPU パワーのせいかガーベージコレ
    クションをやってるのに気がついたことがない。

■ウェブ系開発言語の特徴

  JAVA(クライアントサイド):

    C やってた人間は、ほんど違和感なく使えると思います。
    更に C が苦手としていた文字列の扱いが実に簡単。
    ただ、ポインタが使えないのは、とってもかなしいかも。
    JAVA もアプリケーション、アプレット、コンソールなどいろいろ種類があ
    りますが、私としては、クライアントサイドスクリプトなら、JAVA 優勢と
    言うところでしょうか。
    一時、なんでも JAVA と言う声を聞いたのですが、そこまで行くには、まだ、
    時間がかかるように思います。
    特に言語構造が C に近いので、「できる」と「なんでもできる」の差は凄
    く大きいと考えます。私は「できる」程度ですね。(^◇^;)

  ASP-VB Script(サーバサイド):

    サーバサイドの JAVA-Script では、データベースのアクセスがかなり面倒
    に感じました。VB 経験者なら、VB Script が一番開発効率がいいでしょう。
    ただ、動作速度が遅いのと、自作関数の DLL を用意しないと、あまり、使
    い心地が良くありません。
    私の場合、VB Script にない機能は、VB6 で DLL として作成しました。

  CGI-Perl(サーバサイド):

    C に近いとは思うんですが、かなり違いますよね?
    ASP が動けば、これに頼ることはないのですが、一般のブロバイダサーバだ
    と Perl のみが多いです。
    私も少し覚えておこうと思います。
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2024 Y.SAK