Maison  >  Article  >  développement back-end  >  Raisons d'abandonner Python et de choisir Go en 2021

Raisons d'abandonner Python et de choisir Go en 2021

尚
avant
2020-02-27 18:23:023695parcourir

Au cours de la dernière période, le site Web chinois en langue Go a fait la promotion de nombreux comptes publics liés à Python. De nombreuses personnes sont surprises : pourquoi tous les comptes Python sont-ils promus ? En fait, la raison principale est qu'il y a trop de comptes publics dans la catégorie Python, et beaucoup d'entre eux ont de très nombreux fans. Je suis également assez perplexe. Mais il vaut la peine d’en tirer des leçons et ils montrent également que Go a encore un long chemin à parcourir.

Raisons d'abandonner Python et de choisir Go en 2021

Lequel choisiriez-vous entre Python et Go ? Si vous avez une compréhension plus approfondie du Go (Golang), vous le choisirez certainement. Sinon Python sera sélectionné. Alors discutons-en. Amis Python, voici 5 raisons de choisir Go. Lisons cet article ensemble.

"Python est très puissant, notamment Python 3 avec ses capacités asynchrones, mais Go prendra complètement sa place dans les grandes entreprises..."

Si vous vraiment Si Si vous comprenez ce qui précède, vous pouvez essayer d'utiliser le langage de programmation Go. Je pense que Go est un langage de programmation très simple qui peut s'adapter à n'importe quel environnement d'application, encore plus simple que la programmation Javascript. C'est probablement la raison pour laquelle le langage de programmation Go est devenu populaire ces dernières années.

Dans cet article, je comparerai les aspects suivants des deux langues. Des paramètres allant dans ce sens vous aideront à décider quelle langue est la mieux adaptée à votre projet en cours.

1. Performances

2. Évolutivité

3. Application pratique

4. >

6. Lisibilité du code

La page d'accueil et l'API du site TreeScale.com sont des applications Web basées sur certains outils d'analyse. Voici leur pile technologique :

React.js Home Frontend
  • Django Python Home Backend et service d'authentification
  • Service API Node.js
  • Base de données PostgreSQL, système de journalisation Cassandra
  • Registre de conteneurs personnalisé utilisé dans Rust Language
  • Python
  • Repustate est presque entièrement une boutique Python. Ils utilisent Django pour implémenter l'API et le site Web. Par conséquent, il est raisonnable d’utiliser (actuellement) Python pour implémenter le moteur de sentiments arabe afin de maintenir la cohérence du code. Pour le prototypage et la mise en œuvre uniquement, Python est un bon choix.
Sa capacité d'expression est très puissante et les bibliothèques tierces sont également très bonnes. Si vous travaillez avec des services Web, Python est le choix idéal. Cependant, tout ralentit lorsque vous effectuez des calculs de bas niveau et que vous vous appuyez fortement sur les tables de hachage (types de dictionnaire en Python) pour les comparaisons. Nous pouvions traiter environ deux à trois documents arabes par seconde, mais c'était trop lent. En comparaison, leur moteur de sentiments en anglais peut traiter environ 500 documents par seconde.

Comme vous pouvez le voir ci-dessus, le cadre de base est entièrement basé sur la séparation des microservices et de la logique (séparation du front-end et du back-end), et est même implémenté avec des technologies complètement différentes.

La principale raison pour laquelle ils intègrent le service API et le backend dans un seul projet est qu'ils sont similaires à de nombreux endroits et sont codés dans plusieurs langages ou technologies avec beaucoup de code en double. Enfin, ils doivent consacrer beaucoup de temps à personnaliser les services API de Django, notamment lorsqu'il s'agit de personnaliser les réponses JSON.

Je pense qu'utiliser Django est génial lorsque vous développez des applications normales, mais lorsque vous avez besoin de performances plus élevées et de modules personnalisés, utiliser Django rend les choses plus compliquées.

Pourquoi choisir la programmation Go ?

1. Compilé dans un seul fichier binaire

Golang est un langage compilé, et les développeurs de Google ont déployé beaucoup d'efforts pour y parvenir. il. Il utilise des liaisons statiques pour combiner tous les fichiers et modules de bibliothèque pertinents en un seul fichier binaire basé sur le type de système d'exploitation et l'environnement. Cela signifie également que si vous souhaitez compiler une application backend sur un système d'exploitation Linux et une application basée sur un processeur X86. , Il vous suffit de télécharger l'application binaire compilée sur le serveur, puis l'application backend fonctionne sans aucun fichier associé.

2. Système de types statiques

Le système de types est très important pour les applications à grande échelle. Python est un langage formidable et amusant, mais vous verrez parfois des exceptions étranges lorsque vous essayez d'utiliser une variable comme variable entière alors qu'elle est en réalité de type chaîne.

Raisons dabandonner Python et de choisir Go en 2021Un code comme celui-ci fera planter Django.

Et Go compilera et vous dira que c'est une erreur du compilateur, c'est là que cela fait gagner du temps sur des problèmes stupides. def some_view (request): user_id = request.POST.get ('id', 0)

