I just stumbled over some confusion, the whole naming scheme in the Internet is broken with a new generation of sites coming out. The press doesn’t know what to write, there are a lot of technologies, new paradigms and old ones. This is probably the new “Web 2.0″, when nobody had any idea what he was talking about, but it had something to do with shiny logos. I try to evaluate that here and give a more in depth explanation what we are talking about.
I call them Next Generation Websites, otherwise I would get confused myself.
The GUI vs “under the hood stuff”
One mayor problem is always that non technical people don’t acknowledge something until it changes something with the user interface, so they can “see” it. This is also a problem for the press, because they don’t know what terms their users understand without getting into jargon.
They bind the NGW to some design characteristics, for example gradients, animations, patterns and some UX design patterns. This is probably like the fashion industry. When starting projects make a new design of their site, they probably use the most trendy one.
The Terms
- JavaScript
- Ajax
- Single Page Application
- Rich Internet Application
- Web Application
- App
- HTML5
- CSS 3
The programming language of the web, for everything that happens in the browser it’s necessary. There is a shift to put more and more functionality on the client side, so there is a surge in JS use. Suddenly we need JS developers, like we need C++ developers for specific projects.
The possibility to load data in the background into the browser, this is the one core technology that enabled Single Page Applications. It was popularized in the mid 00′s, but since then there was no mayor new one that really changed what is possible. That’s why all modern sites can theoretically be compatible down to IE 6.
The web began with multiple .html files, this is not the case for these kind of sites. There is just one single page loaded and the rest happens trough JavaScript communication with the server, mostly in the JSON trough Ajax calls. This “technique” offers all the possibilities, that native applications use. It can be done without any interruption. The other advantage is, that the development process works the same, you interact with the backend exactly like Apps do. On the other hand, you need people who are able to handle a full project with JavaScript what it was not designed for. Modern approaches like Backbone.js popularized that concept. Now this gets expanded to traditional content heavy sites.
They rely on modern JavaScript features in the browser, but there are fallback technologies for older ones. Here is the modern JS site developed first and made compatible with older ones, so you can rely on the best possible user experience and still be accessible by older Internet Explorers.
So it has been possible years ago, but not many participants had the expertise and the experience in doing so. Google Maps was one of the first mayor sites based on this idea, but by none other than Google.
The Internet is still the stuff that happens in the Browser for most people, so they have seen fancy stuff. Since Java was accessible from the browser, developers were able to build all kind of stuff into the browser. Anything else than Flash was a problem because the install base was wide under 90%.
There are also heavy limitations, because search engines weren’t possible to index the data, so anything else than an app or game was a very bad business decision. Not the case for Single Page Applications, it’s not that trivial, but there are a few ways Google can get to the data.
The most simple description for sites that were made not just for consuming content.
Because you click a link in a browser and you send data to the backend, was theoretically the Internet able to emulate all kinds of functionality since it’s inception. If you generate sites where your session is saved as part of the available links on the site, you are able to didn’t even need cookies for that.
Theoretically, with having a long load between sites, anything would even be able to work on Tim Berners Lee first experiments. So the possiblity for Web Applications is a part of the WWW since forever.
It was new, so nobody knew at first how to do this. Over the years, this became one of the most popular ways of programming applications (especially for the enterprise), so it was more an paradigm problem than a technological one. Still most changes are new libraries or ways of doing things on the web, than really new technologies.
App
People were used to traditional software, but at some point you had to buy it in stores and install it. Getting an application from the Internet with a single command/click existed very early and got popular in the Open Source space, especially on Linux.
The iPhone perfected that for user simplicity, with a single install command could you get a software for one specific purpose on you mobile device. Now these called “Apps” were more like websites, but the developers had all the native capabilities and the user experience quickly outperformed websites in user experience.
This got the new benchmark, the WWW is under threat. This quickly gave JavaScript developers incentive to get on par with native apps.
The browser vendors implemented a lot of features, that make this easier, but developers didn’t use them to be compatible to older browsers. This is still a problem, but instead of not using them, developers figure out ways to have the same version with older browsers but just missing user experience / animations instead of functionality.
This one doesn’t even have it’s own Wikipedia article, all the modern fancy stuff is made with it.
These smooth animations and depth effects have names like CSS transitions or shadow tag. They have the sampe problematic that they don’t work on old browsers, but there are also methods to have decent fallbacks for them.
When you know that your target browser is Chrome for example, you can make apps that can blow your mind and look better than most native applications. People will call this then their NGW term of choice.
This is just the fifth revision of the HTML standard, it adds new features like the <video> tag, but for the user nothing changes much. Before that and still today Flash was used instead, it still works better with it than with the tag in a lot of cases.
The funny thing is, for some reason the press took this term to describe modern sites. I have no idea why, maybe because it was something new around that time and having something interactive like video work by the browser itself is really cool?
The other thing is, people know the term HTML and most people have never heard of CSS and CSS3 came around the same time. Both new specs are also implemented differently, there is not a single one that was coming out, they get implemented step by step. Cool stuff that will come in the future, but take years to get implemented, are part of HTML5 and CSS3.
What to do now?
Whoever set the term HTML5 was successful, like the term Web 2.0 sparked weird unclear conferences, we have to live with it. When you are around technical guys, call your new site what it is, a Single Page Application.
Let’s build beautiful and powerful websites and wait for the Web 3.0, smartwatch, or glass app.