My Dart wish list

06Jul21

Dart is the main language that The @ Company uses, so after a few months here are the things that I’m missing the most:

1. YAML output

Dart is pretty much build around YAML. Dependencies are defined in a pubspec.yaml, so of course there’s a YAML parser, that’s what yaml/yaml.dart does. But:

This library currently doesn’t support dumping to YAML. You should use json.encode from dart:convert instead.

I shouldn’t have to say this, but when I want YAML, it’s not good enough to have the subset of YAML that’s JSON (and yes, I’m aware of the json2yaml and the fhir_yaml fork – neither of them are the real deal). What’s needed here is a proper YAML 1.2 dumper with round tripping, like ruamel.yaml in the Python world, though even a 1.1 dumper like PyYAML would be better than nothing.

One of the consequences of this is that Dart can’t manipulate its own pubspec files :/

As it’s Wimbledon time as I write this…

2. Stable release notifications

I’d like to know each time there’s a patch release on the stable channel, which seems like the sort of thing there would be an RSS/ATOM feed for in the good old days.

I can get major and minor releases from the Dart Announcements group, and I can get the flurry of every single dev release with the stable patches buried in there somewhere from SDK releases on GitHub. But I’ve yet to find the happy medium of something that will just keep me up to date on the Stable channel. This of course means that I can’t automate stuff to use new stable releases.

3. Restrict TLS to a minimum version

Transport Layer Security (TLS) is what Secure Socket Layer (SSL) became when it grew up, and it’s kept on growing. TLS 1.3 is the latest version, and TLS 1.2 is still alive and well.

TLS 1.0 and 1.1 were deprecated last year by RFC 8996, and Google was very much part of that plan, but work in the browser space hasn’t filtered through. This is a bad thing, as clients can force servers implemented in Dart onto less secure old versions.

This will hopefully be the first on my wish list to be fixed, as just a few days ago the SDK issue #37173 (opened 6 Jun 2019) ‘SecurityContext with minimal protocol version‘ was bumped to P1, and had the label customer-google3 attached.

I’ll keep this updated

As the items above (hopefully) get resolved, I’ll drop them down here and add stuff that’s either less important, or that I haven’t encountered yet.

Meanwhile… WASM Modules

Dart getting support for Web Assembly (WASM) with dart-lang/wasm is super cool, and opens the door to lots of potential in the future. I’m just left wondering why WASM was more important than say YAML output? The cynic in me suspects that the incentives within Google are aligned such that new and shiny trumps mundane but useful when it comes to promotions etc.

Now… if only there was a good WASM module for dumping YAML… lots of parsers, but…



No Responses Yet to “My Dart wish list”

  1. Leave a Comment

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.