9 entreprises de logiciels de classe mondiale qui utilisent Python

Par : TutorialsGrey, le 17 Janvier 2022

Il existe actuellement plus de 500 langages de programmation, et d'autres sont écrits chaque jour. Certes, la majorité d'entre eux se chevauchent et un grand nombre n'ont jamais été conçus pour être utilisés en dehors d'un cadre théorique ou de laboratoire. Mais pour les langages de programmation qui sont utilisés dans le codage quotidien et dans les entreprises, vous devez faire un choix. Quels langages devriez-vous apprendre, et pourquoi devriez-vous investir votre temps dans leur apprentissage ?

Dans cet article, nous allons vous parler de huit entreprises de premier plan que vous connaissez certainement déjà, et qui utilisent Python. De cette façon, vous pourrez voir quelles sont les grandes opportunités du monde réel pour les développeurs Python.

 

Industrial Light and Magic

Industrial Light and Magic (ILM) est la centrale d'effets spéciaux qui a été fondée en 1975 par George Lucas pour créer les effets visuels de la Guerre des étoiles. Depuis lors, ILM est devenu synonyme d'effets spéciaux et a remporté de nombreux prix pour son travail dans les films et les publicités.

À ses débuts, ILM se concentrait sur les effets pratiques, mais a vite compris que les effets générés par ordinateur étaient l'avenir des effets en général. Leur département CGI a été fondé en 1979 et leur premier effet a été la séquence d'explosion du projet Genesis dans Star Trek II : La colère de Khan.

À l'origine, le studio CGI d'ILM fonctionnait avec un shell Unix, mais il ne gérait qu'une quantité de travail relativement faible. Le studio ayant prévu l'avenir de l'image de synthèse, il s'est mis à la recherche d'un système capable de gérer la mise à l'échelle agressive qu'il entrevoyait pour l'avenir.

ILM a choisi Python 1.4 plutôt que Perl et Tcl, optant pour Python car il était beaucoup plus rapide à intégrer dans son infrastructure existante. Grâce à l'interopérabilité facile de Python avec les langages C et C++, ILM a pu facilement importer Python dans son logiciel d'éclairage propriétaire. Cela leur a permis de mettre Python dans plus d'endroits, en l'utilisant pour envelopper des composants logiciels et étendre leurs applications graphiques standard.

Le studio a utilisé Python dans de multiples autres facettes de son travail. Les développeurs utilisent Python pour suivre et vérifier la fonctionnalité du pipeline, en maintenant une base de données de chaque image produite pour chaque film. Comme de plus en plus de programmes d'ILM étaient contrôlés par Python, cela a créé un ensemble d'outils unifiés plus simples qui ont contribué à un pipeline de production plus efficace. Pour un exemple concret, ne cherchez pas plus loin qu'OpenEXR, un format de fichier HD utilisé par ILM. PyIlmBase est inclus dans le package (bien qu'il ait une dépendance avec Boost).

Malgré de nombreuses critiques, ILM continue de trouver que Python est la meilleure solution pour ses besoins. La combinaison d'un code source ouvert et de la possibilité de reporter les changements garantit que Python continuera à répondre aux besoins d'ILM pendant longtemps.

 

Google

Google est un partisan de Python depuis presque le tout début. Au début, les fondateurs de Google ont pris la décision suivante : "Python où nous pouvons, C++ où nous devons". Cela signifie que le C++ était utilisé lorsque le contrôle de la mémoire était impératif et qu'une faible latence était souhaitée. Pour les autres facettes, Python permettait une facilité de maintenance et une livraison relativement rapide.

Même lorsque d'autres scripts étaient écrits pour Google en Perl ou en Bash, ils étaient souvent recodés en Python. La raison en était la facilité de déploiement et la simplicité de maintenance de Python. En fait, selon Steven Levy, auteur de "In the Plex", le tout premier robot d'exploration du Web de Google a d'abord été écrit en Java 1.0 et était si difficile qu'il a été réécrit en Python.

