私は長い間Webプログラミングを行ってきましたが、どこかで、今日の仕事をしている理由を追跡できませんでした(または、どうしてこのように物事をするようになったのですか)。
私は基本的なASP Web開発から始めましたが、非常に早い段階で、ページ上でディスプレイとビジネスロジックが混在していました。クライアント側の開発は大きく異なり(VBScript、さまざまなJavaScriptの種類)、サーバー側の検証について多くの警告がありました(したがって、クライアント側のロジックからは遠ざかりました)。
その後、しばらくの間ColdFusionに移りました。ColdFusionはおそらく、タグを使用して表示ロジックとビジネスロジックを分離した最初のWeb開発フレームワークでした。私には非常にはっきりしているように見えましたが、非常に冗長であり、ColdFusionは市場の需要が高くなかったため、先に進みました。
その後、ASP.NETバンドワゴンに飛び乗り、MVCアプローチを使用し始めました。また、Javaはエンタープライズシステムの象牙の塔の言語であるように思われ、MVCアプローチも試しました。その後、ASP.NETはこのMVVM設計パターンを開発し、Java(正確にはJ2EEまたはJEE)も苦労し、MVC2アプローチを採用しました。
しかし、今日、私が発見したのは、バックエンドプログラミングではなく、興奮と進歩がそこにあるということです。また、サーバー側ベースのMVCプラクティスは時代遅れのようです(人々はもうJSTLを実際に使用していますか?)。今日、私が取り組んでいるほとんどのプロジェクトで、JavaScriptフレームワークとクライアント側の開発は、すべてのエキサイティングで革新的な進歩が行われている場所であることがわかりました。
サーバーからクライアント側の開発へのこの移行が行われたのはなぜですか?JEEプロジェクトの1つの単純な行カウントを行いましたが、JavaScriptにはJavaよりも多くのコード行があります(サードパーティライブラリを除く)。JavaやC#などのプログラミング言語を使用したほとんどのバックエンド開発は、単にRESTのようなインターフェイスを作成することであり、表示、視覚化、データ入出力、ユーザーインタラクションなどのすべての苦労が対処されていることがわかりますAngular、Backbone、Ember、Knockoutなどのクライアント側フレームワーク経由
jQueryの前の時代に、n層開発のMVCのM、V、Cの間に明確な概念線があった多くの図を見ました。jQuery後、これらの線はどこに描かれますか?MVCとMVVMは、クライアント側のJavaScriptコードにすべて揃っているようです。
私が知りたいのは、なぜそのような移行をしたのですか(サーバー側プログラミングの強調からクライアント側へ、コンパイル言語の優先からスクリプト言語へ、命令型プログラミングから関数型プログラミングへ、これらはすべて同時に発生したようです) )そして、この移行/シフトはどのような問題を解決しましたか?