<[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