3. Optimisation (Performance)

Étonnamment, Go est meilleur que Python (version 2 ou 3) dans la plupart des scénarios d'application. Les résultats de la comparaison peuvent être vus dans des benchmarks, ce qui est bien sûr injuste et dépend du type d'application et du cas d'utilisation de l'utilisateur.

En ce qui nous concerne, Go possède son propre module multithread et son propre évolutivité CPU, ce qui se traduit par des performances plus élevées. Chaque fois que nous devons effectuer certaines requêtes internes, nous pouvons utiliser Goroutine pour les exécuter séparément, ce qui permet d'économiser dix fois plus de ressources que les threads en Python. Avec ces fonctionnalités de langage intégrées, nous pouvons économiser beaucoup de ressources (mémoire et CPU).

4. Go ne nécessite plus de framework Web

Raisons dabandonner Python et de choisir Go en 2021

C'est une bonne chose pour un langage de programmation. Les créateurs et la communauté du langage Go disposent de nombreux outils intégrés pris en charge par le langage principal et, dans la plupart des cas, vous n'avez plus besoin de bibliothèques tierces. Par exemple, il intègre des modèles http, json et html. Vous pouvez créer des services API même très complexes sans avoir à vous soucier de trouver des bibliothèques tierces sur Github.

Bien sûr, Go dispose également de nombreuses bibliothèques et frameworks pour créer des projets Web, mais je vous recommande de ne pas utiliser de bibliothèques tierces pour créer des projets Web ou des services API, car dans la plupart des cas, utilisez Les packages de bibliothèque standard vous faciliteront la vie.

5. Une meilleure prise en charge et un meilleur débogage de l'IDE

La prise en charge de l'IDE est l'une des considérations les plus importantes lorsque vous essayez de changer de langage de programmation. Les IDE conviviaux peuvent économiser en moyenne 80 % du temps de programmation. Go Plugin pour JetBrains IDEA, fournit également d'autres supports, tels que (Webstorm, PHPStorm, etc.). Ce plugin fournit tous les services nécessaires au développement de projets. Le puissant JetBrains IDEA peut rendre votre développement plus puissant, et Goland est encore meilleur.

Choisir Partir ou rentrer à la maison ?

Mozilla convertit en interne sa vaste architecture de journalisation sous-jacente vers Go, en partie grâce à de puissantes goroutines. Le langage Go a été conçu par des personnes de Google, et la prise en charge de la concurrence était une priorité absolue au début de la conception, plutôt que d'être ajoutée plus tard comme diverses autres solutions Python. Nous avons donc commencé à passer de Python à Go.

Bien que notre produit Go code ne soit pas encore officiellement lancé, les résultats sont encourageants. Nous pouvons désormais traiter un millier de documents par seconde, utiliser moins de mémoire et n'avons pas besoin de déboguer le problème que nous avons rencontré en Python : laid multiprocess/gevent/"Pourquoi Control-C ne peut pas tuer les processus".

Pourquoi aimons-nous le Go ?

Quiconque connaît ne serait-ce qu'un petit peu le fonctionnement des langages de programmation (interprétation vs compilation, dynamique vs statique) dira : "Tch, bien sûr, Go est plus rapide". Oui, nous pourrions également tout réécrire en Java et constater des améliorations similaires et plus rapides, mais ce n'est pas pour cela que Go gagne.

Le code que vous avez écrit dans Go semble être correct. Je ne sais pas ce qui se passe, mais une fois le code compilé (vitesse de compilation rapide), on a l'impression que le code fonctionne (non seulement il fonctionne correctement, mais il est logiquement correct). Je sais que cela semble peu fiable, mais c'est vrai.

Ceci est très similaire à Python en termes de redondance (ou de non-redondance). Il cible d'abord les fonctions, afin que la programmation fonctionnelle soit facile à comprendre. Bien sûr, les threads et les canaux Go facilitent votre travail, vous obtenez d'importants gains de performances grâce au typage statique et vous avez un meilleur contrôle sur l'allocation de mémoire, mais vous n'avez pas à payer beaucoup pour l'expressivité du langage.

Selon nos statistiques de code, après avoir réécrit le projet en Go, nous avons réduit le code de 64 %.

Vous n'avez pas besoin de déboguer du code qui n'existe pas. Moins de code signifie moins de bugs !

Conclusion

Go nous offre une grande flexibilité. Un langage peut être utilisé dans tous les scénarios utilisateur et fonctionner correctement dans tous les scénarios utilisateur. Dans les services backend et API, nous avons obtenu une optimisation des performances de 30 %. Je peux désormais traiter les journaux en temps réel, les convertir en base de données et gérer un ou plusieurs services via WebSocket ! Il s'agit d'une fonctionnalité très puissante fournie par le langage Go.

Pour plus de connaissances sur le langage Go, veuillez prêter attention à la colonne Tutoriel du langage Go sur le site Web PHP chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer