In recent years, developers use react/es2015/webpack a lot to build SPAs.
An example, Ember 2 is built for SPA more than Ember 1.
Is this the future?
I just think SPA is simple always. There is nothing to play with it. The KEY is how to build an app for multiple developers, involving many pages, abundant css/javascript.
What do you think?
the difference to me starts in the meta-state and the rendering processes.
So the real benefit of a SPA would be distributed computing, if you can reduce the page loads from your server infrastructure and use CDNs you can actually reduce a lot of traffic and decentralize it.
if you're smart and use p2p you and don't want to keep exactly track or in control of the structure you can even make it offline available with a local storage + workers and so on.
So that's where it can shine .... if the state does not have to be maintained on the server or eventual consistency is enough or you want to distribute between clients.
So for example a landing page SPA is a really stupid thing to do or a anything where publicity is business value. Google and all the other search engines want an XML-Dialect (aka HTML) to parse so they can scale they don't want to waste their resources by rendering and loading and rendering and loading and again ....
So are SPA the future .... I tend to agree with mev-rael I've built dynamic pages with dom manipulations while IE6 Support was mandatory so it's old.
It's still then and now is an essential part of web applications so it's part of the future.
Just don't try to replace things that don't need to be dynamic .... that's just a shitload of work and you're probably just make things overly complex
Here's my two cents: I used to think like you. For me, SPA's were way to "messy" to build big stuff with. At the time, I looked a little into Ember, and had tested Angular 1.
React was the first library in which I could see myself building something big. I think it's a game changer. It deals with the hard stuff for you and let you organize your code architecture whatever you like. And yes, I think it's "the future" (maybe not react itself, but the virtual dom hype it created).
You're not even bound to SPA's. People are already using the technology to build multiple page apps, with url routing and all (e.g. react-router).
And finally, usually there's a backend behind, dealing with the data. So an app is not just the frontend. There's plenty to "play with" :D
EDIT: Almos forgot to answer the real question. haha -> I think people call modern apps SPA's because you often end up serving only one HTML file, even if the app itself has multiple pages.
SPA is a new useless buzzword for technic already existed for many years and called DHTML.
It is true that most of modern apps are very dynamic (D in DHTML): they use AJAX, APIs, animations, dynamic content/page loading all the time. SPA just replaced old DHTML term. So somehow it is possible to say that many apps today are SPAs.
In reality, it is a wrong statement. App can't be an SPA. Let me explain what a SPA really is: SPA is a very complicated and dymanic page, only one page within your app, but it's never a whole app. News feed (Index page) in Facebook is a classic example of a very complicated SPA, however, many other pages on Facebook are still simple PHP pages and actually some pages like help, docs are static HTML pages.
Don't listen to the quantity, listen to quality and always think yourself. Many people just don't want to think and because of that the most of the information you read on the Internet is a garbage.
Is SPA a future? No, it can't just because It is a technic from the past. Check, for example, how YouTube or GitHub loads some of their pages/sections, it is just oldschool AJAX which receives ready HTML from the server and just inserts it. Even URLs changed at that time with #! but now we have a modern Browser History API to make friendly URLs even from JS.
The main problem with SPAs and Angulars is - people just don't want to learn or keeps ignoring the simpleness of HTTP itself - the core of the Web. Sir Tim Berners-Lee invented a very simple mechanism of building documents for the Web and transfering those documents from one PC to another. Modern Internet is 25 years old now and this mechanism is still the most simple for that job - connecting the information on the Internet and it is still used billions of times every hour. You can't use something else here. There is no need of overengineering and overcomplicating things. If people want to build web apps like native apps they, probably, need to invent other protocols first, but I'm sure these attempts in Web will fail because HTTP and HTML is and will be the simpliest way for sharing the information globally.
The fastest apps are not SPAs with 2MB of JS, over 9000 loaded scripts, styles, content via AJAX all the time. Fastest apps are oldscrool static server generated HTML via PHP, Python, whatever else with bundled, minified, gzipped one CSS file and one JS file, may be one SVG file. In some cases it can be inlined into first page. Server should return only the minimum-maximum of what IS needed for current request, no more - no less. Wisely combining this HTML with simple JS, AJAX and JSON will give you power to build modern and fast apps. Web Standards are evolving and today there is a preloading specification which will improve the perfomance of modern apps.
SPA as a term and Angulars will be forgotten in few years, but the creation of Sir Tim Berners-Lee will be remembered in the history of humanity forever.