機械語からJavaへの進化の歴史
経営情報システム 第9回
「スマートフォンやパソコンは、常にものすごいスピードで動いています。その裏側で、人間はどうやって冷たい機械に意思を伝えてきたのか」。動画はこんな問いかけから始まります。このページでは動画の流れにそって、プログラム言語の世代、手続き型とオブジェクト型の違い、Javaのアプレット・サーブレット・JDBCまでをまとめました。まず動画を聞いて、あとからここで復習するのがおすすめです。
人間は、どうやって「機械」に意思を伝えてきたのか
スマートフォンやパソコンは、いつも猛スピードで動いています。その裏側で、人間は冷たい機械にどうやって意思を伝えてきたのか。動画は、この歴史を知ると試験の用語が「無機質な暗記」ではなく、生きたストーリーとして頭に残る、という切り口で始まります。
扱うテーマは3つです。まずプログラム言語の世代、次に手続き型とオブジェクト型の違い、最後にJavaの関連技術(アプレット・サーブレット・JDBC)です。
第1・第2世代:機械に合わせていた時代(低水準言語)
第1世代は、機械が直接読み取れる機械語の時代です。命令のすべてを、0と1だけで書きます。人間の側が、完全に機械の都合に合わせていた時代でした。
補足:0と1だけで書くと、どれくらい大変?(自作の数値例)
0と1を8個並べた「8桁」の並びは、2を8回かけて256通りあります(28=256)。たとえば、10進数の13は2進数で1101です。数字ひとつを書くのにも、0と1の並びに直す作業が要ります。これを何千行も続けるのが、機械語でのプログラミングです。
これでは人間がもたないので、第2世代としてアセンブラが生まれました。機械語の命令を、人間にわかる言葉(略号)に置き換えたものです。動画の説明では、CPUが行う演算をそのまま記述するもので、家電に組み込まれたマイコンなど、CPUの機能を直接使いたい場面で用いられます。
(補足:言葉の整理です。IPAの基本情報技術者試験シラバスは、プログラム言語の変遷を「機械語、アセンブラ言語、高水準言語と発展してきた」と書いています。厳密には、略号で書く言語が「アセンブリ言語(アセンブラ言語)」で、それを機械語に翻訳するプログラムが「アセンブラ」です。動画は両方を「アセンブラ」と呼んでいます。)
この第1世代と第2世代をまとめて低水準言語といいます。聞き手が確認するとおり、「レベルが低い」という意味ではありません。
低水準って、ダメな言語みたいに聞こえますよね。
そうではありません。「機械に近い」という意味です。電子レンジの頭脳であるCPUに、直接「モーターを回せ」と指示を出すイメージです。
なるほど、機械寄りの目線、ということですね。
第3・第4世代:人間の言葉に近づいた時代(高水準言語)
第3世代では、もっと人間の言葉に近い言語が登場します。動画では、第3世代は手続き型の言語で、FORTRAN・COBOL・C言語・BASICなどが該当するとされます。処理の手順を、順番に書いていく言語です。
さらに人間の言葉に近いのが第4世代です。動画では、第4世代は処理手順を意識しなくてよい非手続き型(つまりオブジェクト型)の言語で、C++・Java・C#・スクリプト言語などが該当するとされます。第3世代と第4世代をまとめて高水準言語といいます。動画はここを「人間が機械に合わせる」関係から、「機械が人間の言葉に合わせてくれる」関係への逆転だと表現します。
確認:世代の分け方は資料によって違います
動画は「第4世代=非手続き型=オブジェクト型(C++・Javaなど)」と整理しています。一方、公的資料では次のような点が確認できました(資料により異なります)。
- IPAのシラバスは「世代」ではなく、機械語・アセンブラ言語・高水準言語という発展と、手続型言語・オブジェクト指向言語・スクリプト言語という分類を挙げています。
- Wikipedia英語版では、第4世代言語(4GL)は1973年ごろから使われた語で、データベース言語や宣言型言語など「手続き型よりさらに高い水準」を主張した言語に使われ、第3世代の例にはCOBOL・C・Javaが挙がります。
- つまり、第4世代の定義は資料によってゆれます。試験対策としては「動画(や使っているテキスト)の整理」を押さえつつ、「オブジェクト指向は考え方、世代は分け方」と区別しておくと混乱しません。
手続き型とオブジェクト型:レシピから注文へ
ここからは、動画が「システムに対する考え方そのものが変化した重要なポイント」とする話です。
手続き型は、処理手順を1つ1つ順番に記載します。欲しいデータに応じた関数を選び、データを操作していきます。聞き手のたとえでは、「玉ねぎを切る、フライパンを熱する」と全手順を細かく指示するレシピのようなものです。動画では、この方法はシステムが巨大化すると限界が来る、とされます。
そこで登場するのがオブジェクト型です。機能(手続き)と状態(データ)で定義されたオブジェクトを使い、そのオブジェクトに処理の要求であるメッセージを送ります。するとオブジェクトが、そのメッセージに対応した手続きを実行します。この一連の手順をメソッドといいます。
これはレシピというより、レストランの注文ですね。シェフに「ハンバーグをお願い」と言えば、作り方(メソッド)はシェフ自身が知っていますから。
その通りです。呼び出す側は手順を知らなくていい。楽ですよね。
さらにプログラミングでは、類似のオブジェクトをまとめて扱うと効率が上がります。この類似のオブジェクトの集まりをクラスといいます。聞き手はこれを、会社の組織図や部門編成にたとえます。「洋食部門」というクラスにシェフをまとめるイメージです。動画は、複雑な現代のシステム開発にはこうした組織化の概念が不可欠で、だからオブジェクト型が主流になった、と説明します。
(補足:Oracleの公式Javaチュートリアルでは、オブジェクトは状態と振る舞いを持ち、状態をフィールドに、振る舞いをメソッドとして外に見せる、と説明されています。また、クラスは個々のオブジェクトを作る設計図で、個々のオブジェクトはそのインスタンス(実物)です。動画の「類似のオブジェクトの集まり」という言い方は、試験で問われる場面では「同じ設計図から作られるオブジェクトの型」と読み替えると正確です。)
| 手続き型 | オブジェクト型 | |
|---|---|---|
| 考え方 | 手順を順に書く | オブジェクトに |
| たとえ | レシピ | レストランの注文 |
| 中心になるもの | 関数と | 機能(メソッド)と |
| まとめ方 | —— | 類似のものを |
Javaの関連技術:アプレット・サーブレット・JDBC
最後は、Webの世界を裏側から支えるJavaの関連技術です。
Javaアプレット:ブラウザ側で動く
Javaアプレットは、Webブラウザ上で働くJavaプログラムです。Webブラウザからアプリをダウンロードして、処理を行います。動画は、このアプレットは最新のJavaでは廃止されていると指摘します。理由として聞き手は、ブラウザに重い調理器具のようなアプリをダウンロードして処理するため、動作が重くなったりセキュリティ面で問題になったりしたのでは、と推測し、講師が「その推測完璧ですね」と受けます。
補足:アプレット廃止の経緯(令和8年4月1日現在)
OpenJDKの公式資料で、時期を確認しました。Applet APIはJDK 9(2017年)で非推奨、JDK 17(2021年)で削除予定の非推奨となり、JDK 26で削除されました。JDK 26は2026年3月17日に一般提供が始まっており、令和8年4月1日時点ではすでに削除済みです。
公式資料が挙げる理由は、「最近のJDKも現在のWebブラウザも、アプレットをサポートしていない」ことです。ブラウザがプラグイン方式の対応をやめ、さらにアプレットを安全に動かす土台だったSecurity Managerも、JDK 24で恒久的に無効化されました。動画の「重い・セキュリティ面」という推測は、公式資料にそのままの形では書かれていません。「動画では」と断った説明として押さえておくのが安全です。
Javaサーブレット:サーバー側で動く
アプレットに代わって今の主流になっている、と動画が紹介するのがJavaサーブレットです。アプリをダウンロードさせず、Webサーバー側で処理を実行して、結果だけをWebブラウザに返すJavaプログラムです。聞き手のたとえでは、すべて厨房(サーバー)で処理し、完成した料理(結果)だけを運んでくるので、こちらは楽で安全、ということになります。動画はこれを、リソースをどこに持たせるかというシステム設計の工夫として語ります。
(補足:サーブレットの仕様書(Jakarta Servlet Specification)は、サーブレットを「コンテナが管理し、動的コンテンツを生成するWebコンポーネント」と定義しています。プラットフォームに依存しないJavaのクラスで、Webサーバーが読み込んで実行します。仕様の名前は、もとの「Java Servlet」から「Jakarta Servlet」に変わっています。動画の「アプレットに代わって主流」という位置づけは、公式資料では確認していません。)
JDBC:データベースとの共通の窓口
もう1つが、データベースにアクセスするためのJDBCです。動画の説明では、Javaのプログラムが、さまざまな種類のデータベースで使えるよう、間に入って変換を行う仕組みです。聞き手は、サーバー側の厨房が、さまざまな食材(データベース)から迷わず食材を取り出せるようにする「共通の通訳」にたとえます。この仕組みがあるおかげで、Javaはさまざまな環境で使える汎用性の高い言語として使われ続けている、と動画は結びます。
(補足:JDBCは、Javaからリレーショナルデータベースなどの表形式のデータへアクセスするためのAPIで、SQL文の実行、結果の取得、変更の反映ができます。Oracleの資料では、異なるデータソースに対応するドライバを、その場で差し替えられる枠組みを持つと説明されています。名前は一般に「Java Database Connectivity」の略とされます。動画の音声では「Javaコネクティビティ」と途中が抜けて聞こえますが、正式な展開は上のとおりです。)
| 技術 | 動く場所 | ひとこと |
|---|---|---|
| アプレット | ブラウザ側 | 送られて実行 |
| サーブレット | Web | 処理して |
| JDBC | Javaと | 共通の窓口 |
試験の注目点
動画で強調された整理と、確認したい点
- 動画では、第1・第2世代が低水準言語、第3・第4世代が高水準言語。「低水準」は機械に近いという意味で、レベルが低いという意味ではない。
- 動画では、第3世代は手続き型(FORTRAN・COBOL・C・BASIC)、第4世代は非手続き型・オブジェクト型(C++・Java・C#・スクリプト言語)と整理されている。ただし世代の分け方は資料により異なる。
- 動画では、オブジェクトにメッセージを送るとメソッドが実行され、類似のオブジェクトの集まりをクラスと呼ぶ(正確には、同じ設計図から作られるオブジェクトの型)。
- アプレットはブラウザ側で動く。動画ではJava最新版で廃止とされ、公式資料ではJDK 26で削除と確認できた。
- サーブレットはサーバー側で処理して結果だけを返す。JDBCはJavaが多様なデータベースにつながるための共通の窓口。
まとめ
動画の主役は、「人間がいかに効率よく楽をして、システムを動かすか」という先人たちの工夫の歴史でした。第1世代の0と1の世界から、人間の言葉や思考に近い言語へ。そして、手順を書き連ねるレシピから、メッセージを送るだけの注文へ。Javaの関連技術も、アプレットからサーブレットへ、データベースとの間にはJDBCを、という流れで見ると整理しやすくなります。
動画の最後は、この先の第5・第6世代がどうなるのかという問いかけです。話しかけるだけでオブジェクトが生まれ、システムができあがる。プログラミング言語という概念そのものが消える未来が、すぐそこまで来ているのかもしれない、と動画は結びます。
動画で聞く
続けて読む
- 第4回 USB規格とコネクター経営情報システム・コンピュータ基礎 004
- 第5回 バスとインターフェース経営情報システム・コンピュータ基礎 005
- 第6回 OSの5大機能経営情報システム・コンピュータ基礎 006
- 第7回 画像形式と音声デジタル化の仕組み経営情報システム・コンピュータ基礎 007
- 第8回 ソフトウェアの分類と階層構造経営情報システム・ソフトウェア 001
- 第10回 プログラミング言語の正体経営情報システム・ソフトウェア 003
- 第11回 ファイル分類と文字コード経営情報システム・ソフトウェア 004
- 第12回 プログラム実行の流れとWeb技術経営情報システム・ソフトウェア 005
- 第13回 OSSライセンスとコピーレフト経営情報システム・ソフトウェア 006
- 第14回 データベースの正規化経営情報システム・データベース 001
- 経営情報システムのWebテキスト一覧同じ科目の48本を一覧・検索
- 中小企業診断士 1次の講座トップ科目別プレイリスト・人気の講義・ファイナルペーパー

