Go ou C?

Ouh! Que conseillerais alors pour la conception d’un site web dynamique??[/quote]
Perl, python, ruby, Java, javascript ou un tas d’autres. Je comprends que Java n’est pas aimé, mais perl, python et ruby ont une foule de framework de divers type selon la taille du projet, le style que tu veux adopter et qui correspondront au moins aussi bien que Zend et Symphony.

Mais note que je suis méchant avec PHP, il a acquis ses lettres de noblesse et il est extrêmement utilisé en entreprise et ailleurs. Python et Ruby sont 2 grands chalengers, mais ils restent des chalengers (je ne parle pas de Perl qui manque de popularité).

Ouh! Que conseillerais alors pour la conception d’un site web dynamique??[/quote]
Django, pourquoi il y a autre chose ?

[quote=“M3t4linux”][quote=“denis.beurive”][*]L’écosystème de compilation est très simple, élégant et puissant.
[/quote]

J’aime beaucoup cette phrase!! Bien que je ne sache pas vraiment ce que cela veut dire…[/quote]
En principe tu n’a pas besoin d’un makefile.

J’ai oublié de répondre à ça.

En quoi tu es sceptique ? Qu’est ce que tu crains ?

Disons que Google a rarement fait quelque chose gratuitement sans arrière pensé. Donc je cherche encore le “truc”. Et quand je vois que même LinuxFr a des bout de son site en Go, je commence à douter.

Surtout que Google risque d’être a cran pour filer des trucs gratos alors que Bercy leur réclame 1 Milliard 7 d’euro!!

@Mimoza

Personnellement, je ne pense pas qu’il faille chercher la manipulation derrière la création du langage GO.

@MisterFreez

Je suis un grand fan de Perl. Perl est un excellent langage. Mais au niveau de la programmation orientée objet, c’est vraiment moche.

Je pense que Perl6 sera une révolution. J’ai consulté les fonctionnalités… c’est impressionnant. Les deux grands rivaux : Perl6 et Ruby2 :wink:

A+

Disons que Google a rarement fait quelque chose gratuitement sans arrière pensé. Donc je cherche encore le “truc”. Et quand je vois que même LinuxFr a des bout de son site en Go, je commence à douter.[/quote]
Tu crains quoi ? Que le compilateur ajoute une backdoor dans ton code ? (je ne parle pas de choses infaisable là ça a déjà était fait)
C’est un langage piloté par une boite en soit c’est dommage (contrairement au C au C++ ou à ADA qui sont normalisés), mais c’est aussi le cas d’autres comme Smalltalk ou Java. Mais la particularité c’est qu’il est livré sous licence libre et possède déjà une implémentation dans gcc : blog.golang.org/2012/07/gccgo-in-gcc-471.html

Tu ne va pas nous expliquer que Google est passé de « Don’t be evil » à Grand méchant parce qu’il a était interdit en Chine pendant un temps ?
Je ne vois aucun rapport entre ce qui se passe ponctuellement en France et les techno qu’ils développent. Note que tu aurais pu nous parler de la presse.

Au passage qu’est ce que notre gouvernement en a à faire de Go ? Google n’a aucun intérêt à ne pas livrer des bouts de son langage car il en existe une quinzaine d’autres qui sont près à prendre la place.

S’il n’y avait que le modèle objet, les fonctions aussi ont des problèmes.

Tu as raison, les fonctions « perliennes » sont moches. Perl présente bien des défauts (les objets, les fonctions…).

Cela dit, de mon point de vue, Perl permet « d’exprimer son style », plus que d’autres langages. Cela peut être vu comme un défaut : dans certaines conditions on désire imposer un style identique à tout le monde. Mais, d’un autre côté, un bon « style » (élégant, subtile, mais pas trop…) rend la lecture du code agréable.

Perl6 va corriger les défauts de Perl5 (objets, fonctions…), tout en conservant ces qualités actuelles, et en particulier la liberté d’expression qui caractérise ce langage. De nouveaux concepts innovants seront également directement inclus dans la grammaire du langage lui-même. Ces concepts enrichissent le langage. Il en résulte une plus grande expressivité.

Bon, je suis peut-être trop enthousiaste… Mais j’adore le Perl :wink:

Tu ne va pas nous expliquer que Google est passé de « Don’t be evil » à Grand méchant parce qu’il a était interdit en Chine pendant un temps ?
Je ne vois aucun rapport entre ce qui se passe ponctuellement en France et les techno qu’ils développent. Note que tu aurais pu nous parler de la presse.

Au passage qu’est ce que notre gouvernement en a à faire de Go ? Google n’a aucun intérêt à ne pas livrer des bouts de son langage car il en existe une quinzaine d’autres qui sont près à prendre la place.
[/quote]

