Python >> Tutoriel Python >  >> Python

Python vs JavaScript :est-ce une juste comparaison ?

Lorsque nous parlons de construire un projet avec Python ou JavaScript, nous parlons très rarement de construire chaque composant logiciel avec un seul langage de programmation.

Ce n'est tout simplement pas ainsi que fonctionne le développement de logiciels modernes. Si vous souhaitez créer un logiciel conforme aux normes, le faire avant la date limite ou créer une application qui gérera des millions d'utilisateurs, vous finirez généralement par utiliser plusieurs langages, frameworks, outils et API.

Donc, si nous voulons comparer Python et JavaScript, nous devrions parler de création de composants critiques de votre logiciel dans l'une ou l'autre langue.

Ce sera notre thème principal pour cet article, et nous parlerons également de :

  • comment Instagram est devenu la plus grande application Python au monde,
  • quelles sont les applications les plus naturelles de Python et JavaScript,
  • comment ces deux langages se complètent.

Une introduction rapide à Python et JavaScript

Avant d'entrer dans le vif du sujet, passons en revue quelques faits de base sur Python et JavaScript. Je ne vais pas vous ennuyer avec des détails inutiles. Ceci n'est qu'un aperçu de la façon dont ces langages sont devenus célèbres et de ce qui est unique dans leur position actuelle dans le monde de la programmation.

Comment Python est devenu l'un des plus grands langages de programmation

Python est sorti pour la première fois en 1991. Il a été conçu comme un langage de programmation à usage général, il peut donc être utilisé pour résoudre tout problème pouvant être quantifié et décrit dans le code.

Le marché de la technologie a connu une forte augmentation de la popularité de Python ces dernières années. Il était déjà populaire grâce aux frameworks de développement Web comme Django, et parce qu'il était populaire dans le milieu universitaire. Il est ensuite devenu le langage de choix pour l'apprentissage automatique et le traitement des données, ce qui a encore accru la popularité de Python.

Grâce au framework de développement Web Django, Python est également très populaire sur le Web, mais pas aussi populaire que JavaScript. Dans l'enquête auprès des développeurs StackOverflow 2020, JavaScript occupe la première place avec 67,7 % des 65 000 développeurs qui l'utilisent. Python est utilisé par 44,1 %. En termes de frameworks, les bibliothèques JavaScript et les frameworks jQuery, React et Angular occupent les 3 premières places. Django arrive à la 10ème place.

Ce qui est cool avec Python, c'est qu'il est utilisé par de nombreux scientifiques et chercheurs. Pour les personnes connaissant bien les complexités de la science, Python est un langage facile à apprendre, même s'ils ne sont pas particulièrement férus de technologie. Il est très utile pour le prototypage rapide, ce qui le rend encore plus attrayant pour les scientifiques.

C'est parce que Python est l'un des langages les plus simples, mais c'est une sorte de chose facile à apprendre et difficile à maîtriser. Même si vous n'êtes pas programmeur, mais que vous souhaitez automatiser un processus simple, comme extraire des données d'un site Web ou déplacer des données d'un programme à un autre, cela ne devrait pas vous prendre longtemps pour que Python fasse le travail à votre place. .

Et si vous y consacrez du temps et que vous maîtrisez vraiment Python, vous pouvez l'utiliser pour créer une grande variété de logiciels.

Le long chemin parcouru par JavaScript pour devenir un langage de programmation général

JavaScript est apparu pour la première fois en 1995. Les applications Web n'existaient pas à l'époque, et l'objectif de JavaScript était de faire du Web une véritable plate-forme d'application.

JavaScript n'a pas eu la vie facile. Il était détesté par de nombreux développeurs en raison de certains choix de conception, ainsi que d'un marketing médiocre, et il était technologiquement limité par une faible vitesse Internet et une faible bande passante. De plus, pendant longtemps, il y a eu un problème de compatibilité entre navigateurs, ce qui a rendu difficile pour les développeurs de créer des sites qui fonctionneraient sur tous les navigateurs.

Pendant plusieurs années, sa popularité a augmenté à un rythme assez stable. L'une des premières bibliothèques à avoir supprimé le problème de compatibilité entre navigateurs a été jQuery, publiée en 2006. Elle a facilité l'ajout d'interactivité aux sites Web. Le framework majeur suivant était AngularJS. Il a ensuite été remplacé par Angular 2+, qui est toujours très populaire dans les solutions à l'échelle de l'entreprise.