Python est désormais l'un des langages officiels côté serveur de Google (C++, Java et Go sont les trois autres) qui peuvent être déployés en production. Et si vous n'êtes pas sûr de l'importance de Python pour Google, sachez que Guido Van Rossum, le propre BDFL (Benevolent Dictator For Life) de Python, a travaillé chez Google de 2005 à 2012.

Pour couronner le tout, Peter Norvig a déclaré :

"Python a été un élément important de Google depuis le début, et le reste au fur et à mesure que le système se développe et évolue. Aujourd'hui, des dizaines d'ingénieurs de Google utilisent Python, et nous recherchons davantage de personnes ayant des compétences dans ce langage."

 

Facebook

Les ingénieurs de production de Facebook sont exceptionnellement férus de Python, ce qui en fait le troisième langage le plus populaire chez le géant des médias sociaux (juste derrière le C++ et leur langage PHP propriétaire, Hack). En moyenne, il y a plus de 5 000 contributions pour les utilitaires et les services chez Facebook, gérant l'infrastructure, la distribution binaire, l'imagerie matérielle et l'automatisation opérationnelle.

La facilité d'utilisation des bibliothèques Python signifie que les ingénieurs de production n'ont pas à écrire ou à maintenir autant de code, ce qui leur permet de se concentrer sur la mise en ligne des améliorations. Cela garantit également que l'infrastructure de Facebook est capable d'évoluer efficacement.

Selon un post de 2016 de Facebook, Python est actuellement responsable de multiples services dans la gestion de l'infrastructure. Il s'agit notamment de l'utilisation de TORconfig pour gérer la configuration et l'imagerie des commutateurs réseau, de FBOSS pour les CLI des commutateurs en boîte blanche et de l'utilisation de Dapper pour la planification et l'exécution des travaux de maintenance.

Facebook a publié de nombreux projets Python open-source écrits pour Python 3, notamment une API Facebook Ads et un framework Python Async IRCbot.

 

 

Instagram

En 2016, l'équipe d'ingénierie d'Instagram s'est vantée d'avoir exécuté le plus grand déploiement au monde du framework Web Django, qui est entièrement écrit en Python. Min Ni, ingénieur logiciel chez Instagram, déclare ceci à propos de leur utilisation de Python en production :

"Nous avons initialement choisi d'utiliser Python en raison de sa réputation de simplicité et de praticité, qui s'aligne bien sur notre philosophie de "faire d'abord les choses simples"."

