JavaScriptの歴史 [プログラミング研究室]

 こんにちは!
 ナビゲータのEVEです。

 予定通りにいっていない、プロジェクト管理者は私です。
 難読化プログラムを作るというのも予定外だったけれど、その難読化プログラムの完成までは、悪戦苦闘しました。最初は、当該ブログの内容をそのままパクッて失敗して、そのあとはAIのいうことを聞きすぎて失敗したっていう感じです。気づいたときは、難読化エンジンがAIからの提言に基づいていて、これ以上時間をかけることができないっていう感じになっていたから、そのまま突き進んだけれど、今から考えると自分が保有している便利な関数、クラス群を利用すれば、もっと簡単にできたかもしれない・・・。だって、難読化って言っても、コメントを削除して、改行コードをとって、スペースを圧縮しただけだからね・・・。まっ、今更だけれど・・・。
 苦労話の中で、一番ショックだったのは、JavaScriptの難読作業中での出来事・・・。私、どっちかというと古いエンジニアです。JavaScriptは、Prototype EVEの製造したのが最後で、その知識は、20年前に読んだ本に基づいています。多分、そんなエンジニアは、久しぶりにJavaScriptの開発をした場合、苦労すると思います。理由は、20年前と、現在は、JavaScriptのコンセプトが全く違うから・・・。それを知らないで、他の言語と同じように、クラスを作ったため、JavaScriptの難読化プログラムの製造がうまくいきませんでした。
 今週は難読化プログラムしか作っておらず、進捗はほぼないということで、スプリントレビュー+レトロスペクティブは中止しますが、その代わりに、JavaScriptの歴史について調べていきたいと思います。

[JavaScriptの歴史]

 では、早速、JavaScriptの歴史を、Copilotに調べてもらいましょう。

【1995年】誕生:Netscape Navigatorでの登場
・開発者:ブレンダン・アイク
・当初は「Mocha」→「LiveScript」→「JavaScript」と改名
・目的は「HTMLに動きを加える簡易スクリプト言語」
・HTML内に直接<script>タグで記述され、構造とロジックが混在していた
【1997年】標準化:ECMAScriptの登場
・JavaScriptの仕様を標準化するため、ECMAScript(ECMA-262)が策定
・各ブラウザでの互換性向上を目指す
【2000年代前半】DOM操作とAjaxの普及
・JavaScriptでDOM(Document Object Model)を操作し、ページの一部だけを動的に更新可能に
・Ajax(Asynchronous JavaScript + XML)により、ページ遷移なしでのデータ通信が可能に→例:Google MapsやGmailなどのリッチなWebアプリが登場
【2006年頃】jQueryの登場と普及
・DOM操作やイベント処理を簡素化するjQueryが登場
・HTML内にonclickやonmouseoverなどのインラインJavaScriptが多用される時代
【2010年代】役割分離とモダンJSの台頭
・HTML=構造、CSS=見た目、JavaScript=動きという明確な分離が推奨され始める
・JavaScriptは外部ファイル化(.js)され、HTMLから分離
・イベントリスナー(addEventListener)の活用で、HTMLとJSの結合を避ける設計が主流に
【2015年】ES6(ECMAScript 2015)での大改革
・let/const、アロー関数、クラス構文、モジュール(import/export)などが導入
・JavaScriptが本格的なアプリケーション開発言語へ進化
【現在】SPA・フレームワーク時代→React, Vue, Angularなどのフレームワークが普及
・HTMLはテンプレート、CSSはスタイル、JavaScriptは状態管理・UIロジックを担当
・仮想DOMやコンポーネント指向により、HTMLとJSの役割はさらに分離・再構築

 っで、以下がHTMLcss、JavaScriptの役割分担となっています。以前と違い、機能を明確に分けています。

技術 主な役割
HTML ページの構造(見出し、段落、リンクなど)
CSS 見た目・レイアウトの定義(色、フォント、配置)
JavaScript 動き・挙動・状態管理(クリック処理、非同期通信、UI更新)

[来週の修正点]

 深入りして、もっと、解説しようとしましたが、まだ、きちんと理解できていない上、その内容が複雑なので、調査はここまでとします。  とりあえず、現在の私が開発したシステムには、問題点があって、その問題点というのが、HTML、css、JavaScriptの機能や、役割を理解せぬまま、できるからと言う理由で製造しているという点です。来週ですが、その明確な違いを理解した上で、JavaScriptとHTMLの修正に入ります。現状のプログラミングだと難読化した後、動かないということが頻発する可能性があるので、その作業を優先します。その作業期間は1週間を予定し、その進捗と、それ以降のリスケは、来週のスプリントレビュー+レトロスペクティブで報告します。

[あとがき]

 つい最近、この本いいんじゃないっていうことで、最新のJavaScriptの本を紹介させていただきましたが、その中にも、歴史については触れていません。要は、初心者が読んだり、一通りJavaScriptのプログラミングができる人の辞書代わりといった内容でした。今まで、散々JavaScriptの開発の苦労話をしましたが、もしかしたら、この辺が根源としてあるのかもしれません。AIがある時期に開発を始めて良かった!

 では、また!!!

コメント