0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なんでこんなにもWebフレームワークは目まぐるしく変化しているんだろうか

Posted at

📣:Web開発のトレンドに適応したい方へ ✍️

はじめに🖐️
この情報をぜひご覧ください。ここでは、JSフレームワークとOSやブラウザの変遷をざっくりと確認できます。

通信技術の進化(3G、4Gなど)がどれほど大きな影響を与えたかがわかり、非常に興味深いです。

Webアプリケーション開発のためのフレームワークは、時代ごとに登場した「解決策」として進化してきました。本記事では、これらの技術が登場した背景を掘り下げ、それらがどのように問題を解決し、現代のフレームワークが持つ思想や特徴を深く理解することを目指します。

免責事項
調査の上で執筆していますが、あくまで私個人の見解です。少し強引な部分があるかもしれません。

目的 🧠
歴史を知ることで、「なぜこの技術はそのような構造を持っているのか」「なぜこの設計思想が重要なのか」といった背景を理解でき、将来的に新たなフレームワークや手法が登場したときにも、基盤となる文脈を把握し、より正確にその技術を吸収できるのではないかと考えています。

フレームワークとは?
フレームワークとは、Webアプリを作る際の雛形を指します。Next.jsやAngular.jsなど、Webアプリ開発には今や欠かせない存在です。

フレームワークとライブラリの違い
フレームワークはアプリ開発の枠組みを提供しますが、ライブラリは一部機能を提供するものです。フレームワークは、アプリケーションの設計や構造を定義し、再利用できる「部品」を提供します。

歴史を振り返りつつ因果関係を見てみましょう🏃‍♂️
ここからは、画像を見ながら進めていきましょう!

静的Webから動的Webへ:CGIの登場(1990年代)🌅
課題
初期のWeb(1990年代初頭)は、サーバーから返される静的なHTMLファイルのみで、動的なコンテンツを生成することができませんでした。これでは、検索機能や掲示板のようなサービスを実現することが困難でした。

解決策
CGI(Common Gateway Interface)は、サーバー側でプログラム(例:Perl)を実行し、動的にHTMLを生成する仕組みを提供。これにより、ユーザー入力に応じた動的コンテンツ生成が可能となり、Webは単なる静的な文書配布から、簡易的なアプリケーション基盤へと進化しました。

大規模開発への対応:JavaサーブレットとJSP(1990年代後半) 📝
課題
CGIは動的なコンテンツ生成には使えましたが、大規模なアプリケーション開発には向きませんでした。HTMLとロジックが混ざり、保守が難しく、コードの複雑さが増していきました。
こちらも読んでください: https://ceo.skysolution.com/blog/

解決策
JavaサーブレットはJavaという静的型付け言語を使い、処理ロジックの分割と整理を進めました。JSP(JavaServer Pages)を使うことで、HTMLとJavaコードを分離し、保守性が大幅に向上しました。

リッチなUIの要求とAjax(2000年代中盤)🎹
課題
ユーザー体験の向上を目指し、ページ全体の再読み込みなしで一部のコンテンツだけを更新するUIが求められるようになりました。しかし従来はページ全体のリロードが必要で、ユーザー体験が煩雑でした。

解決策
Ajax(2005年)は、非同期通信を利用して、サーバーから必要なデータだけを取得し、部分的に画面を更新する仕組みを提供。これにより、スムーズなUIが実現し、Webアプリケーションの進化が加速しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?