WebRTC wins over competition because there is no competition – browsers offer only WebRTC as a technology for web developers.
It was raining and miserable this last Saturday. I had lost of ideas for articles to write for BlogGeek.me in my backlog, but none of them really inspired me to action. The 8yo went to his cousin. The wife had her own things to do. My 11yo daughter was bored to death. She comes to me and says: “Can we do a trip outside to the park? I need some fresh air.” How could I answer besides saying yes?
The rain stopped a bit, so we went outside. What she really wanted wasn’t fresh air, but a chaperone to the closest candy vending machine. They are having a game at school for Purim, where she needs to bring small presents and candies to another kid in her class without her knowing who is pampering her. She needed an extra candy.
How is this related to WebRTC? It isn’t.
When I asked her about her plans for this game, she mentioned the trinket she planned on giving today –
2 mechanical pencils.
And that’s definitely WebRTC related.
A quick conversation ensued between me and my daughter – are these 0.5 mm or 0.7 mm point type? My daughter went to explain that it might even be 0.9 mm.
So many alternatives.
Competing standards
It got me thinking:
With analog video recording we had VHS and Betamax.
Paper size? A4 and Letter.
Power frequency? 50 Hz and 60 Hz.
With VoIP signaling we had H.323 and SIP. And also XMPP.
Audio and video codecs? A shopping mall of alternatives.
Web browser streaming? HLS and MPEG-DASH.
Inches and Meters. Left side vs right side driver in cars.
The list is endless.
WebRTC standard
But browser based real time media communications?
WebRTC.
There. Is. No. Other. Alternative.
We had that short romance around ORTC, which ended with ORTC dead and its main concepts just wrapped back into WebRTC.
What other technology would you use or could you use inside a browser to do a video call?
Nothing.
Just WebRTC.
The other alternatives just don’t cure it (including what Zoom is presumably doing).
- You want to build a real time service
- It needs to run in the browser
- You use WebRTC
What does that mean exactly? It gives us a kind of a virtuous circle.
- You want to build a real time service
- Looking at alternatives, you find WebRTC
- There’s a vibrant community around it (because of web browsers)
- Alternatives are limited proprietary solutions or old open source
- You pick WebRTC
- Adding to its popularity, adoption and ecosystem
For the most part, there’s no question if you should select WebRTC these days. There’s also no question what are the alternatives (there usually are none). It isn’t a question if WebRTC is getting adopted, used, growing or popular.
When our window to the world is the browser, then WebRTC is what you use.
For mobile apps or other devices, the need for browsers or just having an ecosystem around the technology picked translates again to WebRTC.
Thinking of using real time media technology? That’s synonymous to WebRTC.
Want to learn more about WebRTC? Check out the first module of my online course – it is free.
We can quite clearly see what happens because of the lack of competition: Chrome/WebRTC release notes get published two weeks before the stable release and then are grossly inaccurate (for M73 iceConnectionState and MDNS).
Actually there is an alternative and it seems to be quite popular: take webrtc.org and ship it yourself. Whether that is native or as an electron app…
I think there is also “whatever iOS forces you to use”.
Sounds like those anti-vaxxers who ask what they can do to prevent their children from measles. The only reliable choice is the MMR vaccination. (and based on my childhood experience, the really don’t want to get measles). Fortunately social media tries to set them straight on this.
What about the thing that Zoom is doing with media capture, encoding in the WebAssembly module and sending data over WebSocket? None of this is technically WebRTC, even though to most users it looks exactly the same.
I think it won’t stand the test of time when it comes to scaling and network conditions.
WebRTC NV is headed this way, but that’s 2-3 years down the road at least.
What about for mobile, such as Android and iOS? In order to enable RTC, there is only WebRTC out there?
Y.C, in mobile there’s more than just WebRTC, but in general most of what you’ll find will end up using pieces of WebRTC in mobile as well. The reason for it is the large ecosystem around WebRTC – it is the most widely used client-side real time media engine today.
Many thanks for your article!
Beautiful!
gt