Hacker News new | past | comments | ask | show | jobs | submit login

Four eras of practice:

1. DHTML scripts: individual scripts that provided functionality e.g. a date picker. You grabbed the scripts, and wired them together on your pages to enhance your page. Includes the first generation of Ajax scripts (in page communication with the server, often using raw HTML, text, or XML). Hidden iframes and other techniques also used for server communications.

2. jQuery: the popular library that everyone used because it provided a fabulous API to access and modify the DOM, plus helper methods to abstract out browser differences and bug workarounds. Bringing Ajax to all web developers, allowing them to enhance the pages delivered by their backend web server of choice (PHP, RoR, etcetera).

3. component framework (Cambrian explosion): mostly enhance pages delivered by the server, each framework with a unique approach to its API. Pages use components designed for each framework. YUI, Dojo, jQuery UI, Mootools, ExtJS. Starting to see more Single Page Apps, but no widespread usage of any framework on large numbers of sites.

4. React (and other 2nd gen frameworks, mostly virtual DOM): fully component based, can easily deliver an SPA (Single Page Application) and often the server only really delivers JSON (no HTML pages except a blank container). Widespread usage of React in industry.

There were plenty of early adopters for each technology, but as far as I recall, widespread usage follows the progression above. And the above ignores plenty of important first innovators and minor steps (for example, I used script.aculo.us).

The first stunning example was back in 2000 which was Outlook Web Access on Internet Explorer 5: the first usage of XMLHttp and it was many years before anything else approached its sophistication as a (mostly?) single page app with complex updates. I presume it had a proprietary component system, and IE5 was enhanced to make it work smoothly.




Between 3 and 4 there were knockout and angular. Also ember I think?


And Backbone


I would class those as era #3. There was a huge variety of innovation, and some libraries/frameworks had relatively more success (angular, backbone) or less success (qooxdoo, sproutcore). I think industry usage broadly follows the four steps I gave.

The amazing thing is that everything was there back in 2000, and OWA showed the way. AFAIK IE5 had all the features needed to deliver an SPA, albeit the techniques to reliably and performantly take advantage of IE took a long time to either discover or to percolate through the industry. I remember people discovering almost hidden IE features all through the 00’s, and then taking advantage of those features. I personally recall IE5.5 definitely had all the DOM features I needed for a component framework, since I remember angrily writing minor workarounds specifically for that version.

The vast majority of web developers were glued to their particular choice of HTML backend, so industry adoption of front-end frameworks was hideously slow.

React was when frontend JavaScript frameworks appeared to me to become really mainstream, rather than just early adopters (era #3 of my list). My own progression was script.aculo.us -> dojo -> personal custom framework. My custom framework had major advantages for me over dojo (better: performance, reliability, flexibility, improved UI, development speed).

Each individual developer will have their own view of how the industry progressed, but this is how I perceived it as a generalisation.


This sums up the evolution properly, but one correction is that the component frameworks were there before jquery so 2 and 3 need to switch places.

edit: ok looks like they were contemporaries


4 is from a decade ago. Perhaps consider what has happened since.


The front-end world has been relatively stable since then. Sure, there have been experiments with other approaches (Cycle.js, Elm, Svelte, ...), but by and large React and its contemporaries are still by far the dominant players, and while they have evolved as well, their mental model is still largely similar, so I'd group them in the same "era".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: