Quelles sont les chances que Google Go devienne une langue dominante? [fermé]


58

Qui apprend ici Go? Est-ce que d'autres entreprises envisagent de l'utiliser? Est-il susceptible de devenir largement utilisé?


21
ruby devient populaire après rails, objective-c après iphone, à quoi aftersert-il?
ohho

1
Terrible, cela ne résout rien pour la plupart des gens.
Daniel Little

6
Les chances sont entre 0 et 1. Tout ce qui est plus spécifique nécessiterait un doctorat en pronostication, que je ne possède pas.
Rein Henrichs

1
@ Rein Henrichs - vous en obtiendrez un, bien que le comité doive apporter quelques modifications à la thèse finale
Martin Beckett le

3
Google devrait vraiment envisager de développer un langage Android SDK for Go. Au moins pour commencer.
setzamora

Réponses:


46

En ce qui concerne les langages de programmation, le vieil adage «Ce n’est pas qui vous êtes, mais ce que vous savez» est tout à fait vrai. C et C ++ ont été sponsorisés par AT & T, Java nous a été présenté par Sun, la famille .NET est sortie de Microsoft et tous sont devenus très populaires très rapidement. Ensuite, nous avons Objective-C et Python, qui sont restés assez obscurs jusqu'à ce qu'ils soient découverts et mis en scène par Apple et Google, puis, soudainement, ils ont vraiment décollé. Mais les langues sans grand sponsor tendent à sombrer dans l'obscurité, aussi bonnes soient-elles.

Go est sponsorisé par Google. Il n'est pas difficile d'arriver à la bonne conclusion ici. Donnez-lui cinq ans et ça va être énorme.


13
@ixtmixilix: Êtes-vous sérieux? App Engine et GWT disent le contraire.
imgx64

4
@ixtmixilix - Guice (un framework IoC basé sur Java) est écrit par Google et utilisé dans les applications frontales AdWords et Wave. Google seam à utiliser un certain nombre de langues.
mlk

3
+1 Je suis d’accord avec votre argument principal (FORTRAN, COBOL et C sont en vie et bien), mais je ne suis pas d’accord sur Go, car c’est une expérience bien loin du parrainage d’entreprise.
Apalala

2
AT & T n'a pas vraiment poussé C ou C ++. C est devenu populaire parce que c’était la langue d’Unix, et plus tard parce que c’était mieux que Pascal pour les programmes plus volumineux. C ++ vient de se répandre, selon le livre de Stroustrup "Design and Evolution of C ++". En règle générale, les langues ont besoin d'une application révolutionnaire ou d'un grand parrainage d'entreprise pour gagner gros, mais les langues peuvent frapper fort sans cela.
David Thornley

3
Cela fait cinq ans - qu'en pensez-vous maintenant?
hippietrail

17

En fait, je ne pense pas que Go réussira aussi bien. Une des raisons pour lesquelles il n'atteindra pas les grandes masses est qu'il est destiné à être un langage de programmation système.


17
Je ne suis pas d'accord. Jetez un coup d'œil au code source de Linux pour 'echo', puis jetez un coup d'œil à l'implémentation Go de echo. Si le langage peut supprimer des milliers de lignes d'une commande aussi simple, il peut probablement supprimer des lignes telles que des bibliothèques de traitement graphique. Et s’il parvient à supprimer les bases des bibliothèques de traitement graphique, le logiciel id (par exemple) le trouvera peut-être un jour plus utile que C / C ++. Et comme id a pour habitude de publier le code source de ses jeux, les graphismes en 3D dans Go pourraient être gigantesques d’ici 5 ans.
ixtmixilix

14
@ixtmixilix Linux n'a rien à voir avec echo, c'est une partie de GNU.
alternative le

3
avez-vous déjà vu quelque chose d'écrit en erlang? ce n'est pas affreux.
Le concierge d'Unix

2
Je pense que Go ne dépassera le C / C ++ que si le système d'exploitation de Google prend son envol. Si le système d'exploitation de Google ne décolle pas, je pense qu'il aura beaucoup plus de mal à toucher le grand public.
Jordan Parmer