Vers 2011/2012, c'était la première fois que JavaScript était pris en charge par tous les principaux navigateurs de l'époque :Firefox, Chrome, Opera et Safari. Mais même maintenant, il n'est toujours pas pris en charge à 100%. En effet, JavaScript reçoit régulièrement de nouvelles fonctionnalités. Les développeurs de navigateurs doivent donc constamment travailler à l'amélioration de la prise en charge de JS.

En 2013, l'équipe d'ingénieurs de Facebook a lancé React, qui est rapidement devenu populaire et a joué un rôle important dans la consolidation de la position de JavaScript en tant que cheval de trait préféré du Web.

Bien sûr, il s'agit d'une version extrêmement simplifiée de l'historique de JavaScript ; la vraie version est beaucoup plus longue et plus complexe. Le point principal est que beaucoup de choses ont dû se produire pour amener JavaScript là où il est maintenant.

À l'heure actuelle, les nouvelles versions de JavaScript ressemblent davantage à un langage de programmation à usage général à part entière.

Quand utiliser Python ou JavaScript pour les composants critiques

Lorsqu'un composant ou un système critique tombe en panne trop longtemps, tout votre projet échoue. C'est la partie où le choix de la bonne technologie est vraiment important.

Avec les systèmes à faible priorité, vous pouvez naviguer, essayer différentes options et optimiser les coûts. Lorsque vous essayez de le faire avec des systèmes critiques, vous pourriez finir par écrire une condamnation à mort pour votre projet dès le début.

Par exemple, lorsque vous gérez une application mature de partage de photos et de vidéos avec plus d'un milliard d'utilisateurs dans le monde, les serveurs qui traitent les quantités incroyablement importantes de contenu sont essentiels à la mission. L'application à laquelle je pense est bien sûr Instagram, ou "le plus grand site Python au monde".

Comme l'a dit l'un des ingénieurs d'Instagram, "Instagram Server est entièrement alimenté par Python". L'application serveur Instagram est un "monolithe, une grande base de code de plusieurs millions de lignes et quelques milliers de points de terminaison Django". Chaque photo, vidéo et similaire passe par le framework Web Python le plus populaire Django, comme l'a mentionné un autre ingénieur Instagram dans une présentation.

Pourquoi Instagram utilise-t-il Python pour gérer les serveurs stratégiques ?

Instagram utilise une grande partie des serveurs dans les énormes centres de données appartenant à Facebook. Les ingénieurs ne se contentent pas de gérer l'apparence de l'application, le fonctionnement de votre flux ou les algorithmes de suggestion de contenu. Ils doivent littéralement s'assurer que les processeurs de leurs serveurs ne surchauffent pas.

C'est une tâche extrêmement difficile. Pourquoi ont-ils choisi Python comme langage principal ?

La réponse se trouve sur le blog des développeurs d'Instagram :"Nous avons initialement choisi d'utiliser Python en raison de sa réputation de simplicité et de praticité, ce qui correspond bien à notre philosophie de "faire d'abord la chose simple". Mais la simplicité peut s'accompagner d'un compromis :efficacité.”

Simplicité et praticité. Martin Fowler, un véritable gourou du développement logiciel avec des décennies d'expérience et auteur de plusieurs livres, a écrit un jour :« N'importe quel imbécile peut écrire du code qu'un ordinateur peut comprendre. Les bons programmeurs écrivent du code que les humains peuvent comprendre."

Ce qui signifie que même lorsque votre objectif est de vous assurer que les machines ne surchauffent pas en servant des milliards d'utilisateurs chaque jour, vous n'atteignez pas cet objectif en étant un meilleur chuchoteur de machine. Vous faites cela en écrivant du code que les autres développeurs peuvent facilement comprendre, afin qu'ils puissent le déboguer rapidement si nécessaire, ou construire dessus sans se demander s'ils vont casser le système.

Python est parfait à cet effet, en raison de sa lisibilité, de sa propreté et de sa facilité de compréhension.

Est-ce qu'Instagram utilise JavaScript ?

Passons maintenant à la partie intéressante. Même si les ingénieurs d'Instagram utilisent Python pour l'ensemble de leur serveur, Python n'est pas responsable de l'apparence de l'interface. Il stocke et gère toutes les données, mais l'interface que vous voyez sur votre smartphone est construite avec des langages de programmation natifs et beaucoup d'aide de JavaScript.

