> First there were mainframes with thin dumb clients. Classic client-server.
Computers were very expensive so would be too expensive to have smart clients. The driving force is cost.
> Then came thick clients, where some processing happened on the local terminal and some on the server.
Computers became cheaper and we had to deliver more things to a growing number of users. The driving force is dual combo of declining cost and increasing demand to do more.
> Technology advanced far enough to install programs locally that ran only locally. The 80's and 90's were quite the decades.
Costs kept going down, computation power kept going up and things became more decentralized so you could do much more at the client side without having to deal with a big server. The driving force was still declining cost and democratization of computers.
> Someone had a bright idea to build server-based applications that could be accessed via a dumb web browser.
That was in order to deal with the issue of managing at scale. The driving force was software management and focus on velocity of change.
> That went on for a while, and people realized that things would be better if we did some processing in JavaScript.
To provide the richness of experience they missed from the 80's/90's locally installed programs.
> Now the push continues to do more and more computation locally.
I would say that in addition to the usual drivers, now there is an aspect of graceful handling of issues introduced by network deficiency (brought due to over-reliance on server-heavy brower-light applications and the generally growing network hungriness) + increased awareness of privacy concerns.
> Can't wait for the next cycle.
Maybe server-side democratization/aggregation and continued emphasis on strengthening local experience.