Go, l'alternative de Google à C et C++ sort en version 1.3 :
Gain en performance, améliorations des outils et support de nouvelles plateformes

Le , par Hinault Romaric

0PARTAGES

1  0 
Sur le Web, Google veut remplacer le populaire langage JavaScript par Dart, son langage de programmation structuré pour le Web.

Du coté du développement natif, la firme propose Go comme une alternative au célèbre langage de programmation C et son implémentation orientée objet C++.

Google maintient un rythme de développement effréné de ces deux plateformes. Quelques mois après la publication de Dart 1.3, la firme dévoile une nouvelle version de Go, qui sort six mois après la dernière version majeure.

Go 1.3 gagne en performance, améliore les outils de développement et ouvre le langage à de nouveaux environnements d’exécution.

GoDoc, le serveur de documentation Go, s’est enrichi de l’analyse statique. Lorsqu’il est activé, les résultats d’analyse sont présentés à la fois dans la source et la documentation des paquets vus.

La chaine d’outils gc prend désormais en charge l’exécution Native Client (NaCl) dans un bac à sable (sandbox) sur les architectures Intel 32 et 64 bits. Cette nouveauté permet de garantir plus de sécurité lors de l’exécution du code non fiable.

Go 1.3 introduit un support expérimental de nouvelles plateformes, dont DragonFly BSD, Plan 9 et les systèmes d’exploitation Solaris.

L’environnement d’exécution du langage de programmation a subi quelques modifications qui ont amélioré le rendement des binaires Go. Il s’agit notamment des améliorations du ramasse-miettes (garbage collector), l’introduction d’une nouvelle stratégie de gestion de la pile et des améliorations du moteur d’expressions régulières.

Dans le cadre du grand remaniement de l’éditeur de liens Go, les compilateurs et linkers ont subi une refactorisation. La phase de sélection des instructions faisant partie précédemment de l’agent de liaison a été déplacée vers le compilateur, avec à la clé des accélérations incrémentielles pour les grands projets.

Go et Dart sont des langages pleins de potentiels, mais qui, pour l’instant, sont encore utilisés par peu de développeurs. Suite à l’évolution de ces deux plateformes, Developpez.com a créé cette semaine des forums dédiés à ces deux langages, afin de permettre aux développeurs francophones de s’entraider et partager leurs expériences sur ceux-ci.

Télécharger Go 1.3

Notes de version de Go 1.3

A propos du forum Go de Developpez.com

A propos du forum Dart de Developpez.com

Et vous ?

Que pensez-vous du langage Go ? Représente-t-il une sérieuse menace pour C et C++ ?