2
Neiter I thik que Go grandira très vite. Mes raisons: 1. La syntaxe est assez étrange 2. Trop de limbes 3. Bibliothèque non exhaustive 4. Le modèle de concurrence est meilleur sur Erlang
Daniel Voina

15

Il existe un réel besoin d'un langage système doté de fonctionnalités plus modernes. C et C ++ sont trop liés par le code hérité et la compatibilité ascendante ici pour améliorer beaucoup. Cela dit, je ne pense pas que Go remplisse ce rôle dans sa forme actuelle. Son design est trop minimaliste. Bien que son modèle de concurrence soit excitant, il apporte peu d’autres fonctionnalités des langages de haut niveau au monde des systèmes. (La dernière fois que j’ai vérifié, ce qui était vrai il ya un certain temps, il n’y avait même pas d’exception.) En outre, du moins dans la mesure où le jeu de tests de langage informatique est une bonne mesure presque aussi vite qu’un "vrai" langage système doit être.

Je pense que la langue avec la meilleure chance de combler le vide d'un système plus moderne est la langue D . D est techniquement beaucoup plus fort que Go mais politiquement plus faible. Ce n'est pas soutenu par une grande entreprise. Ce dont elle a vraiment besoin, c'est de quelques bibliothèques (ceci est rapidement résolu maintenant que les spécifications du langage sont stables) et d'une application qui tue.


7
re « elle n'a même pas des exceptions » Il est une décision importante a été faite - golang.org/doc/go_faq.html
user151019

1
@ Mark: Intéressant. La panique et la récupération ressemblent à des exceptions réduites. D a des instructions scope, qui sont à peu près équivalentes à defer (), mais avec des exceptions normales.
Dsimcha

3
Il n'a pas d'exceptions, mais n'en a pas besoin. Au lieu de cela, il permet plusieurs valeurs de retour, ce qui en fait un foo, err := SomeFunc()lieu commun. Pour les problèmes majeurs ou les endroits où l’erreur ne fonctionne pas très bien, vous pouvez utiliser panic()et recover(). Cependant, ceux-ci sont utilisés intentionnellement très rarement; il n'y a aucun moyen de passer les exceptions le long de la pile si la pile est très courte, et les piles courtes sont courantes lorsqu'il y a beaucoup de threads simultanés.
Crazy2be

3
"D est techniquement beaucoup plus fort que Go", "Son design est trop minimaliste". Intéressant comment vous dites cela comme si c'était un fait. C'est juste ton avis, fais-le face.
Moshe Revah

10

J'apprends Go et oui, il est utilisé de manière productive en plus de Google et Heroku.

Go est définitivement un bon langage pour la programmation système. Code simple comme en C, structures puissantes comme en C ++ et fonctionnalités de sécurité comme en Java. Comme il s’agit d’une langue très jeune, beaucoup de belles choses d’autres langues ont été héritées:

  • itération sur les plages
  • Canaux (oubliez les mutex, etc.)
  • pas de hiérarchie de types, seulement l'héritage d'interface
  • En fait, Go ne connaît même pas les classes, mais des "Types" plus flexibles: les interfaces sont automatiquement héritées lorsque les méthodes définies correspondent
  • moins passe-partout: i := 1au lieu de int i = 1, func f(x, y, z int)au lieu de void f(int x, int y, int z), type Foo struct { a, b int }; bar := Foo{1, 2}au lieu declass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • exceptions ("panics") uniquement dans des cas vraiment exceptionnels: dans les autres cas, une fonction sujette aux erreurs peut renvoyer un paramètre d'erreur supplémentaire que vous pouvez facilement ignorer

Compte tenu de toutes ces choses intéressantes, de la sécurité et des performances connues uniquement des langages à typage statique, beaucoup de personnes de la communauté des langages dynamiques ont commencé à aimer Go. Dans la plupart des cas, le code Go n'est pas beaucoup plus long que le code Ruby, mais il est dans tous les cas plus sûr et mieux structuré.

