En ce qui concerne Go, j'aime pas mal de leurs choix techniques:
remonter les erreurs par valeur de retour c'est top et force a bien gérer les erreurs au lieu de laisser une exception remonter le tout et faire n'importe quoi. On peut regretter que ce ne soit pas un type générique comme Result<> en rust qui wrap soit une erreur soit une valeur, mais c'est déjà très bien
forcer a réimplémenter toutes les boucles, je trouve ça bien aussi car cela force le programmeur à penser à son algorithme et lui évite de faire appel a plein defonction différentes qui vont itérer sur une collection plusieurs fois alors qu'une seule itération avec plusieurs traitements à l'intérieur serait plus efficace.
Ce que je regrette c'est le runtime un peu trop lourd, l'absence d'accès au bas niveau (pas d'exec en Go par exemple), le duck typing et le type interface{} un peu trop présent.
[^] # Re: Go est lent, Rust est rouillé !
Posté par Mildred (site web personnel) . En réponse au journal Explorer des langages de programmation - édition 2020. Évalué à 4.
En ce qui concerne Go, j'aime pas mal de leurs choix techniques:
remonter les erreurs par valeur de retour c'est top et force a bien gérer les erreurs au lieu de laisser une exception remonter le tout et faire n'importe quoi. On peut regretter que ce ne soit pas un type générique comme Result<> en rust qui wrap soit une erreur soit une valeur, mais c'est déjà très bien
forcer a réimplémenter toutes les boucles, je trouve ça bien aussi car cela force le programmeur à penser à son algorithme et lui évite de faire appel a plein defonction différentes qui vont itérer sur une collection plusieurs fois alors qu'une seule itération avec plusieurs traitements à l'intérieur serait plus efficace.
Ce que je regrette c'est le runtime un peu trop lourd, l'absence d'accès au bas niveau (pas d'
execen Go par exemple), le duck typing et le typeinterface{}un peu trop présent.