Usage intensif de Google de Python, c’est juste une question de goût, ou il leur confère un avantage concurrentiel ?
Réponses
Trop de publicités?Je ne peux pas vraiment donner de réponse définitive, car au moment où je l'ai interviewé à Google en 2004 Python était déjà très présente chez Google.
En effet, il n'y a apparemment attractif explication que je peux le nier: ce n'est pas que Google utilise Python parce qu'il emploie de nombreuses personnalités Pythoneux -- ou plutôt, la plupart des "éminents Pythonista" googlers rejoint Google, au moins en partie, parce que nous savions à propos de Python importance (exceptions possibles incluent Peter Norvig et Jeremy Hylton, mais, historiquement, Google est le choix de Python a précédé même).
C'est certainement pourquoi j'ai commencé à m'intéresser (mon éditeur et laissez-moi savoir à propos de la grande quantité d'exemplaires de mon livre que Google a été l'achat d' -- au début, j'ai pensé à elle comme une bonne occasion de vendre mon freelance service de consultation...;-), comment j'ai été plus tard en mesure de convaincre Guido à se joindre à nous, et, je crois, une partie de la motivation pour une telle Pythoneux comme Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Hivers, Jeffrey Yasskin, ...
Tout a commencé, je crois, parce que les premiers Googlers (Sergey brin, Larry Craig, ...), a fait un bon de l'ingénierie de la décision: "Python où l'on peut, C++ où nous devons" - ils utilisés (un sous-ensemble de C++ pour les parties de la pile logicielle d'où une très faible latence et/ou un contrôle serré de la mémoire ont été crucial, et Python, permettant une livraison plus rapide et la maintenance des programmes, pour les autres parties. À l'époque, fin des années '90, le choix pour le dernier rôle était essentiellement entre Python et Perl: d'autres langages de script, soit étaient pas mûrs (je ne pense pas que Ruby était encore autour, par exemple) ou d'autres limitations et problèmes. Perl a été plus mature (en particulier en termes de son écosystème d'extensions disponibles via CPAN), mais Python est réputé pour être plus lisible et maintenable, et l'interfaçage de bibliothèques C++ (via SWIG) a été plus facile.
Java est venu plus tard, couvrant un intermédiaire de niche -- et, plus récemment, bien sûr, Aller a été développé (bien que je ne crois pas qu'il y a beaucoup de travail de production dans le il encore, comme c'est encore en évolution et de maturation). Certains langages tels que sawzall sont également dans le mélange pour des tâches très spécifiques, et des cours de Javascript est très important pour le navigateur travailler sur le côté.
D'autres langues, y compris celles que Greg mentionnée dans '06, sont soit "accidentelle" ou utilisé pour d'autres tâches spécifiques (par exemple, Objective-C pour les clients sur l'iphone ou le Mac) - par exemple, lorsque Google a embauché son premier système, les administrateurs, les employés, inévitablement, est venu avec une très forte maîtrise de Perl et Bash, et souvent utilisé l'une de ces langues pour le développement de certaines complexe système interne de recodage ceux en Python (pour faciliter le déploiement et la maintenance) est souvent arrivé. D'autres (tels que C#) peuvent avoir été dans le mélange temporairement en raison des acquisitions, mais, encore une fois, le recodage dans l'une des "principales Google langues" est toujours un assez haut niveau de priorité (en C#, le recodage serait généralement principalement en Java, comme les deux langues adresse des domaines similaires en termes de niveaux d'abstraction).
Je n'ai pas lu l'article en entier, et je ne sais pas comment il est, mais peut-être que cela répond à votre question: Python à Google.
Ok j'ai lu plus de cela, malheureusement il donne pas que beaucoup de perspicacité, mais je pense que c'est encore un article intéressant. Peut-être le plus important:
Chez Google, le python est l'un des 3 "langues officielles" aux côtés du C++ et Java. Officiel signifie ici que les Googlers sont autorisés à déployer de ces langues à la production des services. (En interne Google les gens utilisent de nombreuses technologies, y compris PHP, C#, Ruby et Perl). Python est bien adapté pour le processus d'ingénierie chez Google. Le projet typique chez Google, a une petite équipe (3 personnes) et d'une courte durée (3 mois).
Ne pas oublier que Guido van Rossum, le créateur de Python travaillé pour Google de 2005 à 2012 ;)
J'ai aussi trouvé cette citation, mais je ne peux pas le vérifier:
"Python a été une partie importante de Google depuis le début, et reste donc que le système se développe et évolue. Aujourd'hui, des dizaines d'ingénieurs Google utiliser Python, et nous sommes à la recherche pour plus de personnes avec des compétences dans cette langue"
-- Peter Norvig, Directeur de la Qualité de la Recherche chez Google
J'ai lu sur Vide-Hirondelle, un projet qui vise à améliorer la performance de Disponible. Pendant la navigation par le biais de leur forum de discussion, je suis tombé sur cette discussion, où Collin d'Hiver (employé de Google et Python core developer) des réponses sur la demande que les employés de Google sont découragés de l'utilisation de Python pour les nouveaux projets:
Ainsi, le simple bon sens va limite de Python d'applicabilité d'exploitation de Google de l'échelle: il n'est pas aussi rapide que Java ou C++, le filetage suce, l'utilisation de la mémoire est plus élevé, etc. L'une des contraintes qui nous sont imposées lors de la conception de tout nouveau système est, "ce qui se passe quand la charge augmente par 10x et 100x? Qu'advient-il si l' ensemble de la planète pense que votre nouveau service est génial?" Toute la technologie qui rend la satisfaction de cette contrainte plus difficile -- et je pense que Python tombe dans cette catégorie -- devrait être découragé si ce n'est pas le cas faite en sa faveur sur d'autres mérites. Vous faut trouver un équilibre entre Python forces avec ses faiblesses: votre ingénieurs peut-être plus productif en utilisant Python, mais s'ils ont à travailler autour de plus la plate-forme de niveau de performance/de mise à l'échelle les limitations que le volume augmente, ne vous sortez à l'avance? etc.
Si vous vous abonnez à Paul Graham idée que la concision == puissance (c'est à dire Si je peux écrire du code dans le langage X en 10 lignes pour accomplir ce que vous avez pris 100 lignes de langue Y, ma langue est plus puissant)
Ces jours-ci le matériel est bon marché, meatware est cher. Je sais que je peux écrire beaucoup plus, plus vite, mieux ET plus clair en Python que je peux dans d'autres langues, tout simplement parce que les piles ont tendance à être inclus. Bien sûr, il peut être plus lent, mais allez-vous vraiment à faire la différence entre .05 secondes et .0005 secondes?
Dans un exemple plus réaliste, si les développeurs de Google écrire un programme en Python où ils n'ont jamais à vous soucier de la collecte des déchets et de la Société X qui écrit un programme en C++ et ils consacrent 10% de leur temps à traquer les bugs liés à l'allocation de mémoire, devinez qui est fait plus vite - même si le C++ boutique réussit à écrire le reste de leur code tout aussi rapide.
Donc oui, je dirais que c'est un avantage concurrentiel pour coder en Python.