Depuis, l'équipe d'ingénieurs d'Instagram a investi du temps et des ressources pour que leur déploiement Python reste viable à l'échelle massive (~800 millions d'utilisateurs actifs mensuels) à laquelle ils opèrent :

"Avec le travail que nous avons consacré à la construction du cadre d'efficacité du service web d'Instagram, nous sommes convaincus que nous continuerons à faire évoluer l'infrastructure de notre service en utilisant Python. Nous avons également commencé à investir davantage dans le langage Python lui-même, et nous commençons à étudier la possibilité de faire passer notre Python de la version 2 à la version 3."

En 2017, Instagram a migré la majeure partie de sa base de code Python de Python 2.7 à Python 3.

 

Spotify

Ce géant du streaming musical est un grand adepte de Python, qu'il utilise principalement pour l'analyse des données et les services back-end. En arrière-plan, il existe un grand nombre de services qui communiquent tous via 0MQ, ou ZeroMQ, une bibliothèque et un cadre de mise en réseau open source écrits en Python et en C++ (entre autres).

Si les services sont écrits en Python, c'est parce que Spotify apprécie la rapidité du pipeline de développement lorsque l'on écrit et code en Python. Les mises à jour les plus récentes de l'architecture de Spotify ont toutes été réalisées à l'aide de gevent, qui fournit une boucle d'événements rapide avec une API synchrone de haut niveau.

Pour fournir des suggestions et des recommandations aux utilisateurs, Spotify s'appuie sur un grand nombre d'analyses. Pour les interpréter, Spotify fait appel à Luigi, un module Python qui se synchronise avec Hadoop. Ce module open source gère la façon dont les bibliothèques fonctionnent ensemble et consolide rapidement les journaux d'erreurs pour permettre le dépannage et le redéploiement.

Au total, Spotify utilise plus de 6000 processus Python individuels qui travaillent ensemble sur les nœuds du cluster Hadoop.

 

Quora

Cette immense plateforme de questions-réponses alimentée par la foule a longuement réfléchi au langage qu'elle voulait utiliser pour mettre en œuvre son idée. Charlie Cheever, l'un des fondateurs de Quora, a réduit son choix à Python, C#, Java et Scala. Le plus gros problème de Python était l'absence de vérification de type et sa lenteur relative.

Selon Adam D'Angelo, ils ont décidé de ne pas opter pour C# car il s'agit d'un langage propriétaire de Microsoft et ils ne voulaient pas être redevables des futures modifications apportées. De plus, tout code open source avait, au mieux, un support de seconde classe.

Il était plus difficile d'écrire en Java qu'en Python et il ne s'intégrait pas aussi bien dans les programmes non-Java que Python. À l'époque, Java n'en était qu'à ses balbutiements. Ils s'inquiétaient donc du support futur et de la capacité du langage à continuer à se développer.

Au lieu de cela, les fondateurs de Quora ont suivi l'exemple de Google, choisissant d'utiliser Python là où ils le pouvaient en raison de sa facilité d'écriture et de lecture, et ont mis en œuvre C++ pour les sections critiques en termes de performances. Ils ont contourné l'absence de vérification de type de Python en écrivant des tests unitaires qui accomplissent à peu près la même chose.

Une autre considération clé pour l'utilisation de Python était l'existence de plusieurs bons frameworks à l'époque, notamment Django et Pylons. De plus, comme ils savaient que Quora allait impliquer des interactions serveur/client qui ne seraient pas nécessairement des chargements de page complets, le fait que Python et JavaScript foctionnent si bien ensemble était un énorme avantage.

 

Netflix

Netflix utilise Python de manière très similaire à Spotify, en s'appuyant sur le langage pour alimenter son analyse de données côté serveur. Mais cela ne s'arrête pas là. Netflix permet à ses ingénieurs logiciels de choisir le langage dans lequel ils souhaitent coder et a constaté une forte augmentation du nombre d'applications Python.

Lorsqu'ils sont interrogés, les ingénieurs de Netflix citent la bibliothèque standard, la communauté de développement extrêmement active et la grande variété de bibliothèques tierces disponibles pour résoudre presque tous les problèmes. En outre, comme Python est si facile à développer, il est devenu un élément essentiel de nombreux autres services de Netflix.

L'un des principaux endroits où Python est utilisé est la passerelle centrale d'alerte. Cette application web RESTful traite les alertes provenant de n'importe où, puis les achemine vers les personnes ou les groupes qui doivent les voir. En outre, l'application a le pouvoir de supprimer les alertes en double qui ont déjà été traitées et, dans certains cas, d'exécuter des solutions automatisées telles que le redémarrage d'un processus ou l'arrêt d'un système qui commence à sembler instable. Cette application est une victoire énorme pour Netflix, compte tenu du volume considérable d'alertes. En les gérant intelligemment, les développeurs et les ingénieurs ne sont pas submergés d'appels redondants.

Un autre domaine dans lequel Python est utilisé par Netflix est celui des applications monkey utilisées pour suivre les changements et l'historique de la sécurité. Ces monkeys sont utilisés pour suivre et alerter tout changement dans les politiques de sécurité EC2 dans n'importe quel groupe, en suivant tout changement dans ces environnements. Elles sont également utilisés pour assurer le suivi des dizaines de certificats SSL attachés aux multiples domaines de Netflix. Lors du suivi, Netflix a constaté une réduction des expirations inattendues, passant d'une seule par trimestre à aucune depuis 2012.

 

Dropbox

Ce système de stockage basé sur le cloud utilise aussi le langage Python. Si vous avez le moindre doute sur l'investissement de Dropbox dans Python, sachez qu'en 2012, l'entreprise a réussi à convaincre Guido Van Rossum, créateur de Python et BDFL (Benevolent Dictator For Life), de quitter Google pour rejoindre Dropbox.

Rossum a rejoint Dropbox à la condition qu'il soit un ingénieur, et non un chef ou même un gestionnaire. Au cours de sa première année, il a pu contribuer à la mise en place de la possibilité de partager des bases de données avec d'autres utilisateurs au sein de la communauté Dropbox.

Bien qu'un grand nombre de bibliothèques et d'éléments internes de Dropbox soient propriétaires et non open source, l'entreprise a publié une API très efficace codée en python qui vous permet de voir comment ses ingénieurs pensent. Vous pouvez également lire entre les lignes lorsque vous lisez des entretiens avec des ingénieurs de Dropbox sur le fait qu'un pourcentage énorme de leur code côté serveur est en Python.

Il est également intéressant de noter que, bien que les programmes côté client soient codés en Python, ils utilisent diverses bibliothèques sur les machines Mac et Windows pour offrir une expérience unifiée. En effet, Python n'est pas préinstallé sur Windows et la version de Python varie en fonction de votre Mac.

 

Reddit

Ce site web a accueilli 542 millions de visiteurs chaque mois sur l'ensemble de l'année 2017, ce qui en fait le quatrième site le plus visité aux États-Unis et le septième dans le monde. En 2015, il y a eu 73,15 millions de soumissions et 82,54 milliards de pages vues. Et derrière tout cela, formant l'ossature logicielle, se trouvait Python.

Reddit était initialement codé en Lisp, mais en décembre 2005, six mois après son lancement, le site a été recodé en Python. La raison principale de ce changement était que Python disposait d'un plus grand nombre de bibliothèques de code et était plus souple en termes de développement. Le cadre web qui faisait fonctionner le site à l'origine, web.py, est désormais un projet open-source.

Dans une interview réalisée en 2009, Steve Huffman et Alexis Ohanian se sont vus demander, lors de la conférence Pycon, pourquoi Reddit utilise toujours Python comme framework. Selon Huffman, la première raison est la même que celle qui a motivé le changement :

"Il y a une bibliothèque pour tout. Nous avons appris beaucoup de ces technologies et beaucoup de ces architectures au fur et à mesure. Ainsi, lorsque je ne comprends pas les pools de connexion, je peux simplement trouver une bibliothèque jusqu'à ce que je comprenne mieux moi-même et écrire la nôtre. Je ne comprends pas les frameworks web, alors nous utiliserons ceux de quelqu'un d'autre jusqu'à ce que nous fassions les nôtres... Python a une béquille géniale comme ça."

La deuxième raison pour laquelle Reddit reste avec Python est un fil conducteur qui traverse toutes les entreprises qui construisent avec ce langage. Selon Huffman, il s'agit de la lisibilité du code :

"Lorsque nous embauchons de nouveaux employés, je ne pense pas que nous ayons encore embauché un employé qui connaissait Python. Je dis simplement, 'tout ce que vous écrivez doit être en Python'. Juste pour que je puisse le lire. Et c'est génial parce que je peux voir de l'autre côté de la pièce, en regardant leur écran, si leur code est bon ou mauvais. Parce que le bon code Python a une structure très évidente.

Et cela rend ma vie tellement plus facile. [...] Il est extrêmement expressif, extrêmement lisible, et extrêmement inscriptible. Et cela rend la vie plus facile"

 

Conclusion

Dans cet article, nous avons examiné neuf entreprises de logiciels de classe mondiale et prospères qui utilisent Python en production. Mais elles ne sont pas les seules. En 2018, l'adoption de Python a atteint un nouveau sommet et continue de grimper.