I worked at Google during that period. It's not quite as simple as "Python > C++" although yes, for sure, you're going to produce new UI features at a far faster rate working in a high level language like Python than working with C++. Absolutely that was a factor. I don't think Google Video had hundreds of developers vs 20 though. That doesn't sound right to me.
The real reasons YouTube won were strategic, not purely a function of developer speed.
In particular YouTube focused a lot on social / discovery features and prioritised them, at a time when the importance of social wasn't so obvious and Google in particular was very bad at anything with a social dimension. So Google Video had super scalable backends, great search etc, but it wasn't very good at user profiles, commenting, channels, subscribers, discovery, content surfacing and so on. Whereas YouTube excelled at these things and was good at encouraging people to upload whatever random vids they created even if apparently worthless.
Google in contrast was less certain that free user generated content would ever be a big deal, and right from day one saw Google Video primarily as a marketplace. It focused much more on acquiring content rights from professional producers as a result. Even YouTube wasn't really sure UGC+ads was going to turn into a real business which is why they had a lax approach to video piracy for so long. Early YouTube traffic was to some extent driven by piracy of professional content, a problem that only got wiped out once Google acquired them and build content id. Even when comments were eventually added, it was a tiny box to the side of the video which took up the bulk of the web page, and there was an admonition "Please make sure your comments are useful and informative" - very Google. YouTube on the other hand made the video less prominent and what users were saying about it much more so.
Social features are a great use case for Python because you need to churn them out and iterate very fast, the cost of correctness bugs is very low, and their performance complexity is not very high, so that's the sweet spot for a scripting language. On the other hand around the time YouTube were acquired they struggling tremendously with the scaling aspects of their operation and large chunks of the site had to be quickly switched to C++. YouTube when I left was still a mix of Python and C++, with the C++ code handling things like search, transcoding, thumbnail serving, anti-spam, content id, video serving and so on. All the heavy lifting. Python was left handling the main site UI, admin tooling and not much else.
There were also some technical mis-steps by the Google Video team. YouTube relied entirely on Flash from day one. For whatever reason the GV team were far more reluctant to hitch themselves to the Flash plugin and for example they only enabled video upload via a web form about a year after YouTube entered beta, before that you had to use a desktop app to do it. They also wrote their own video playing plugin but it wasn't as good as Flash and they eventually scrapped it. Their paid for pro content also required a dedicated video player app. YouTube being a small startup couldn't get content deals as it was too tiny for the producers to deal with, so they just focused 100% on UGC and features like embedding, which acted as a giant advert for their service.
> On the other hand around the time YouTube were acquired they struggling tremendously with the scaling aspects of their operation and large chunks of the site had to be quickly switched to C++.
I fail to see how python failed youtube here.
You use the right tools for the job. And the tools that got you 10e1 views per day may not be the tools that get you to 10e10 views per day.
I once worked at a place that supposedly "engineered" their backend to handle 1,000,000 connections at once. Only everything fell over at 10,000 connections in production, and they struggled for two years to get to 100,000 connections.
The point is, you don't know what you don't know, and you won't know the pain points are until you hit them. And the more groundbreaking your service (in this case internet video distribution), the chance of your architecture being 100% correct from the start is zero.
If I recall correctly youtube also focused on embedding early on. Embedding google video videos was impossible. This lead a lot of people to youtube and google videos just missed out on it.
thank you for sharing your insider view. I'm just a casual observer, so I do feel a little guilty posting this story here but it is a firsthand source.
The real reasons YouTube won were strategic, not purely a function of developer speed.
In particular YouTube focused a lot on social / discovery features and prioritised them, at a time when the importance of social wasn't so obvious and Google in particular was very bad at anything with a social dimension. So Google Video had super scalable backends, great search etc, but it wasn't very good at user profiles, commenting, channels, subscribers, discovery, content surfacing and so on. Whereas YouTube excelled at these things and was good at encouraging people to upload whatever random vids they created even if apparently worthless.
Google in contrast was less certain that free user generated content would ever be a big deal, and right from day one saw Google Video primarily as a marketplace. It focused much more on acquiring content rights from professional producers as a result. Even YouTube wasn't really sure UGC+ads was going to turn into a real business which is why they had a lax approach to video piracy for so long. Early YouTube traffic was to some extent driven by piracy of professional content, a problem that only got wiped out once Google acquired them and build content id. Even when comments were eventually added, it was a tiny box to the side of the video which took up the bulk of the web page, and there was an admonition "Please make sure your comments are useful and informative" - very Google. YouTube on the other hand made the video less prominent and what users were saying about it much more so.
Social features are a great use case for Python because you need to churn them out and iterate very fast, the cost of correctness bugs is very low, and their performance complexity is not very high, so that's the sweet spot for a scripting language. On the other hand around the time YouTube were acquired they struggling tremendously with the scaling aspects of their operation and large chunks of the site had to be quickly switched to C++. YouTube when I left was still a mix of Python and C++, with the C++ code handling things like search, transcoding, thumbnail serving, anti-spam, content id, video serving and so on. All the heavy lifting. Python was left handling the main site UI, admin tooling and not much else.
There were also some technical mis-steps by the Google Video team. YouTube relied entirely on Flash from day one. For whatever reason the GV team were far more reluctant to hitch themselves to the Flash plugin and for example they only enabled video upload via a web form about a year after YouTube entered beta, before that you had to use a desktop app to do it. They also wrote their own video playing plugin but it wasn't as good as Flash and they eventually scrapped it. Their paid for pro content also required a dedicated video player app. YouTube being a small startup couldn't get content deals as it was too tiny for the producers to deal with, so they just focused 100% on UGC and features like embedding, which acted as a giant advert for their service.
More insights here:
https://googlesystem.blogspot.ch/2006/08/why-is-youtube-more...