This model is effective and has several advantages.
There are some disadvantages to it as well. Everything must be “cooked” in one place (the server) and then shipped to another because the server is responsible for much of the UI rendering (the browser). It’s the same as trying to cook dinner at a local restaurant and then bringing the plates home. If you cook in your kitchen, your dinner will be hotter and served faster.
Quick and Reliable
It is important to perform well. The car is the fastest. The blender with the most power. Search results that are the quickest. We want the greatest, fastest experience possible in all we do, especially when it comes to software.
Network latency is a major impediment in modern web development. The time it takes to request the server and receive the results can account for a significant amount of page load time, and the problem is exacerbated by hit-or-miss mobile internet. Every byte that passes from the server to the browser is significant. Users will perceive your program to be faster if it can accomplish more with fewer bytes from the server.
A platform for Universal Front-End Development
ASP.NET, for example, may make some front-end chores “drag-and-drop” simple, but it may not be the greatest platform for raw service speed (too much overhead). Perhaps a simple, quick service provider would be a lightweight NodeJS server.
Tablets, Phones, and Other Electronics
The next generation of rich mobile experiences will not be powered by plug-ins. There are simply too many devices and platforms for the plug-ins to achieve the required uniform distribution.
The same can be said of “native” applications. Businesses will become tired of rewriting an app three to five times merely to make it mobile-friendly. It’s a necessary evil of today’s phones and tablets (thanks to the app store distribution strategy). Still, there’s a growing consensus that HTML5 will become the new “standard” in “native” app experiences as well.
Standards-based programming, with supporting technologies like SVG, Canvas, and WebGL, is positioned to do anything a plug-in or native app can do, with all of the reaches a plug-in can’t have and all of the convenience native apps can’t provide.
App Stores and Offline Support
The requirement of talking to the server after most user activities is a crippling requirement of server-side programming. When you remove the server, the site or app becomes a paperweight.