おはようございます!
今日も昨日知ったことのアウトプットをしていきます!
昨日は非常に面白いYouTubeの動画を発見しました。
この動画のシリーズでは、JavaScriptが誕生してからの歴史を振り返ることで、元々どのような課題を持っていて、それらがどのように改善されてきたかを知ることができます。この背景の情報を知ることによって、プログラミング言語そのものだけでなく、開発に必須となる他のツールについての理解も深めることが出来ます。
この動画の配信者のしまぶーさんは動画の中で、Howの知識を入れる前にWhyを学ぶことによってより深い理解ができるとおっしゃっていますが全くその通りだと思いました。
ということで、今日からはこの動画を参考にしながらJavaScriptの歴史シリーズとして記事を書いていきたいと思います。
目的は、この動画の目的と同じようにJavaScriptの開発の中で必要な概念である「モジュール」「パッケージ管理」「ビルド」の3つの意味がわかることを目的とします。あとは、これからReact.jsや、TypeScriptについても学んでいくのですが、それらについてもこのシリーズの記事を書き終わる頃には説明できるようになっていたいと思います!
それでは早速前提の知識となる歴史編から書いていきたいと思います!
JavaScriptの誕生
JavaScriptは、1995年にNetscape Communicationsの技術者ブレンダン・アイクによって開発されました。当初はLiveScriptとして知られ、後にJavaScriptに名前が変更されました。この新しいプログラミング言語は、Webブラウザ上で動的なコンテンツを作成するために設計されました。
JavaScriptの登場により、Webページは単なる静的なテキストから、ユーザーと対話する動的なページへと変貌しました。例えば、フォームの入力チェックや、ユーザーの操作に応じてページの一部を変更するなどの機能が可能になりました。
JavaScriptの誕生は、Web開発の歴史において重要なマイルストーンであり、現代のインタラクティブなWeb体験の礎を築きました。今日では、多くのWebサイトやアプリケーションがJavaScriptを使用しており、その影響力は増しています。
ちなみに、JavaScriptが登場する以前のwebは主にHTMLとCSSの世界でした。
これらのページは、テキスト、画像、リンクなどの基本的な要素を表示することができましたが、動的な機能はほとんど持っていませんでした。
例えば、何かを更新または変更するたびに、ページ全体をリロードする必要があり、ユーザー体験を遅く不便にしていたり、ユーザーの操作に応じてページの内容を変更することができないので、今のようなインタラクティブな体験はできませんでした。
しかし、JavaScriptにも課題があり、一気に広がるということにはまだなりませんでした。
初期のブラウザ互換性問題: Web開発の難題
Web開発の初期段階では、ブラウザの互換性問題が大きな課題として存在していました。同じコードでも、異なるブラウザで異なる表示や動作をすることが一般的でした。
1. 標準の欠如: それぞれのブラウザがHTMLやCSSの解釈に独自のルールを持っていたため、統一された表示を実現するのは難しかったのです。
2. JavaScriptの違い: 特に、Netscape NavigatorとInternet Explorerの間でJavaScriptの動作に大きな違いが見られました。
3. レンダリングエンジンの差異: 各ブラウザの背後にあるレンダリングエンジンの違いが、ページのレイアウトやデザインに影響を与えました。
4. CSSのサポートのばらつき: 一部のCSSプロパティは、特定のブラウザでしか正しく動作しないことがありました。
5. ハックの時代: これらの問題を克服するため、開発者はブラウザごとの「ハック」や特別な対応を行う必要がありました。
これらの互換性問題は、Web開発の初期の大きな難題でした。
しかし、課題はこれ以外にも存在しました。
セキュリティとコード管理の課題: 初期のWeb開発の悩み
初期のWeb開発では、ブラウザ互換性問題だけでなく、セキュリティとコード管理の課題も大きな悩みでした。
1. セキュリティの欠如: 当時のブラウザはセキュリティ面で未熟で、クロスサイトスクリプティング(XSS)やクロスサイトリクエストフォージェリ(CSRF)などの攻撃に対して脆弱でした。
2. コード管理の困難: 初期のWeb開発ではバージョン管理システムが一般的ではなく、コードの変更履歴を追跡するのが困難でした。これにより、バグの特定や修正が非常に難しい状況が生じました。
3. テスト環境の不足: 自動テストツールが発展していなかったため、コードの品質を保証するのが一層困難でした。
4. ドキュメントの欠如: コードのドキュメント化が十分でなく、開発者間での情報共有が不足していました。
5. 依存関係の管理: ライブラリやフレームワークの依存関係の管理も手作業で行う必要があり、非効率でエラーが発生しやすい状況でした。
これらの課題は、初期のWeb開発を困難にしましたが、現代ではセキュリティ対策が強化され、バージョン管理システムや自動テストツール、依存関係管理ツールなどが普及しています。
この進化の過程を見ていくことで、JavaScriptを利用した開発の理解を深めていこうというのがこの記事も目的です。
まとめ
この記事では、JavaScriptの誕生と初期の挑戦、特にブラウザの互換性問題やセキュリティ、コード管理の課題に焦点を当てました。これらの問題は、初期のWeb開発を困難にしましたが、技術の進化により克服されています。次回は、ブラウザ戦争とJavaScriptの進化について書いていきたいと思います。
歴史を知って現代のWeb開発の理解を深めていきましょう!。
それでは今日も学習スタートします!