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, Responsable .NET
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++) ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Thomas404 Thomas404 - Membre habitué https://www.developpez.com
le 21/06/2014 à 11:30
Toujours pas de livres (en Francais) ou de tutoriels (complet et en Francais) disponnible pour apprendre ce langage ?
Avatar de Lynix 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.
Avatar de Firwen 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.
Avatar de Shuty Shuty - Membre éprouvé https://www.developpez.com
le 23/06/2014 à 10:39
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.
C'est en effet parfois un peu trop gros oui...

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++.
Go peut être vue comme alternative pour de simple et léger projets tournant en C/C++. Autrement, pour les grosses appli, il va sans aucun doute que la gestion de la mémoire est indispensable. Donc non, il ne remplace rien...
Avatar de Lynix Lynix - Membre habitué https://www.developpez.com
le 23/06/2014 à 14:03
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 ?
Avatar de super_navide super_navide - Provisoirement toléré https://www.developpez.com
le 23/06/2014 à 16:52
Je comprend pas pourquoi google s'acharne a vouloir créer un autre langage alors que JAVA et javascript et a eux deux ces langages peuvent couvrir tous les types d'applications.
La seul chose qui manque à Java pour être C++ Killer , c la notion de structure et de tableau alloué sur la pile et avant compilation.

Genre
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
struct Point  { 
    int x,int y  
} 
 
 
Point add(Point p,Point q) { 
    Point r; 
    r.x=p.x+q.x; 
    r.y=p.y+q.y; 
    return r }

Dans cette exemple il y a pas d'allocation de mémoire pour le GC mais unique sur la pile d'appel de fonction, donc un gain de performance énorme.

Apres l'autre exemple
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Truc { 
    Point tab[100]; 
 
    Point somme() { 
        Point somme  
        for(int i=0;i < 100 ; i++) { 
            somme.x+=tab[i].x; 
            somme.y+=tab[i].y; 
        } 
        return somme; 
 
    } 
 
}
Dans ce cas on évite un problème qui arrive forcement en java et pas en C++ c le défaut de cache on est sur que les 100 points sont a coté les un des autres donc le processeur n'aura pas de défaut de cache.
Voilà cela fait longtemps que je pense à cette idée qui ferai de java un C++ Killer.
Je sais il reste les fonction inlines de C++ mais bon ca doit pouvoir se faire avec un system de macro en JAVA...
Avatar de _skip _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.
Avatar de Pierre Louis Chevalier 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
Avatar de Périclite 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 ?
Avatar de Mingolito 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 ?
Contacter le responsable de la rubrique Accueil