J'ai acheté Go il y a six mois et j'y ai rédigé des paquets importants. J'utilisais Java depuis quelques années et j'ai commencé à le détester. Plus précisément, le processus de construction en ligne de commande pour Java est pénible (c'est-à-dire ant et les autres solutions), l'effacement des types de génériques me rendait fou et j'en avais assez de tous les textes passe-partout liés aux fichiers. La programmation devenait un travail difficile et pas amusant.
Go a changé ça pour moi. La clé est ce qu'il enlève. En simplifiant les choses, tout en donnant un accès facile aux informations de type, il vous donne en fait plus de pouvoir. La concurrence simple basée sur les canaux est fantastique. Je me languissais de la simplicité des structs, l'unité de données de base en C. Go remet les structs au centre de la scène. La seule ombre au tableau est la gestion des erreurs, mais ce n'est probablement que moi. Go vous encourage à traiter les erreurs tôt avec des valeurs de retour multiples, ce qui est probablement pour le mieux. Mais j'espère qu'un jour nous pourrons trouver un moyen de faire cela et de rendre les API plus fluides.
Je veux intégrer ce travail avec une interface web et j'ai commencé à chercher en javascript et websockets. Mais je trouve que JavaScript est une abomination et je n'ai pas pu me donner la peine de parcourir toutes les tentatives de Tom, Dick et Harry pour corriger ses nombreux défauts. L'ironie de la chose, c'est que j'ai pensé à dégoogliser un peu ma vie, mais lorsque j'ai consulté Dart, il ne m'a fallu que quelques heures pour décider d'y aller à fond. La grande surprise pour moi a été que, à mon avis, Dart est en fait un langage plus complexe que Go à bien des égards. Dart n'est pas tant un remplacement de javascript qu'un remplacement de java. La syntaxe et les structures sont similaires, la VM de Dart a des performances similaires à celles de la VM de Java. Je trouve le typage optionnel bizarre, mais je vais continuer à avancer avec un esprit ouvert.
Même si je n'aime pas me blottir sous l'aile du Googlenaut, l'une des principales caractéristiques de Go et Dart est qu'ils sont livrés avec des batteries et que l'expérience de construction est dépouillée et rapide. Il existe des éditeurs graphiques si vous le souhaitez, mais ces langages font de la ligne de commande un citoyen de première classe ! Malheureusement, Dart doit encore travailler avec le javascript hérité, mais Go, avec une feuille blanche, est tout simplement un plaisir à apprendre et à construire.
Le C/C++ sera toujours utile dans les situations embarquées, mais le Go est un langage qui, dans la plupart des utilisations du C/C++, a des performances similaires, mais est largement plus facile/rapide à développer en solo ou en collaboration, beaucoup plus proche de Python par exemple (les pythonistes peuvent désormais avoir le beurre et l'argent du beurre). L'humain est l'endroit où la plupart de la valeur est créée, généralement. Je ne saurais trop insister sur la valeur d'une compilation rapide dans le cycle de développement.
Ensemble, pour moi, Go et Dart sont des tueurs de Java. Les gens veulent toujours une expérience web plus rapide et le jour où DartVM sera livré avec Chromium sera un grand jour. gros problème . Cela déclenchera une migration vers Dart, tant du côté serveur que du côté client, et le javascript commencera son long déclin.