If discouraging developers from using Python means that one great project doesn't happen it's probably a net lose for them.
If discouraging developers from using Python means that one great project doesn't happen it's probably a net lose for them.
But if Google develops a product that everybody wants but can't scale, it runs the risk of damaging the reputation of other Google products. And there's a lot of prior success to damage. Do it often enough and people start thinking, "Those Google engineers don't know how to do anything right. Why should I trust them with my data for GMail or Docs or Websearch?"
Yes. The library infrastructure of server-side JavaScript is pitiable compared to Python (or C++ or Java). This will change, I have no doubt, and I believe JavaScript will become the most popular language for practically everything short of systems programming in the not too distant future (7-10 years, perhaps), but it's definitely not as easy to build a server-side app in JavaScript today as it is in Python, Ruby, Perl, etc.
Imagine writing Java code, without having to type classnames all the time and you have a rough approximation of what its like.
(And yes, you can import arbitrary Java bits into Rhino. It is "freaking sweet")
According to one benchmark ( http://ejohn.org/apps/speed/ ), Rhino is generally several orders of magnitude slower than Spidermonkey and Tamarin. Which probably means that it is also orders of magnitude slower than Python, Perl and Ruby.
Since JavaScript was suggested as an alternative to Python to act as a reasonable substitute for C++ and Java for performance reasons, suggesting a JavaScript implementation that seems to be dramatically slower than even Python seems nonsensical.
While JavaScript is a lovely language, and I'm all for it being used more on the server-side, Rhino only solves the lack of libraries problem when compared to Python...it does not solve the performance/memory problem of using Python at Google scale.
Unless, of course, things have changed dramatically since any of the benchmarks I found were run.
The other thing is that it allowed my team to rewrite pieces into Java as needed without it looking dramatically different.
Awesome new things come from people's brains. Some people's brains are sensitive to things like motivation/happiness. Python makes some people's brains more motivated/happy than Java/C++ does.
An new thing may never get off the ground, or be taken far enough to become awesome if the developer doesn't have the motivation to work on it.
A programmer using Python (and Ruby, Perl, Lisp, Smalltalk) is usually more productive than one with comparable brain-size using Java or C.
If I were Google, I would develop a server-oriented language on top of the V8 virtual machine, using the "good parts" of Javascript as a compiler target. Add optional typing and type inference, but only as a parse/compile time facility to provide information to the programmer. Add a functional programming sub-grammar with the same facility.
Then, add a fast Python implementation using the same engine, with strong support for calls from one language to the other.
This way, Google would get the benefit of both the vibrant Python community and a fast, scalable VM.