3 ms·
I am not a language designer myself, but I think "avoid overwhelming" was an explicit idea behind initial design of Dart. Yes, this led to a language that some
by mraleph 8y ago
I am not a language designer myself, but I think "avoid overwhelming" was an explicit idea behind initial design of Dart. Yes, this led to a language that some might consider boring, but it also led to a language that a lot of people can easily pick up and use (with little surprise and reasonable amount of fun).
There are few things that I would like to have in Dart (ADT and pattern matching for example), but otherwise I actually think its a fun language to program in.
> And the worst part is what i feel was the first environment outside erlang to get real actor-like concurrency is now barely mentionning actors in its documentation.
Dart went through a lot of turmoil in the past few years, but now that this turmoil is over we hope to explore concurrency story again.
Dartino (which was a dialect of Dart targeting IOT devices) had really fun concurrency story centered around lean isolates, coroutines and fast message passing based on deeply immutable data and we think there might be something here that we could incorporate into Dart proper.
- markdog12 8y agoThanks for the excellent write up and your work on Dart. After the long hiatus, I'm excited to see the language proposals in https://github.com/dart-lang/language https://github.com/dart-lang/language, but I haven't seen anything in there regarding concurrency.
- mraleph 8y agoThere is the "static immutability" proposal[1] which is related to concurrency. However it is correct that there is no single issue that just says "Make Concurrency Awesome". I believe that we already have necessary building blocks (isolates), we just need to make concurrency via isolates efficient and ergonomic. However it is still very early, so I don't have much else to share. [1]: https://github.com/dart-lang/language/blob/master/working/0125-static-immutability/feature-specification.md https://github.com/dart-lang/language/blob/master/working/01...
- markdog12 8y agoAh, yes, I had read that previously. That's a big one and will be a game changer, including improving concurrency.
- rkangel 8y agoI also agree with a desire for ADT and pattern, and also some better handling of Null (see Kotlin). But I also agree that it's a very unsurprising language, in a good way.
- mraleph 8y agoNon-nullability is actually being actively worked on[1]. Currently language team is working on specifying the feature and figuring out the path towards it. [1] https://github.com/dart-lang/language/issues/110 https://github.com/dart-lang/language/issues/110
- rkangel 8y agoThat's great to hear, thanks for pointing it out.
- beatgammit 8y agoI might have to give Dart another look. The things that made me leave were: - abandoned Dart VM in chrome (maybe WebAssembly can help here?) - inconsistencies between browser and VM Dart (number sizes is a big one) - long compile times - difficulty going between Dart and JavaScript This was years ago (around the time Dartium was abandoned), so perhaps things have changed for the better. However, at this point, JavaScript has gotten better, so I'm not as interested in another compile-to-js language.