This essay was originally published on my blog
The early web was limited, with browsers only able to request and display static HTML pages as sent from the servers. To make the web more dynamic, developers sought ways to add interactivity and update the page after it had been loaded. When the management at Netscape decided to add a scripting language to their browser, some of their expectations were for it to:
- Allow Document Object Model (DOM) manipulation.
- Be very accessible and easy to learn.
- Be embedded within HTML files.
- Be interpreted.
We have also seen the rise of meta-frameworks like NextJS, Nuxt, and SvelteKit that take advantage of isomorphic JS to build high-performance web apps. Isomorphic JS is a technique that allows pages to be assembled either on the client or the server. Server-side rendering has many advantages, such as faster initial display, better search engine optimisation (SEO), and the ability to run websites on older browsers that may not support JS. It is not a universal solution, however — client-side rendered applications are slower to display initially as they download large JS bundles. They are more responsive once loaded which many users will undoubtedly appreciate.
The Framework Wars