New specifications brought new abilities, such as better DOM manipulation and much needed performance updates. This allowed for smoother animations and just far more control over a webpages design.
Ajax steps into the picture
Back to Ajax. The ability to not have to refresh pages was pretty much like a brand new drawing canvas with plenty of potential. And people made use of it. Single-page applications became all of the craze for some time. Companies were completely rebranding themselves at this point with new sleek designs. That is until they realized that having just a single page was terrible for SEO and many of those companies lost their traffic and probably went out of business.
HTML5 brought with it a slew of new features and specifications, but the one that really stood out the most was the new <canvas> element. Before HTML5, it was possible to render animations and graphics on a webpage, though with some work and clever hacks. Sometimes a pixel by pixel approach was needed, and while definitely doable, the performance hit required to do fancy things was too high and most computers just couldn't handle it. Just imagine a million <div> elements moving around in real time in order to look like 3D content. Doable, but definitely not the most resource friendly process.
That is until the <canvas> element stepped in which allowed us to generate graphics directly on the browser using the native GPU and using a subset of openGL aptly named webGL.
Currently chat applications are present and usable, with things such as Google Hangouts or Facebook messenger and such. But that's the crux of the problem. We still think of the ability to communicate verbally (or visually) online as a tool for either entertainment or for personal use, such as online gaming or talking to family. But if we think just a bit outside of that realm, we can come up with some pretty cool ideas.
The future looks bright
Like with most things, adoption rates take time to grow. While we have the ability to create 3D graphics and real-time communication applications directly on the web with a single language and a few scripting files, people are not ready just yet to begin to use these features on a day to day basis. Similar to how not every movie you watch is in a surround-sound and 4D environment. Eventually, we will get to a place where watching such things is normal, but for now, you have to schedule it in to your life and go to a movie theater that offers it.
In a similar fashion, if you want to experience a more futuristic looking internet, you have to go out and look for it.
If you have any ideas for some cool JS applications that you'd like to share, comment down below and let's talk about it.