4 ms·
It's a good language though, and if you have experience with C#/Swift/Kotlin/Java etc...you'll be productive from day 1...there's not really much to learn, I wo
by marcobellinaso 8y ago
It's a good language though, and if you have experience with C#/Swift/Kotlin/Java etc...you'll be productive from day 1...there's not really much to learn, I wouldn't call it a problem.
- brianpgordon 8y agoDid you just say that Dart is a good language? You're aware of the memes about Dart's type system being completely broken by design right? https://www.dartlang.org/faq#q-why-are-generics-covariant https://www.dartlang.org/faq#q-why-are-generics-covariant Of course this is from the company that brought us interface{} and people seem to be OK with that...
- skybrian 8y agoFlaws in the type system just aren't that important to most people. Consider the popularity of Typescript, which is unsound.
- kiriakasis 8y agoI gather that you would prefer invariant generics. I know a bit about type systems but very little about subtyping so I would really enjoy some information :) Why are covariant generics bad? (also just a link is fine)
- brianpgordon 8y agoInvariant generics would at least let you rely on the type system doing its job correctly. But even better would be to annotate each type parameter as covariant, contravariant, or invariant - this is what Scala and C# and probably a bunch of other languages do. As an example, here's approximately how the Function trait is defined in Scala. The square brackets indicate type parameters (like angle brackets in Java), the - indicates covariance, and the + indicates contravariance. trait Function1[-T, +R] { def apply(arg1: T): R }
- cwyers 8y agoMy concern about Dart wouldn't so much be language quality, it would be the ecosystem. I know if I go out there and do a project in JavaScript or C# (so RN/Xamarin) there's piles of libraries out there. There's documentation. There's Stack Overflow answers and tutorials.