Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    D

    Dart Blog

    medium.com/dartlang · Company blog · on HN since 2017

    The Dart team's Medium blog announces Dart releases and explains language design choices such as sound types and nullable types.

    Visit blogHN submissions
    Languages & CompilersProgrammingMobile & Apple
    What HN says

    HN commenters cite it for Dart's sound type system, the end of open-source AngularDart maintenance, and release news tied to Flutter.

    Stats for nerds
    68HN people shared it
    76linked in comments
    1Kstory points
    Sep 2023last shared
    2017people per year2023

    Top posts on HN

    1. 1
      Announcing Dart 2 Stable and the Dart Web Platform
      2 people · 246 points · first shared 2018 · 253 comments on HN
    2. 2
      An update on Dart macros and data serialization
      1 person · 143 points · first shared 2025 · 120 comments on HN
    3. 3
      Why nullable types?
      3 people · 130 points · first shared 2020 · 115 comments on HN
    4. 4
      Dart nullability syntax decision: a?[b] or a?.[b]
      1 person · 65 points · first shared 2019 · 50 comments on HN
    5. 5
      Dart 3.4: WASM and Macros preview
      1 person · 60 points · first shared 2024 · 20 comments on HN
    6. 6
      Dart can now produce self-contained, native executables for macOS, Win and Linux
      6 people · 41 points · first shared 2019 · 9 comments on HN
    7. 7
      Making Dart a Better Language for UI
      7 people · 37 points · first shared 2019 · 4 comments on HN
    8. 8
      Dart: Sound Null Safety
      1 person · 33 points · first shared 2020 · 15 comments on HN
    9. 9
      Dart 3.3
      1 person · 31 points · first shared 2024 · 16 comments on HN
    10. 10
      Dart on LLVM
      6 people · 26 points · first shared 2017 · 1 comments on HN

    What HN people wrote when they linked it

    • isoosApr 2017

      The code seems generate to generate a very simple service worker that enables offline more for the web app: it puts the static assets in a cache that serves them if the network is down.

      While it is a great start, and nothing wrong with that, I encourage people to check the more advanced features of routing and caching, where you have much better control of what is happening in the service worker. I have found the best JS library for that is sw-toolbox:
      https://github.com/GoogleChrome/sw-toolbox

      Shameless plug: I have also developed a Dart library for progressive web apps: https://github.com/isoos/pwa

      One significant advantage of the library over the original solution is that you can have offline mode without sweating as much as 100-ish characters:
      https://medium.com/dartlang/making-a-dart-web-app-offline-capable-3-lines-of-code-e980010a7815

      (Scroll ~to the middle, super-simple to setup).

      Another advantage is that cache invalidation is really hard. Neither the linked quickstart, nor the sw-toolbox addresses this, but there should be a way to control your cache updates, invalidations, and making sure you don't leave it in a broken state. Also, these should make sure that you don't pollute the user's browser too much.

      My pwa package does cover a lot of these edge-cases, and I'm happy to answer questions wrt/ pwa caching if there are any.

      (Next up: messaging solution between service workers, web workers, isolates...)

    • brabelMay 2022

      Flutter 3 comes with an upgrade to Dart 2.17 [1], which has quite a few improvements as well... including state on enums.

      While that's great, I was hoping it would be like in Rust, where each enum variant can declare its own state components, but unfortunately it seems to be more like Java: same state for all variants.

      Well, at least there's quite a few other small but useful improvements... and they showed how they really listen to the community by implementing the new syntax for passing on constructor parameters to a super-class... and by improving the docs of the 200 most popular packages with lots of examples, as requested by the people.

      I like how they're listening to the community as well to implement meta-programming (like macros) [2] to solve the main pain point, currently, in Dart, which is how verbose it is to generate code for things like serialization and data types.

      Once they get that, Dart will be a really good language to work on (it's already quite ok IMO, despite most people, usually those who don't actually use it much, hating on it).

      [1] https://medium.com/dartlang/dart-2-17-b216bfc80c5d

      [2] https://github.com/dart-lang/language/issues/1482

    • lasagnaphilFeb 2020

      Dart actually observed this exact thing and added if expressions inside the language; more exactly, "if" works as an expression if it is inside of an initialization of a collection. It might seem a bit less elegant that the semantics of such an important token changes with context, but I think it solves this particular problem pretty well.

      Dart also has spread operators and for-expressions to make writing "UI with code" much easier. It's fresh to see how language design choices are being made more by pragmatic ones (for Dart it's the fact that it's primarily being used for Flutter to make UIs) instead of ideological ones (One might claim that "if" should be a pure expression following the tradition from functional languages like ML, but that also has its own set of problems in a language designer's perspective)

      https://medium.com/dartlang/making-dart-a-better-language-for-ui-f1ccaf9f546c

    • hajileMay 2018

      Runtime size depends on a few things. The biggest is JIT vs native. If you're willing to dedicate the time to making (or interfacing with) a completely native compiler, then the runtime penalty isn't that large. In contrast, any halfway decent JIT is going to be several MB of code (and unlike an image, has to be parsed and executed -- potentially on slow phones).

      In both cases, the GC issue is non-trivial. LLVM has finally started to make performant GCs possible. Wasm (to my knowledge) doesn't have similar capabilities and guarantees (I suspect the are actually impossible with untrusted GC code). The only viable solution IMO is the addition of GC primitives and hope that your particular language maps well on that specific browser's GC.

      https://medium.com/dartlang/dart-on-llvm-b82e83f99a70

    • vsmenonDec 2022

      Regarding AngularDart, see:

      https://medium.com/dartlang/angulardart-flutter-and-the-web-spring-update-f7f5b8b10001

      TL;DR - It's still heavily used inside of Google, but the team decided to stop maintaining the open source version of it. It was a fair bit of work to do both - different build rules, different tests / test infra, different priorities. Effectively, AngularDart has been forked. There is an internal-only version that is actively developed, and there is an external community project.

      Regarding Flutter on the Web, there is a lot of active work, but I'm not the best to speak to all of it. On the Dart side, it's one of the major reasons we're investing in things like compilation to Wasm.

    • munificentSep 2023

      We recently added pattern matching to Dart [1], so I'm always keen to see how it compares to similar features in other languages. In case it's interesting, here's that Ruby example ported to Dart:

      print(switch (
      {'name': 'John', 'friends': [
      {'name': 'Jane'},
      {'name': 'Rajesh'}]})
      {

      {'friends': [
      {'name': var firstFriend}, ...]} => "matched: $firstFriend",
      _ => "not matched"
      });

      Pretty similar! The main differences are that Dart doesn't have symbols, so the keys are string literals instead. Also, variable bindings in patterns are explicit (using "var") here to disambiguate them from named constant patterns.

      [1]: https://medium.com/dartlang/announcing-dart-3-53f065a10635

    Related

    Dart Newsnews.dartlang.org76 people

    “We have decided not to integrate the Dart VM into Chrome”

    Dart News
    Company · last shared 2024
    Flutter Blogmedium.com/flutter-io33 people

    Announcing Flutter Release Preview 1

    Flutter Blog
    Company · last shared 2019
    Graham Jenkinsdarkcoding.net44 people

    Facebook’s code quality problem (2015)

    Graham Jenkins
    Personal · last shared 2025
    Go Blogblog.golang.org529 people

    Go 2, here we come

    Go Blog
    Company · last shared 2026
    Google Code Bloggooglecode.blogspot.com165 people

    Why should anyone ever use a Google API again?

    Google Code Blog
    Company · last shared 2022
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    blogs.perl.orgblogs.perl.org213 people

    Is Perl 6 Being Renamed?

    blogs.perl.org
    Publication · last shared 2026