Pour qui j'écris? Pour ceux qui écrivent en php (peut-être aussi python, ruby) et qui ont entendu parler de Go, mais qui n'ont pas encore décidé de l'étudier plus en détail. Je donnerai les raisons pour lesquelles il vaut la peine d'apprendre ce langage de programmation et pourquoi l'avenir réside dans le développement web.
J'écris du php depuis environ 12 ans et c'est un excellent langage de programmation, 90% des sites de tout Internet sont écrits dessus. Presque tous les CMS populaires sont écrits en PHP.
Pourquoi ai-je basculé (ou plutôt basculé) vers Go?
Multithreading
En principe, tout est clair ici. Le multithreading offre d'énormes avantages à un langage de programmation. Dans Go, le multithreading est implémenté de manière très simple et expressive. Dans le paragraphe suivant, je vais révéler les avantages qui affectent le développement du site.
L'environnement
De quoi ai-je besoin pour créer un site régulier en php?
Serveur sous Linux, installez Nginx, parfois Apache, installez PHP, extensions, base de données, Memcache, configurez Cron. Afin de ne pas être douloureusement pénible pour maintenir le serveur, j'ai tout mis dans Docker. Voici à quoi ressemble mon projet Docker PHP habituel.

Est-ce familier?
De quoi avez-vous besoin pour créer un site Web régulier sur Go?
Serveur sous Linux et installez Go. C’est tout. Cool En effet, Go est multithread et toute fonctionnalité peut être déplacée vers un flux distinct, par exemple, un serveur Web, des micro-services, des files d'attente, des couronnes, etc. Beaucoup de choses sont déjà implémentées dans les packages de base.
À quoi ressemble mon projet Docker pour Go? En fait, cela n'existe pas du tout. Je mets les fichiers Docker directement dans le dossier avec le code de site ou de service. Si le site dispose de micro-services supplémentaires (par exemple, pour travailler avec des files d'attente), son Dockerfile est placé dans le dossier avec ce service.

Seuil d'entrée
L'apprentissage de la langue Go est facile. Vous pouvez parcourir toute la documentation en quelques heures et comprendre le principe de la langue sans approfondir. Je pense que Go a la documentation la plus courte des langues compilées populaires.
Sur le site officiel, vous pouvez faire un
voyage d'étude qui révèlera tous les aspects de la langue.
Approfondir vos connaissances théoriques auprès des pros en très peu de temps. Je recommande des
cours de Mail.ru sur YouTube .
Lisibilité du code
Avez-vous eu de telle sorte que vous ouvrez le code, le module, le plugin, etc. de quelqu'un d'autre? et vous comprenez que vous ne comprenez rien. Et pour comprendre les subtilités, vous devez au moins parcourir le code principal avec débogage.
Dans Go, dans la plupart des cas, en ouvrant du code féroce pour 200 fichiers et chaque fichier de code de serviette, vous êtes surpris de pouvoir le comprendre.
IDE
Écrire dans l'IDE JetBrains sous PHP et sous Go sont des choses complètement différentes. La saisie automatique fonctionne toujours et partout (99% des cas). Vous pouvez échouer dans n'importe quelle méthode, dans n'importe quelle!
Il n'y a aucun frein. Avec des mots en général, c'est difficile à décrire, il faut essayer. Lorsque vous commencez à écrire complètement dans Goland, vous comprenez que vous ne voulez plus revenir à PhpStorm.
L'année dernière pour hylood, j'ai demandé à Dmitry Stogov des plans pour introduire le multithreading "natif" en PHP et il semble que nous ne le verrons pas, mais c'est dommage.
Débogage et test
De nombreux développeurs PHP n'utilisent pas du tout le débogage car il doit être installé séparément en tant qu'extension, il doit également être configuré correctement et beaucoup ne s'embêtent pas et n'utilisent tout simplement pas la sortie vers la page. Dans Go, le débogage est intégré, en fait, vous n'avez pas à comprendre comment cela fonctionne à l'intérieur, si vous utilisez l'IDE, mettez simplement un point d'arrêt et démarrez le programme.
Avec les tests, les choses sont à peu près les mêmes, vous n'avez pas besoin de connecter l'ensemble du framework au projet, il est déjà intégré dans les packages de base et l'IDE.
Performances
Go est beaucoup plus rapide que PHP en termes de vitesse d'exécution et de consommation de mémoire. Bien sûr, les comparer n'est pas correct, car Go est un langage compilé. Il y a un bon article en comparaison de la productivité
sur Habré . Par exemple, j'ai un Mirkoservice dans un environnement Docker complet, qui occupait auparavant 100 à 200 Mo de RAM, passer à Go prend 1-2 Mo. L'augmentation de la vitesse est de 2 à 5 fois.
Résumé
J'adore PHP et je continuerai à écrire dessus si nécessaire, mais Go était une continuation de développement pour moi et si je réécrivais PHP à partir de zéro, il deviendrait le langage Go.