Le Mr plus haut ne nous a pas dit ce qu'il reprochait à Kotlin à part le fait que Big Brother n'en soit pas le géniteur.
On voit facilement ce que Go n'apporte pas au 22 Janvier 2020: Pas de traitement d'erreur digne de ce nom, un support du fonctionnel basique, même même pas de gestion de modules avec un dépôt officiel et même pas de généricité. Mis à part les goroutines, réimplémnentation un peu plus intégrée d'un concept de l'aube de l'informatique, avec une meilleure gestion des appels natifs, y'a pas grand chose sous le capot.
Si on veut vraiment des perfs (puisque c'est leur argument) autant oublier le ramasse miette et se lancer dans le Rust qui est à peine plus compliqué et énormément plus productif une fois qu'on a pigé les concepts notamment pour son approche fonctionnelle et son support des génériques.
Si on veut de la simplicité, restons en à Python qui gère l'asynchrone et le mutliprocessing suffisamment bien avec multiprocess en standard, gevent ou async/await pour les coroutines.
Ah oui il faut faire un "pip install", c'est pas neuneu friendly.
Quant à ce qu'il apporte tout y est coté Kotlin. Mais avec lui au moins tu t'ouvres un vaste champ d'applications avec un écosytème immense qui vient avec la JVM, le dev Android natif, les frameworks Web du monde Java et ceux de Kotlin lui-même, la cross compilation vers du JS, les librairies graphiques Java et bientôt le natif via LLVM (même si on peut faire du portable pour pas cher avec la JVM aujourd'hui)
Coté fonctionnel c'est plutôt pas mal non plus: Je passe sur les basiques mais rien que l'immutabilité que tu ne retrouves pas en Go est déjà un sacré filet de sécurité pour la qualité du code. Hors FP tu as aussi le null safety.
Quand aux coroutines/channel c'est cadeau: https://kotlinlang.org/docs/reference/coroutines-overview.html
Mais tu peux toujours rentrer dans la cour des grands avec le threading ou le multiprocessing, la programmation reactive, la programmation par acteurs puisque tu as la force de frappe de Java derrière.
Tu progresseras nettement plus avec un langage de ce niveau et tout ça sans rien sacrifier à la lisibilité et à l'expressivité.
En général, le Go n'est qu'un refuge pour les frustrés par python du temps où il ne gérait pas l'async, n'avait pas le typing et qui chouinent parce que faut configurer le packaging.
Maintenant on a Poetry.
Terminons par revenir sur Google qui nous a habitué à pas mal de revirements par le passé. Ceux qui ont misé sur GWT s'en mordent encore les doigts. Leur stratégie n'est pas clair quand à Dart, Go, Typescript avec Angular, ... et Kotlin sur Android
Jetbrains ne mise que sur un cheval donc nul doute qu'il va porter son bébé.
[^] # Re: Dart/Kotlin : Pourquoi pas Go ?
Posté par El Titi . En réponse au journal Finalement c’est simple !. Évalué à 5.
Le Mr plus haut ne nous a pas dit ce qu'il reprochait à Kotlin à part le fait que Big Brother n'en soit pas le géniteur.
On voit facilement ce que Go n'apporte pas au 22 Janvier 2020: Pas de traitement d'erreur digne de ce nom, un support du fonctionnel basique, même même pas de gestion de modules avec un dépôt officiel et même pas de généricité. Mis à part les goroutines, réimplémnentation un peu plus intégrée d'un concept de l'aube de l'informatique, avec une meilleure gestion des appels natifs, y'a pas grand chose sous le capot.
Si on veut vraiment des perfs (puisque c'est leur argument) autant oublier le ramasse miette et se lancer dans le Rust qui est à peine plus compliqué et énormément plus productif une fois qu'on a pigé les concepts notamment pour son approche fonctionnelle et son support des génériques.
Si on veut de la simplicité, restons en à Python qui gère l'asynchrone et le mutliprocessing suffisamment bien avec multiprocess en standard, gevent ou async/await pour les coroutines.
Ah oui il faut faire un "pip install", c'est pas neuneu friendly.
Quant à ce qu'il apporte tout y est coté Kotlin. Mais avec lui au moins tu t'ouvres un vaste champ d'applications avec un écosytème immense qui vient avec la JVM, le dev Android natif, les frameworks Web du monde Java et ceux de Kotlin lui-même, la cross compilation vers du JS, les librairies graphiques Java et bientôt le natif via LLVM (même si on peut faire du portable pour pas cher avec la JVM aujourd'hui)
Tu as un support plutôt pas mal des 2 paradigmes de programmation mainstream OOP et FP.
Pour l'objet tu n'est pas limité, la généricité, l'héritage d'implémentation, la composition, les interfaces les traits, tout y est: https://blog.kotlin-academy.com/inheritance-composition-delegation-and-traits-b11c64f11b27
Coté fonctionnel c'est plutôt pas mal non plus: Je passe sur les basiques mais rien que l'immutabilité que tu ne retrouves pas en Go est déjà un sacré filet de sécurité pour la qualité du code. Hors FP tu as aussi le null safety.
Quand aux coroutines/channel c'est cadeau:
https://kotlinlang.org/docs/reference/coroutines-overview.html
Mais tu peux toujours rentrer dans la cour des grands avec le threading ou le multiprocessing, la programmation reactive, la programmation par acteurs puisque tu as la force de frappe de Java derrière.
Tu progresseras nettement plus avec un langage de ce niveau et tout ça sans rien sacrifier à la lisibilité et à l'expressivité.
En général, le Go n'est qu'un refuge pour les frustrés par python du temps où il ne gérait pas l'async, n'avait pas le typing et qui chouinent parce que faut configurer le packaging.
Maintenant on a Poetry.
Terminons par revenir sur Google qui nous a habitué à pas mal de revirements par le passé. Ceux qui ont misé sur GWT s'en mordent encore les doigts. Leur stratégie n'est pas clair quand à Dart, Go, Typescript avec Angular, ... et Kotlin sur Android
Jetbrains ne mise que sur un cheval donc nul doute qu'il va porter son bébé.