Mais au final, je suppose que l'argument décisif pour Go est la concurrence. C'est un langage de type C doté d'un puissant support de concurrence, connu uniquement des langages fonctionnels.


2
Je suis récemment tombée amoureuse de Go tout en l’apprenant pour la programmation AppEngine, et je n’aurais pas pu mieux dire que vous l’avez fait. Bien joué.
Adam Crossland

5

Je dirais que cela dépend principalement des bibliothèques / services / logiciels qui seront créés dans / pour / en utilisant Go. Les gens utilisent quelque chose dans trois situations (l'ordre importe): quand ils n'ont pratiquement aucune autre option (Objective-C), quand leur environnement l'utilise (FORTRAN), quand ça leur facilite la vie (Ruby).


5

C'est peut-être un peu tard pour ça, mais Go devient un langage populaire maintenant et va probablement entrer dans le grand public avec Google le faire avancer. Il est présenté comme un langage utilisé pour les systèmes et les produits au sein de Google et comme un langage à utiliser avec Google App Engine. Il y a des gens très perspicaces sur le backend de Go building et l'amélioration de celui-ci. Des personnes très intelligentes et imaginatives travaillent sur des bibliothèques tierces pour Go.

Go comble un vide que d'autres langues n'ont pas encore comblé. Pour moi, j'essayais de combler ce vide avec Perl et un tas de solutions de rechange et astuces. Je ne crois pas que ce soit le langage parfait pour toutes les situations et toutes les personnes, mais c'est certainement un candidat pour un assez grand nombre de situations. Par exemple, cela fonctionne très bien pour les applications Web, ainsi que pour les applications de bureau ou les applications basées sur un serveur. Il fait un travail fantastique avec HTTP et WebSocket (ce qui signifie que vous pouvez ignorer complètement Apache ou nginx) tout en fonctionnant très bien sous Windows, Linux et OS X pour les deux démons et pour les anciennes applications de bureau. À l'heure actuelle, la seule situation qui échoue pour moi concerne les applications Android, auxquelles j'espère remédier rapidement. Je l'utilise pour les applications de bureau Windows, les applications de bureau Linux et les applications Web basées sur Linux.

Je pense que cela prendra plusieurs années avant que cela ne frappe vraiment le grand public, mais ça va arriver. Je pense qu'il faut construire davantage de bibliothèques tierces, un peu comme le type de nombre et de sélection que Perl a avec CPAN. Ça va y arriver.


3

Qu'est-ce que “mainstream” veut dire quand même? Sans le savoir, il est très difficile de répondre à cette question. Regardons un peu à cela.

Il y a beaucoup de définitions possibles. Voici quelques-uns:

Vue de gestion:

  • Demandez aux clients de vous demander de l'utiliser
  • Demandez à la direction de vous demander de l'utiliser
  • Ne sera pas critiqué par la direction pour l'utiliser

Point de vue des développeurs:

  • Outils linguistiques couramment disponibles (par exemple, dans les distributions Linux)
  • Les outils linguistiques seront couramment disponibles pendant 10 ans
  • Crée des artefacts logiciels qui persisteront et seront utilisés pendant au moins 10 ans

Point de vue des carrières:

  • Les compétences spécifiques à une langue sont transférables à d'autres emplois
    • Les recruteurs le demandent

Compte tenu de tout ce qui précède, je dirais que la seule réponse honnête est probablement «trop tôt pour le dire», mais je crois que le meilleur indicateur de toute longévité réelle est le nombre de petites entreprises.les entreprises qui utilisent la langue. Les grandes organisations vont très bien - elles peuvent même être essentielles à la croissance d’un langage ou d’un système d’outils en raison de l’ampleur des investissements qu’elles peuvent appliquer - mais elles sont plutôt sujettes à des modes passagères (à quelques exceptions près). En revanche, si une petite entreprise s’est construite autour de l’utilisation du langage pour fournir des produits et des services, elle voudra très probablement contribuer à faire en sorte qu’elle puisse toujours le faire à l’avenir. Ils constituent également le fondement d’un marché de l’emploi fort dans la région et de la demande d’outils. Curieusement, il existe plusieurs indicateurs d’intégration dans ma liste (peut-être plus, en fonction des caprices de la direction).

Alors, combien de personnes en dehors de Google utilisent Go pour leur travail? Je n'ai aucune idée. (Je ne le suis pas. Mes besoins sont actuellement bien servis par un mélange de Java, C et Tcl. YMMV.)


Grand résumé de ce que “mainstream” signifie. Je pense que Go a tout cela, sauf que «les clients vous demandent de l’utiliser».
Wildcard

2

Il est déjà plus populaire que certaines langues.

Il est possible que Go soit la langue la plus importante depuis 20 ans. Il présente vraiment de grands avantages en termes de jeux de données volumineux, tels que les sites de médias sociaux, le cloud computing, le Search et le mobile.

Des sites tels que Facebook, Twitter, Linkedin, YouTube et les réseaux Ad-Serving sont beaucoup plus utilisés par Google Go que Ruby On Rails, du moins dans certains contextes.


1

J'ai regardé Go quand j'en ai entendu parler. En tant que débutant complet, j'apprends toujours les langages pour débutants (dans mon cas, Java, C #, Python et Scheme), ce qui est très utile, mais si je n'avais pas été absorbé par tant de langages différents, je l'aurais sérieusement envisagé.

Je pense que, à mon niveau, il n’ya pas de mal à maîtriser les bases avant de sauter dans des bandes dessinées. Bien que, si je me souvienne bien, quand je regardais Go, je suis devenu très attiré par Erlang pour une raison quelconque.


1

Je viens juste de regarder Go à cause de cette question, donc je ne peux pas vraiment dire si cette langue deviendra une langue dominante, mais une chose vient de m'exciter vraiment:

http://golang.org/doc/go_spec.html#Channel_types

Je suis d'abord tombé sur le concept de canaux dans Occam-pi et je dois dire que c'est l'un des meilleurs concepts de programmation de tous les temps . La concomitance semble si facile alors que faire la même chose dans un langage de type C peut parfois être pénible.

D'après ce que j'ai vu (dans les 10 minutes que j'ai examinées), Go semble essayer de combiner de nombreux concepts de programmation différents, mais cela risque de faire de lui un homme à tout faire, un maître de tout.


0

Je soupçonne que son adoption dépendra du fait que Google l'adoptera comme langage pris en charge pour Appengine et / ou GWT.


2
En quoi un langage système serait-il utile pour Google App Engine?
ixtmixilix

Je dirais que le simple fait qu’il s’agisse d’un langage système compilé en code machine n’empêche pas Google de cibler d’autres plateformes à l’avenir. Il suffit de regarder ce qu’ils ont fait de la compilation java en JavaScript dans le cas de GWT et de la publication de Dalvik vm pour Android. De même, Facebook compile PHP. Je pourrais envisager une sortie de Go qui pourrait être installée dans appengine ultérieurement.
Chris Buckett

+1 - L'important est qu'il soit utile à quelque chose. Il suffit de regarder ce que l'iPhone a fait pour Objective-C.

3
Eh bien, c'est juste arrivé . Voyons maintenant si ça décolle ...
Elad,

3
Pour mémoire, je développe actuellement une application Web ambitieuse et ambitieuse sur le runtime AppEngine Go. Go est extrêmement productif et rapide. Le code est très lisible. C'est une langue merveilleuse.
Adam Crossland

0

Je souhaite que Go devienne populaire.

C'est puissant dans la syntaxe. (Découvrez les avantages de python, C, Java). C'est bon pour le processeur multi-core. (La fonction de canal est bien meilleure que la programmation par thread). La conception empêche le piège de nombreux programmeurs. (Mauvais pointeur, même style de codage par outil gofmt, empêche un bug non initialisé variable, la première fois, je l’essaye pour la première fois car c’est python + C mais avec une vitesse proche de 1/2 vitesse de C.

Mais, après avoir appris en profondeur, j'ai découvert qu'il était approprié de développer une tolérance aux pannes et une architecture évolutive.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.