Non, je n’explique rien. Tout comme le fait que le gouvernement ne soit pas au fait des développements de Google dans le détail.

C’était une aparté HS, rien d’autre!

Arf!! J’ai oublié les balises pour le mentionner, mea culpa!

Ne t’inquiète pas je suis un adorateur de perl. C’est l’un des deux langages de scripts que j’utilise (l’autre étant bash/zsh).

Perl garde ce coté fun que python et java cherchent à détruire.

@Mimoza

Pour avoir utilisé GO, je dirais que ce langage est vraiment excellent pour implémenter des « applications réparties » (genre P2P).

Je me demande si GO ne serait pas la première brique pour un projet beaucoup plus ambitieux : le développement d’un « nuage » (à l’image de iCloud d’Apple) global.

Les « nuages » sont à la mode, et il s’agit probablement d’un nouvel « eldorado » technologique.

Pour imposer un « nuage », quoi de mieux que de donner à la communauté des développeurs un outil qui leur permet de développer des applications s’appuyant sur ce nuage ?

Remarquez que cette démarche n’est pas nouvelle. Elle a été déployée avec succès par Apple avec l’Iphone.

Mais pourquoi créer un nouveau langage pour cela ?

[ul]
[li]Pour parvenir à son objectif, Google doit développer une API simple pour accéder à son nuage.[/li]
[li]Les langages existants ne sont pas vraiment adaptés à ce type d’applications. Et il faudrait développer et maintenir des librairies pour tous les langages, y compris des langages contrôlés par des concurrents (Microsoft, Apple…).[/li]
[li]Ensuite, si vous vous intéressez aux réseaux de recouvrement, vous savez que l’on peut dissocier la partie « réseau » de la partie « métier ». Les couches hautes (GUI, base…) peuvent parfaitement être développées avec des langages existants.[/li][/ul]

Bref, GO est peut être la brique de base pour la création d’un écosystème qui s’appuierait sur le nuage de Google.

Si tel est le cas, je n’y vois aucune intention malveillante. Cette technologie pourra être utilisée pour d’autres applications également. Bref, la communauté y trouvera son compte.

A+

Tu parle de système distribué. Il y a quoi dans Go pour faire ça ? On parle souvent de sa gestion du parallélisme qui effectivement simple mais j’ai jamais entendu parler de fonctionnalité pour les système distribué.

En fait, GO n’intègre rien en ce qui concerne les systèmes distribués. Par contre, il possède tout ce qu’il faut pour implémenter des protocoles réseau :

[ul]
[li]Fonction réseau de haut niveau.[/li]
[li]Facilité pour créer des traitements en parallèle, en gérant facilement des timeouts.[/li][/ul]

Le fait que GO ne présente pas de classes (au sens OO), renforce cette idée. Lorsque vous développez des tables de routage, par exemple, vous n’avez pas besoin de faire de la conception objet. C’est comme si GO était « taillé sur mesure » pour implémenter des protocoles, des automates… et le tout, orienté vers le réseau.

Enfin, c’est l’impression que ça me donne. Je peux être à côté de la plaque.

A+

@denis.beurive : J’ai acheté le “Linux Magazine” consacré au Go. Je n’ai pas encore tout lu mais il y a déjà quelques petites chose qui me dérange. La manipulation des chaines de caractère qui n’est pas vraiment des plus aisé. Heureusement il semble y avoir un package qui simplifie cela mais c’est dommage que ce ne soit pas natif. Après il y a quelques petite chose qui me chiffonne (genre le “:=” pour l’initialisation, le typage dynamique) mais finalement ce n’est que du sucre syntaxique.
On voie bien que le langage est très proche de la machine. Il est peut être encore un eu jeune mais il est vrai que c’est une alternative crédible au C, avec des avantages indéniable.

Ce n’est pas du typage dynamique mais plutôt de l’inférence de type :
play.golang.org/p/m-CmeZHSOe

La différence c’est que l’inférence de type consiste à ce que le compilateur détermine le bon type et fait toutes les vérifications qu’il faut. Le typage dynamique c’est quand les variables ne portent pas d’information sur les types et peuvent donc prendre n’importe quoi.

Ce n’est pas du typage dynamique mais plutôt de l’inférence de type :
play.golang.org/p/m-CmeZHSOe

La différence c’est que l’inférence de type consiste à ce que le compilateur détermine le bon type et fait toutes les vérifications qu’il faut. Le typage dynamique c’est quand les variables ne portent pas d’information sur les types et peuvent donc prendre n’importe quoi.[/quote]
Exact, merci d’avoir précisé :023

@Mimoza

Oui, c’est une alternative au C, mais seulement pour les « gros systèmes ». Sur des microcontrôleurs ou des cartes de faible puissance, ce n’est pas adapté.

A+