> Go is not approved, [...] All other uses of Go in Fuchsia for production software on the target device must be migrated to an approved language.
Probably makes sense, not what Go was designed for, but I really don't get big-G's choice of "one different language for each niche"...
I mean, ffs, Go and Dart are both garbage-collected and compiled, even their lists of pros and cons look similar. Couldn't they just blend their features into one language (like, eg., add generics + some syntactic sugar to Go, to make it more usable for app and GUI code too?) instead of fragmenting the mindspace even more? Why don't people see the advantage of "universal" languages? It's obvious that developer love them and they are empowered by them, hence the success of languages like Javascript/Typescript and Kotlin despite their obvious flaws and limitations!
Go has been a minimalist language from inception. It's not "let's try to make the best language, period", it's "let's explore what benefits we can gain from sticking to a limited subset of language designs that hasn't been seriously tried in decades".
Dart might be a bit of a kitchen sink language (what's it with Danes and operator overloading?), but you couldn't port over the minimalism of Go by addition, it would not be minimalism anymore.
Dart innovations like "collection if/for" syntax seem laughably trivial, but when you look at the examples for declarative UI it should become immediately clear that they reduce cognitive load a lot compared to the equivalent flatMaps or imperative state buildup. Those syntax goodies seem really nice in the scope Dart is made for, but I think that they would look seriously out of place in a more general purpose language.
Even after having publicly sung its praise a part of me still considers that feature outrageously bad taste. There could be a nicely orthogonal language feature instead, with universal applicability for good knows what, instead of this highly pragmatic superficial syntax hack! I think it's the part of me that loves Scala. (I do, but I'm also installing Flutter SDK while writing these lines)
Maybe it’s a syntax hack. But, man, sometimes you just need to get a thing done and... it works. When you see it, it makes sense and if it makes sense and works... I don’t really care how “pure” it is.
> Why don't people see the advantage of "universal" languages? It's obvious that developer love them and they are empowered by them, hence the success of languages like Javascript/Typescript and Kotlin despite their obvious flaws and limitations!
It's curious to argue that we should all be content with "universal" languages and stop developing new ones by citing TypeScript and Kotlin, two brand new languages created specifically to replace the already existing "universal" languages of JavaScript and Java.
I think that Flutter is helping a lot with the adoption of Dart. I learned Dart to work on a Flutter project and ended up being quite impressed with it (and Flutter for that matter). Jetbrains IDE support is quite good too.
It was rescued by the AdWords team, and later the Flutter team decided to use it instead of JavaScript, in the process they turned Dart into a strongly typed language with type inference (thus everyone from the dynamic camp left the design team), and nowadays the future of Flutter and Dart are tied together.
Flutter became enough of a nuisance that Android team has now come up with Jetpack Composer, to detriment of the existing Android UI toolkits, because they need to have their Java/Kotlin Flutter.
No one from Go community would touch such a "Frankenstein", it remains to be seen if Go 2.0 will really add generics or if it will be shot down like the improved error handling proposal.
Probably makes sense, not what Go was designed for, but I really don't get big-G's choice of "one different language for each niche"...
I mean, ffs, Go and Dart are both garbage-collected and compiled, even their lists of pros and cons look similar. Couldn't they just blend their features into one language (like, eg., add generics + some syntactic sugar to Go, to make it more usable for app and GUI code too?) instead of fragmenting the mindspace even more? Why don't people see the advantage of "universal" languages? It's obvious that developer love them and they are empowered by them, hence the success of languages like Javascript/Typescript and Kotlin despite their obvious flaws and limitations!