Que pensez-vous de cette volonté de Google à vouloir remplacer ces langages populaires (JavaScript, C et C++) ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Hinault Romaric
Responsable .NET https://www.developpez.com
Le 25/06/2014 à 10:04
Google a clairement présenté le langage Go comme une alternative à C++ dans la description du langage. Voici un commentaire des créateurs du langage (qui montre que l'origine du langage est de palier aux faiblesses de C++) :


When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] ... [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason.
Ensuite dans la présentation du langage, il y a un gros rapprochement avec le langage C (qui présente Go comme un "C moderne".


Go's syntax includes changes from C aimed at keeping code concise and readable.

Go adds some basic types not present in C for safety and convenience, etc.
Et voici un autre commentaire des gars de Google tiré d'une autre news sur le sujet.


les langages de programmation majeurs datent de plus d’une décennie, et ne se sont pas adaptés à l’évolution du paysage informatique qui a énormément changé. Go a été conçu pour tirer parti des processeurs multicœurs, fournir des fonctionnalités modernes comme le typage dynamique, le ramasse-miettes (garbage collection), et abandonner des aspects pénibles comme l’inclusion des fichiers pour le langage C.
Un benchmark ici qui compare les performances de Go et C : http://benchmarksgame.alioth.debian.org/u64q/go.php

Le titre de la news peut sembler pompeux, je le concède, mais il tient juste compte des informations que nous avons glané sur le sujet et véhiculé par Google lui même.

Le Wiki de GO : https://code.google.com/p/go-wiki/wi...CPPProgrammers

Présentation de GO : http://en.wikipedia.org/wiki/Go_(pro...ming_language)

Une comparaison entre C et Go : http://crypto.stanford.edu/~blynn/c2go/index.html

Un excellent débat C vs Go sur hackernews : https://news.ycombinator.com/item?id=4110480

comparaison des performances de C et Go http://benchmarksgame.alioth.debian....rg/u64q/go.php
7  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 24/06/2014 à 23:09
Citation Envoyé par Lynix Voir le message
Merci pour ces éclaircissements.
C'est vrai qu'on se passerait bien des titres "à scandale" de Developpez, personne n'a envoyé de MP aux newsers pour leur dire ?
Je penses que tu exagères, la plupart des titres sont assez informatif et neutres, après si certains sont plus trollesque pour attirer l'attention je ne voie pas très bien ou est le mal, ça serais mieux selon toi des débats vides de commentaires ?

Il y à un bouton d'alerte sur les news pour communiquer avec les gars du service news.
Je vous signale aussi que vous pouvez en faire des news, le club est un site collaboratif, si celles que vous voyez ne vous plaisent pas. Vous ne pouvez pas demander à des journalistes généralistes de faire des news aussi bonnes que vous pourriez les faires, vous qui êtes des spécialistes dans votre domaine
Par exemple ce débat EDI versus éditeur été lancé par un simple membre du club, plutôt que de critiquer, pourquoi pas en faire des news, avec le titre qui te plait ?

Sur les autres sites c'est bien pire, à tel point que sur certains autres sites qui prétendent faire parfois des news développeur, certains on tout simplement supprimés la possibilités pour les membres d'avoir des commentaires, ils ont du retirer la zone commentaires tellement les sois disant newsers (en fait des agences de madagascar qui font des news à deux balles) se faisaient chambrer, et ça quand il avais la chance d'avoir des commentaires, généralement aucune réaction car news sans intérêt ou déjà vue et revue

Personnellement mes news préférées sont les news faites par les membres, mais bon cela n'engage que moi, mais il y en à tellement peu. C'est toujours pareil partout, pour critiquer et dire du mal il y à toujours des wagons entiers de volontaires, et pour se retirer les doigt du c.. et faire quelque chose d'utile il y à plus personne
6  1 
Avatar de Périclite
Membre à l'essai https://www.developpez.com
Le 24/06/2014 à 23:17
Citation Envoyé par Lynix Voir le message
Merci pour ces éclaircissements.
C'est vrai qu'on se passerait bien des titres "à scandale" de Developpez, personne n'a envoyé de MP aux newsers pour leur dire ?
De quel titre à scandale tu veux parler ?

"Go le nouveau langage favori de Lady gaga et Dieudonné, le nouveau roi d’Espagne témoigne, Manuel Valls décide de l'interdire, et Jean-Francois copé organise un comité de soutien financier en partenariat avec Bygmallion, allez-vous y souscrire ? " C'est de ce titre la dont tu parles ?
6  1 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 24/06/2014 à 23:33
Peut être que comparer Go à C++ est stupide, il en reste pas moins que c'est de cette façon que c'est présenté par Google : "Go is a systems programming language intended to be a general-purpose systems language, like C++".
Donc c'est pas developpez l'inventeur de ce "titre", c'est juste une reprise de la communication Google. Après le débat est la pour justement faire naitre la vérité sur tout ceci, sinon à quoi bon faire un débat s'il y à rien à dire ?
3  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 24/06/2014 à 14:58
Je sais il reste les fonction inlines de C++ mais bon ca doit pouvoir se faire avec un system de macro en JAVA...
Les JVM modernes savent très bien inliner les petits appels. Pour le reste de ton point, je pense que tu simplifies un peu trop mais je veux pas polémiquer car c'est pas le sujet.


Que pensez-vous de cette volonté de Google à vouloir remplacer ces langages populaires (JavaScript, C et C++) ?
Javacript et C/C++ sont des langages qui ont certes leurs points faibles et leurs points forts, mais qui restent incontournables dans beaucoup d'applications faute d'alternatives acceptables. Je dirais que plus que de remplacer des technos, Google propose d'autres compromis entre la sécurité, la maintenance, la productivité du développeur et les performances. A chacun ensuite d'évaluer si ce compromis les intéressent. Certains diront qu'ils sont prêts à sacrifier une partie des aspects dynamiques de JS pour bénéficier d'une expérience plus proche d'un développement en Java, tout comme d'autres seront peut être intéressés par les gains de productivité que GO peut leur offrir par rapport à du C++, quitte à perdre une partie des possibilités côté optimisation.

Le gros problème de ces nouveaux venus, c'est surtout leur écosystème encore assez faible... Et dans le cas des performances de GO comparées au C qui semblent être le point le plus décrié, il faut à nouveau tenir compte de l'âge vénérable du C (ou du C++) et des centaines d'années/homme passées sur les compilateurs. Google aimant aussi beaucoup se servir de ses propres créations, s'il se met derrière un projet, c'est sans doute qu'il pense que ça peut lui être utile.
2  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 16/12/2014 à 17:03
Prévisible, vus les problèmes entre Google et Oracle...
2  0 
Avatar de Lynix
Membre habitué https://www.developpez.com
Le 23/06/2014 à 0:48
Moi je ne comprends pas comment un langage basé sur l'utilisation d'un ramasse-miette peut prétendre être une alternative à un langage n'en ayant pas.
1  0 
Avatar de Firwen
Membre expérimenté https://www.developpez.com
Le 23/06/2014 à 8:02
Moi je ne comprends pas comment un langage basé sur l'utilisation d'un ramasse-miette peut prétendre être une alternative à un langage n'en ayant pas.

Parce qu'il ne le prétend pas. Excepté dans les titres pompeux de dvp.com qui recherche plus la génération de clic que la justesse des propos.

Go est un langage qui se situe à mis chemin entre C et python, et qui cible le prototypage d'application rapide, le développement de Web services, ou la programmation système de moyenne taille avec un trés bon support de la programmation parallèle.

Il ne permet pas la programmation en espace Kernel comme C, ni la programmation d'application lourdes ou de jeux comme C++ où la gestion manuel de la mémoire est requise.
Il n'est donc absolument pas une alternative au C / C++.

Ça n'en reste pas moin un langage trés intéressant :
- le concept de go routines permet de paralleliser des millions de tasks sans subir l'overheat d'une création de thread classique.
- Le duck typing amène une partie souplesse de python sur un langage compilé.
- La compilation est orienté "brain dead", elle est toujours en statique
- Les performances globales sont 20-30x supérieurs à du python-ruby.
3  2 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 03/07/2014 à 0:53
Citation Envoyé par Kenaryn Voir le message
Bref, Go n'est pas une alternative à C ou C++. Il a été créé pour concurrencer Erlang et/ou D
99% des gens n'ont jamais entendu parler de Erlang ou D, donc comme point de comparaison ça sera pas très informatif.
2  1 
Avatar de Aurelien Plazzotta
Membre extrêmement actif https://www.developpez.com
Le 17/12/2014 à 1:39
Il faut du temps à une équipe pour faire évoluer un langage afin d'offrir la possibilité de développer des applications mobiles... or Google l'a fait en seulement 6 mois (passage de la version 1.3 à 1.4 de Go) !

Je suppose qu'ils ont adopté la technique du Minimum Viable Product pour produire la version 1.4. Le minimum syndical annoncé à l'aide des 3 API système (gestion des évènements tactiles, des sons et dessins), pour se lancer à la conquête du dév mobile, laisse clairement la part belle aux jeux videos mobiles, et séduire les développeurs du métier qui emploient déjà les langages C/C++.
Il est évident que Google concentre sa communication sur ce segment de marché.

Et pour ceux qui s'expriment à propos de Dart, il y a un méconnaissance et donc confusion. C'est un langage de programmation orienté objet, et non un langage de scripting (le même amalgame s'applique aussi entre les langages Shell (scripting) et Bash (OO) pour l'anecdote).

La deuxième erreur, plus grave concernant Dart, c'est de croire qu'il est seulement orienté client.
Or Dart est orienté serveur également. Oui, on peut écrire des serveurs HTTP avec. Oui, monsieur

Les sources :
http://en.wikipedia.org/wiki/Dart_(p...ming_language)
https://www.dartlang.org/docs/tutori...ls/httpserver/

Troisième chose, Google a toujours affirmé officiellement vouloir concurrencer le javascript avec Dart car le langage est orienté client. L'entreprise se révèle extrêmement habile en ne communiquant pas sur le fait que Dart soit aussi un langage orienté serveur, et de facto, concurrence pleinement Java.

Java. Oui, monsieur.
Google possède une forte dépendance à Oracle en raison du monopole de Java pour le développement d'applications mobiles. Ce qui a poussé Google a développer Dart, pour y mettre un terme (c'est une hypothèse de ma part).
Dart évolue à une vitesse foudroyante (version 1.8 et déjà normalisé par l'ECMASCRIPT en seulement 3 ans d'existence) et je subodore qu'il marche pleinement sur les platebandes de Java d'ici trois à cinq années, si ce n'est plus tôt afin d'alléger sa dépendance à l'écosystème Java et imposer sa propre technologie sur son OS embarqué Android. C'est une prévision arbitraire qui n'engage que moi, cela va de soi =)

Quant à Go, sa création a pour but de détrôner le langage D, et dans une moindre mesure C#, mais pas Java. Peut-être est-ce en raison du fait qu'il soit requis pour le développement d'applications mobiles tournant sous Android.
Ce sont des propos recueillis cette année par Seth Ladd sur stackoverflow, ancien core developper Go qui a sombré depuis du côté obscur du core dev de Dart, mais je ne retrouve plus la source :/
1  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web