The Internet today is vastly different to what it was 10 years ago. Back then, if you wanted to do anything moderately ambitious like video conferencing, you had to work with plugins that simply didn't work all that well. I am, of course, referring to Flash, which was notoriously slammed by Steve Jobs in 2010 for being insecure, slow, and ill-suited to a world of touch devices.
There's something better now.
It's called WebRTC, and it's allowing developers to build real-time applications, such as MMORPGs (massively multiplayer online role-playing games) and video-conferencing tools, using open web technologies, like HTML5, JavaScript and CSS.
Here's everything you need to know about WebRTC.
What Can It Do?
Perhaps the most important thing to remember is that WebRTC isn't really a single API (Application Programming Interface), or product. Rather, it's a family of APIs, each in varying states of completion, with varying support across the browser, and performing radically different tasks.
Some of the WebRTC APIs aren't terribly exciting. They perform tasks as simple as gaining access to a computer's webcam and microphone. But others are much more ambitious.
For instance, one API allows users to share their screen with a remote user. Another supports simulcasting, which allows users to broadcast video in varying levels of quality and detail. Another WebRTC API (MediaStream API) allow developers to process audio on the fly, muting, pausing, and adding tracks as need be.
There's more. Much more. Certainly more than could be reasonably discussed in a 1,000-word article.
In short, WebRTC provides a beautiful family of APIs that make it possible to work with remote computers, in real-time. It's exciting, and people are using it for incredible, mind-boggling things.
What Are People Using It For?
One of the more successful real-world uses of WebRTC is Appear.in. We reviewed it shortly after it launched in 2012, and were impressed with how it made video-conferencing that bit more delightful, thanks to its streamlined aesthetic and lack of logins, accounts and plugins. Creating a video chat is simply a matter of pressing a button and sharing a link to the person you want to chat with.
Appear.in isn't the only WebRTC-powered video-confencing service. There have been an explosion of products created by companies that are very much in the mainstream. Companies like Citrix's GoToMeeting Free and Firefox Hello. It's also widely believed that Skype for Web is powered by WebRTC.
WebRTC has also been used to make browser-based, interactive, multiplayer games. Most of these are decidedly low-budget affairs, but with some major exceptions. The Hobbit: The Battle for Five Armies [No Longer Available] was released at the end of 2014, as a tie-in to the final installment of Peter Jackson's epic saga.
Powered by WebGL and WebRTC, the player is placed in the shoes of one of Middle Earth's factions (orcs, elves, humans and dwarves), and then pitted against other players, all eager to become the rightful rulers of Tolkein's fantasy world.
But despite the incredible ways in which WebRTC has been used, support for it across the myriad of browsers is incredibly limited.
Browser Support
Predictably, Google Chrome and Firefox have the most comprehensive support for WebRTC, although there are some noticeable absences missing from both browsers. Firefox, for example, is missing the Simulcast API that's available for Chrome, whilst Chrome lacks H.264 video streaming.
Support for WebRTC on Opera is solid, although that's hardly surprising given that it uses the same rendering agent as Google Chrome.
Elsewhere across the browser spectrum, there's Internet Explorer and Safari. These do not support WebRTC, and there are no rumblings from the Microsoft and Apple camps about any future support. However, there are third party tools that add WebRTC functionality. We reviewed one recently.
Temasys's Skylink is a free plugin for IE and Safari which introduces WebRTC functionality. However, it comes with a catch, namely that it only works a limited number of websites, and appear.in isn't one of them.
Is It Secure?
WebRTC is, of course, a major step up from Adobe Flash, which used to be the default way of doing in-browser real-time communications. Flash was utterly plagued with vulnerabilities, and left users exposed to hackers and malware. This issue was one of many pointed out by Steve Jobs in his essay that explained why Flash would never come to the iPhone.
Thankfully, WebRTC doesn't suffer from the same issues that are endemic to Flash, simply because it's not an individual piece of software - in this case a browser plugin. It's an API.
That's not to say that WebRTC hasn't had its security issues, mind you. It has. Just not at the same scale.
Late last year, it transpired that it was possible to find the real IP address of a VPN user, simply by using a few lines of JavaScript code that use parts of the WebRTC API.
VPNs are, of course, commonly used by privacy-conscious individuals who want to obfuscate their online activities. There is yet to be an update that solves this problem, other than disabling WebRTC entirely. This can be done with the Disable WebRTC Firefox Extension, and the Stop WebRTC plugin for Chrome [No Longer Available], or by disabling JavaScript entirely.
The Hurdles Ahead
The promise of WebRTC cannot be overstated. This, more than anything else in the HTML5 family, has the chance to change how we use the Internet, making it more collaborative and more interactive.
But until then, there are a lot of hurdles to overcome. The W3C desperately need to get Microsoft and Apple on board, and they need to ensure a consistent experience across the browsers that support it.
Until then, it will remain a very niche technology.
Agree? Disagree? Let me know in the comments below.