Go de Google, alternative à C++

Google a créé le langage Go pour pour pouvoir fonctionner avec les processeurs multi-coeurs actuels ce qui est difficile avec les langages actuels. Pour ce faire, il a fait appel à plusieurs vétérans de la programmation ce qui explique la syntaxe vénérable du langage.

Le langage de programmation moderne Go
Un syntaxe qui date de 40 ans!

Son objectif est de rester le plus proche possible du langage C tout en améliorant de beaucoup la productivité. Et il veut se substituer à lui pour la programmation système, ce que ni Java ni C# ne peuvent faire.
Go s'inspire de C, Java, Pascal, Python et reprend même des caractéristiques de Scriptol!
Google nous dit dans la présentation:

"Nous affirmons que Go est un langage moderne"

Et c'est vrai quand à ses fonctionnalités, non quand à la syntaxe qui date de 1969 exactement et du langage B!
Il est utilisé en production depuis mai 2010.

Pourquoi utiliser Go?

Conçu pour les programmes parallèles, il peut sur des ordinateurs modernes fournir un traitement accéléré.
Sa syntaxe et la façon dont il traite les objets le destine surtout aux programmeurs système comme remplacement du langage C ou C++. Il permet alors un développement plus rapide.
Il possède d'emblée les fonctionnalités de concurrence et un garbage collector, qu'il faut ajouter à ces langages.
Mais il lui manque des bibliothèques pour l'instant.

On peut l'utiliser pour réaliser des logiciels serveurs et par exemple pour construire un CMS et générer des pages HTML. Le site golang.org est réalisé avec Go.

Caractéristiques de Go

La technologie CSP, (Communicating Sequential Processes) gère la communication entre programme aide à la gestion des processeurs multi-coeurs.

Différences avec C++

Même s'il reprend la même syntaxe des années 70, Go simplifie beaucoup la programmation par rapport à C++.
Beaucoup de causes d'erreurs fréquentes provenant de la syntaxe sont supprimées.
Le fonctionnement multi-thread devient simple, avec une seule commande.
Le garbage collector évite la gestion de la mémoire par le programmeur.

Go vs. Java

Java a été conçu comme un langage pour le Web et est devenu populaire grâce à cela. Il peut fonctionner sur le serveur ou sur le poste client grâce à des applets.
Son principal intérêt est sa bibliothèque d'interface graphique très étendue.
Go pourrait adopter une approche différente, utiliser Webkit pour l'interface, Native Client ou être intégré au navigateur comme JavaScript pour faire fonctionner des applications Web sur le poste client.

Go vs. C Sharp

C# a été créé par Microsoft comme réponse au langage Java et est conçu pour fonctionner sur le framework .Net. Celui-ci souffre d'un manque de compatibilité. Il fonctionne sur Linux, mais avec des fonctions réduites par rapport à la version de Windows.
C# fonctionne aussi dans Silverlight pour les applications Web.

Polémique sur le nom

Un ticket a été créé sur le forum du langage avec pour code d'identification issue 9.
L'auteur d'un langage totalement inconnu clame que le nom Go est déjà celui de son propre langage.
Le fait est qu'un livre a été écrit sur celui-ci, sous le titre Let's Go!

Notons que ce langage s'appelle Go! et non pas go, et que le mot Go appartient au domaine public: il s'agit d'un jeu de tableau chinois qui existe depuis plusieurs milliers d'années!

Sites et outils pour Go

Exemples de code

Programme Hello:

package main

import fmt "fmt"

func main() 
{
   fmt.Printf("Hello, world\n");
}

Afficher les caractères d'une chaîne:

package main  

import ("os";"flag";)

func main() 
{
  var s string = "Démonstration";

  for i := 0; i < s; i++ 
  {
      os.Stdout.WriteString(s[i]);
  }
}
L'absence de parenthèses après for est volontaire. Le langage offre quelques progrès dans la syntaxe...
Langages de programmation AspectJ - Basic - C - CIL - C++ - C++11 - C# - Dart - Eiffel - Go - Java - JavaScript - JavaFX Script - Pascal - PHP - Python - QML - Rexx - Ruby - Scala - Scriptol - Tcl - HTML - XML - XAML - XUL - SQL