Go est-il juste un compromis entre temps de développement d’exécution?

Bonjour,

Apparemment, Go est un langage à la mode. J’ai vu, dans plusieurs offres d’emplois, que connaitre Go était un plus. J’ai un peu de mal à comprend cet engouement.

Go est un langage qui me semble intéressant à plusieurs égares. Tout d’abord, il est optimisé pour être multi-concurrent et il n’y a pas besoin de générer les allocations de mémoires. D’après ce que je comprend, c’est un langage à la fois rapide et moderne.

Ceci dit, Go est plus lent que C/C++ et moins moderne que Python ou Ruby. Est-ce que Go est simplement un compromis entre rapidité d’exécution et de développement? Avez-vous des exemples de type d’application que vous écrieriez avez Go?

Merci!

1 J'aime

Hello,

Effectivement le Go est un language qui est de plus en plus à la mode et non seulement de plus en plus utilisé par les développeurs mais aussi par les entreprises comme language principal (Docker, OVH, Google, Dropbox ou Soundcloud pour les plus connus). Pour revenir aux “cons”, je vois pas trop ce qui peut être plus rapide que le C à part l’ASM aujourd’hui donc à quoi bon le comparer en matière de rapidité.
Je considère pas qu’il y est de meilleurs languages, tout dépend surtout de ce que tu souhaite faire et comment tu compte le faire.

Je pars du principe que le Go n’est pas un langage moins moderne, tout simplement parce qu’il répond très bien aux problématiques actuelles (cloud, scale etc …) et qu’il ne serait pas utilisé si il ne l’était pas. Certes il ne possède pas toutes les technicités du paradigme orienté objet mais il reste orienté objet à la base. C’est pour ça que je préfère dire qu’il est désorienté objet, parce que pour bon nombre de projet l’utilisation de toute les techniques orienté objet a plus tendance à rendre le code impraticable qu’efficace donc c’est pas forcément un mal, ça apporte de la clarté.

Alors de là à en déduire que le Go est juste bon pour le compromis entre rapidité d’exécution et développement je dirais que non, c’est comme un préjugé. Va plus en profondeur et tu saura vraiment si il est adapté à ce que tu souhaite faire. Et franchement j’ai un background de développeur C/C++, ça fait 8 mois que j’en fais pratiquement tout les jours et je suis vraiment pas déçu bien au contraire !

De manière générale je dirai que le Go peut servir pour à peu prêt tout, scripting, web, server, réseau.
Et il n’y a rien de mieux que de tester pour se forger son propre avis !

Voilà j’espère que j’ai apporté quelques précisions et n’hésite pas si tu as d’autres questions.

3 J'aimes

Merci pour ta réponse.

Je ne vois pas pourquoi Go serait plus lent que le C. Je crois que les deux sont compilés en langage machine non?

Je pense que la prochaine fois que j’aurais besoin de rapidité, j’utiliserai GO.

Il y a des quelques trucs qui font que Go est plus lent que le C : un exemple est la vérification des accès sur les slices pour éviter les débordements, qui a un coût non négligeable à l’exécution pour du calcul pur (cf cette présentation de Sébastien Binet au meetup Golang Paris).
Mais ça s’améliorera avec le temps, c’est sûr.

1 J'aime

@jeremyozog, merci pour les précisions.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s