<[EMAIL PROTECTED]> wrote:

> I know Google are using Python for testing purposes.

...and many more besides, as per the other response.

> But for the rest ?
> is it PHP or Java or .NET?
> Which technology is rendering the google main page?

I think you can get a reasonable idea by perusing the 800+ job offers we
currently have open;-), and eyeballing the several papers published by
Googlers -- between one and the other, it becomes pretty clear that we
use mostly Python, C++ and Java, plus of course a host of others for
special purposes (Javascript for AJAX purposes, C and Assembly for
kernel-hacking of various sort, SQL for relational databases, etc, etc),
including some highly specialized ones invented within Google for highly
specialized purposes (e.g., Rob Pike's "sawzall" for log-processing).


> And of course th obvious question, why not Python?

You can read Pike et al's paper on sawzall to see why we would want a
special-purpose language for that specialized, very-high-volume task,
for example; I hope the reason for the other specialized ones, from
Javascript to Assembly to SQL, is pretty obvious in each case;-).

As among the "three big ones" -- Python, C++, Java -- there are good
reasons why the overall job is best done by a mix of them.  I won't
address Java (we don't use any in my group, nor any of the groups we
interact with intensely), but the tradeoffs between Python and C++
should, again, be pretty clear.  For example, C++ allows (and demands)
close control of where all your memory is going -- much harder to
achieve in garbage collected languages such as Python or Java (managing
memory IS a chore, but, under potentially heavy load, an important one).

Also, a consideration I also made at SDForum: at Google's volumes of
traffic, we need load-balancing among many machines, of course, but we
_also_ are unwilling to let user experience suffer from high latencies.
Now, you can scale the "bandwidth" of a cluster by throwing more servers
at the problem -- but latency does not work the same way: you can't make
a baby in 1 month by load-balancing among 9 mothers, as the saying goes.
So, having as few machine-instructions as feasible on the critical paths
that determine the user-perceived latency is important; even the very
first paper by Page and Brin describing what would later become Google
made the point indirectly -- they describe the "crawling" (where latency
is no big deal) as being implemented in Python, but the processing of
queries (where latency is crucial) in C++.


Alex
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to