Les interfaces mobiles sont construites en Swift (iOS) et Java (Android), mais le framework JavaScript frontal mobile populaire, React Native, joue également un rôle important. Les ingénieurs d'Instagram l'ont choisi parce qu'ils souhaitaient bénéficier d'une vitesse de développement élevée, ce qui signifie qu'ils souhaitaient pouvoir ajouter de nouvelles fonctionnalités aux versions iOS et Android de leur application aussi rapidement que possible.

React Native est exactement ce dont ils avaient besoin, car il permet aux ingénieurs d'utiliser le même code pour envoyer des fonctionnalités à différents systèmes. Ils peuvent utiliser du code JavaScript pour créer des vues d'interface natives sur les deux systèmes.

Ils auraient pu utiliser une autre approche, comme la création d'interfaces séparées dans Swift et Java. Mais ils ont choisi l'option du milieu et ont opté pour React Native. Le maintien des interfaces en Swift et Java, avec le support de React Native, permet aux développeurs Instagram d'optimiser les coûts et le temps de développement, ce qui leur facilite la vie.

Python ou JavaScript :quel langage est le plus utile ?

L'exemple d'Instagram est une bonne référence pour l'industrie actuelle du Web et du mobile. De nombreuses applications populaires ont une structure similaire :Python sur le backend et JavaScript sur le frontend.

Même PayPal, qui est complètement différent d'Instagram, a une pile technologique similaire. Dans une déclaration très simplifiée, ils utilisent Python pour gérer les données et JavaScript pour leurs interfaces utilisateur.

La déclaration est simplifiée car si vous deviez entrer dans les détails de la façon dont ils utilisent différents langages et outils de programmation, vous seriez rapidement submergé par la complexité. De plus, ils ne sont pas aussi désireux qu'Instagram de partager des détails sur leur pile avec le monde entier.

Un article de blog que j'ai pu trouver explique que les ingénieurs de PayPal utilisent Node.js pour leur infrastructure de niveau intermédiaire, c'est-à-dire les serveurs Web et leur interface, car cela leur permet d'utiliser uniquement JavaScript pour créer leurs sites.

Mais encore une fois, ce n'est pas essentiel à la mission. Les parties critiques de PayPal sont cachées sous tout cela, en grande partie codées en Python (et très probablement dans plusieurs autres langages), et prennent soin de la sécurité, de la stabilité et de la gestion des données.

JavaScript n'est pas conçu pour les systèmes critiques. Il a commencé comme un langage de programmation pour ajouter de l'interactivité aux sites Web, et même s'il est devenu un outil incroyablement utile, on pourrait dire qu'il est limité par sa conception.

D'autre part, Python a été conçu comme un langage de programmation à usage général. Il est utilisé bien au-delà du développement Web. Elle est fortement ancrée dans le milieu universitaire. Bien qu'il puisse être utilisé pour créer un excellent site Web, avec Python, vous pouvez également créer des réseaux de neurones pour développer de nouveaux médicaments ou une technologie d'IA qui se cache au cœur d'applications comme Uber.

Donc, en fin de compte, Python a plus d'utilisations que JavaScript. Mais il existe plusieurs domaines où JavaScript règne en maître, à tel point qu'il serait idiot d'essayer d'utiliser Python pour eux.

Où JavaScript gagne-t-il avec Python ?

JavaScript est clairement un gagnant dans la catégorie du développement mobile. Il existe des frameworks de niche pour faire du développement mobile avec Python, comme Kivy et PyQT, mais pratiquement personne ne les utilise.

Il serait plus logique pour un développeur Python d'apprendre JavaScript et d'utiliser son framework de développement mobile le plus populaire, React Native, pour créer une application.

Un autre domaine où JavaScript gagne est le développement frontal. Il dispose des meilleurs frameworks pour construire des interfaces modernes (React, Angular, Vue). Avec Node.js, les développeurs peuvent utiliser JavaScript pour créer également le côté serveur de leurs applications. Grâce à JAMstack (JavaScript + API + balisage), les développeurs peuvent créer de superbes applications Web ultra-rapides dans des délais très courts.

Pour une petite/moyenne équipe de développement Web et mobile avec un budget limité et des délais serrés, JavaScript est définitivement la meilleure option.

Et, comme le montrent les exemples Instagram et PayPal, lorsque vous combinez Python avec JavaScript, vous pouvez créer des applications étonnantes qui dominent les marchés et révolutionnent la vie de milliards de personnes.

JavaScript est-il meilleur que Python en termes de performances ?

JavaScript a été conçu pour être rapide sur le Web. Lorsque vous comparez une application Web Node.js à une application Python, celle de Node.js sera certainement plus rapide.

