One Step Forward, Two Steps Back: The WebRTC Tango
WebRTC is new on one hand, but it may seem like we're moving backwards in the technology and the offering. But just like tango, WebRTC has a magical feeling to it.
As you might have guessed, I have a fling with WebRTC.
I've been courting WebRTC for over a year now. It started as any silly flirt--I thought it would be interesting to know WebRTC better. Since then we've become close friends.
This is probably the reason why I found myself this past month thinking of WebRTC in the context of Tango. Not the OTT company, but rather the dance. Why tango? We're moving one step forward--and two steps back.
WebRTC is new on one hand, but it may seem like we're moving backwards in the technology and the offering here:
* No signaling. While SIP, H.323, XMPP/Jingle all come as signaling protocols with media--WebRTC leaves that to the developer's discretion
* Limited choice in codecs. 2 voice codecs and 1 (or 0 or 2) video codecs will end up as being mandatory, while for the rest there's a real question of who will implement them
* Java Script APIs instead of a real programming language like C or Java
* No flexibility for developers. You can't control resolution, fool around with frames per second or bitrate too much. No RTP--just SRTP. The list goes on.
But just like tango, WebRTC has a magical feeling to it. If you've ever danced Argentinian tango you'll know what I mean: there's not a lot of steps or rules to follow, but the combinations you can do with what you are given are endless--and you get to mix and match them as well in order to form your own choreography.
The reduction built into WebRTC makes it powerful. The fact that you get to choose your own signaling mechanism to fit your own service--one that isn't limited to the "legacy" set of SIP services--brings with it the creative demos we already see today for WebRTC online.
There's a fine line here--between providing a level of abstraction that is too high (i.e.--adding signaling) and giving capabilities that are just too low level for web developers (i.e.--more control over the media streams). The balance that needs to be reached, and one I think that was beautifully reached with the WebRTC specification, is similar to a great tango dance--where the communication and synchronization between the dance partners--leader and follower--is complete.
It is time to let web developers dance their way with WebRTC. I can't wait to see what choreographies they will come up with.
BTW: I am collecting such choreographies in my WebRTC interviews with vendors.