Comme le dit Towards Data Science, "Python est relativement plus lent en termes de performances car il traite les requêtes en un seul flux, contrairement à Node.js, où le multithreading avancé est possible."

Il existe des moyens d'optimiser les performances de Python en tirant parti du fait qu'il utilise le langage de programmation C sous le capot. Par exemple, NumPy est livré avec un code C optimisé qui rend le code Python plus rapide. Cython est un compilateur et un sur-ensemble du langage Python qui permet aux développeurs de créer des modules C rapides qui accélèrent l'exécution du code Python.

De manière générale, JavaScript fonctionne bien dans les situations intensives d'E/S, ce qui signifie des applications comme Facebook, où de nombreuses données entrent et sortent de l'application en temps réel, et il est crucial que l'utilisateur n'ait pas à attendre quoi que ce soit.

Python fonctionne bien dans les situations gourmandes en CPU, comme un modèle d'apprentissage automatique qui doit analyser une énorme quantité de données pour résoudre un problème spécifique. C'est aussi un bon langage pour effectuer des calculs lourds à l'aide de GPU.

Là encore, le serveur d'Instagram est plus une situation intensive d'E / S, mais il utilise Python. Cela montre que si vous savez comment optimiser Python, vous pouvez le faire fonctionner rapidement.

Qu'en est-il de l'autre aspect de la performance :le délai de mise sur le marché ? Les deux langages peuvent être utilisés pour construire rapidement un MVP simple tant qu'il est fait par de bons développeurs. Pour les programmes complexes, Python accélère la mise sur le marché car il est facile à lire et à déboguer. Python favorise une collaboration fluide.

Avec JavaScript, les choses peuvent devenir très compliquées, très rapides, ce qui peut entraîner des temps de développement plus longs. Pour cette raison, de nombreuses entreprises sont passées à TypeScript, qui, selon certains développeurs, est encore plus facile à lire et à gérer que Python.

Apprentissage automatique avec Python contre JavaScript

Python est le principal langage de choix pour les développeurs d'apprentissage automatique. Cela a beaucoup de sens. L'apprentissage automatique est compliqué et implique d'énormes quantités de données. Python est un langage simple et lisible, il facilite donc la vie des développeurs en éliminant la complexité, et il a toujours été la norme pour la science des données.

Les frameworks ML les plus populaires - TensorFlow, scikit-learn, PyTorch - sont principalement basés sur Python et fournissent des API Python dédiées qui sont la manière la plus populaire de les utiliser. TensorFlow a publié une version JS du framework en 2018, et il permet aux développeurs de créer des modèles d'apprentissage automatique qui fonctionnent dans le navigateur ou dans un serveur Node.js.

Mais cela ne suffit pas pour conquérir le monde du ML. Python est parfaitement adapté à l'apprentissage automatique, et il est peu probable qu'il soit supplanté par un autre langage dans un avenir proche.

L'avenir de Python et JavaScript

Tout ce dont nous avons parlé dans cet article mène à la conclusion que comparer Python et JavaScript n'est pas vraiment juste. Ces langages ont été conçus avec des objectifs différents, ce qui a entraîné des différences dans la manière dont ils sont actuellement appliqués dans le développement de logiciels.

Et ce sont précisément ces différences qui permettent à ces technologies de se compléter parfaitement dans le monde moderne de la programmation.

Cela changera-t-il à l'avenir ? À l'heure actuelle, la position de JavaScript en tant qu'ensemble d'outils de développement d'applications Web et mobiles le plus puissant semble très forte. De plus en plus, il est transformé en un langage de programmation à usage général, mais il n'est pas clair s'il pourrait être un bon substitut à un langage comme Python.

Quant à Python, il va très probablement continuer à dominer le marché de l'apprentissage automatique, ainsi que le milieu universitaire, en raison de la lisibilité et de la facilité d'utilisation de Python, ainsi que de sa puissance de manipulation des données.

En fin de compte, le choix de votre pile technologique dépendra toujours de la nature de votre projet, de la disponibilité des programmeurs et de plusieurs autres variables.

Merci d'avoir lu notre comparaison entre Python et JavaScript.

Envisagez-vous de créer, d'étendre ou de refactoriser des logiciels dans les technologies que nous avons mentionnées ? Nous serions ravis de vous aider avec des développeurs dédiés.

Si vous n'êtes pas encore sûr de votre pile technologique, nous pouvons vous conseiller sur la meilleure architecture pour répondre à votre idée.

Cliquez ici pour parcourir nos services ou cliquez ici pour nous contacter directement.