HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
dart-lang
language
TeX2018–2025
dart-lang / language

language

Design of the Dart language

32Distinct people
64Mentions
0Explicit recommenders
2.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Design of the Dart language

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:04:58 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year64 dated mentions

Observed mentions: 2018-11-15 23:12:25 UTC to 2025-07-19 11:20:43 UTC.

0510152018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 14 mentions; 4 submissions, 10 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC909
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC707
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC13112
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC1019
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC14410
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC514

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Dart language evolution This repository is the home for the design and evolution of the Dart programming language. While the nature of language evolution is somewhat unstructured, we follow a defined process to design and ship language changes. The language funnel shows the features that are being actively worked on. Dart language team As of February 2026, the Dart language team consists of: Leaf Petersen (@leafpetersen) Lasse R.H. Nielsen (@lrhn) Bob Nystrom (@munificent) Erik Ernst (@eernstg) Nate Bosch (@natebosch) Jake MacDonald (@jakemac53) Paul Berry (@stereotype441) Kallen Tu (@kallentu) David Morgan (@davidmorgan) Michael Thomsen (@mit-mit) is the product manager for Dart. Erik Ernst also maintains the official language specification. Contributing We discuss language problems and potential features using the issue tracker on this repo. We welcome your participation! Please keep in mind: If you want to show support for a proposed change, a 👍 reaction is more helpful than a comment because it's easier for us to aggregate demand that way. Comments that provide additional context are still useful, though. Before filing a new issue describing a problem or language change, see if there is already an existing issue that's close to yours. Duplicate or near-duplicates tend to divide attention and make both of them less visible. When discussing a language change, motivating examples from real world code are very helpful for the team and others following along to see how the change would be helpful in a concrete context. While other languages often have excellent beloved features, those features don't always translate well to Dart (and vice versa). When proposing that we borrow some feature from another language, try to articulate why you think that feature would be right for Dart in particular. We want Dart to be the best Dart, not the second-best Rust/Haskell/TypeScript/etc. License and patents See LICENSE and PATENTS.
Read the full README on GitHub

What Hacker News says

13 sources
Ah I see, so Google doesn't use the open source version at all. I thought it was like Flutter or Angular where the OSS version was used but it's different in this case. Just had another question, I actually just filed a feature request for Dart (based on reading this thread about Option and Result types) about whether Dart has a Result type [0]. Looks like it does in Flutter's async module, but I wasn't sure why that wasn't also brought to the rest of the language. And for WASM, I thought garbage collection for WASM wasn't stabilized yet, will Dart have to wait until then? What benefits does WASM provide for Flutter that's not already covered by how it does web support anyway, ie drawing inside a canvas? [0] https://github.com/dart-lang/language/issues/2697
In The road to Dart 3: A fully sound, null safe language
Off the top of my head, no access modifiers (so private variables, for example, are prefixed with `_`, by convention, not enforced by the compiler), no pattern matching (and obviously no exhaustive matching), no record types, no sum types, no json (de)serialization (requires 3rd party libary code gen, wow), mutability everywhere, everything is a statement (i.e. no implicit `return`, AKA everything is an expression), required semi-colons (which they'd like to get rid of but can't due to questionable design decisions made long ago -- for the gory details see here[1]). If you like Java 8 and earlier you'll probably feel at home with Dart. Obviously I'm biased, but I find Dart to be one of the most unpleasant languages I've had the misfortune of being exposed to; this despite Flutter and its instantaneous hot code reloading being quite amazin
Read the rest
g -- a bizarre mix of promise and despair. [1] https://github.com/dart-lang/language/blob/master/resources/...
In Show HN: Programming Google Flutter with Clojure
Good news. It’s about to land. One nice thing about Dart is that they are extremely transparent in how they design the language. You can check out the entire repo here for an example of what I mean but if we are talking about these specific features this is a good place to start Here is the intro: https://github.com/dart-lang/language/blob/master/accepted/f... Here is the spec of what they are currently implementing: https://github.com/dart-lang/language/blob/master/accepted/f... I think they both serve as a really good example of the kind of thoughtful approaches the language team are known for which coming from some different language communities previously I wasn’t accustomed to.
In Why doesn't flutter.dev use flutter as their front end?
> Also thanks for adding sum types, and pattern matching, is there anyway you could get the dart team on board? I'm driving the design of pattern matching for Dart. The entire language team is on board with them and we have a design that's pretty far along. It's really hard to integrate pattern matching into a language that wasn't originally designed for it, so it's taken a while to settle on a syntax that makes sense, but I think we're getting close. If you'd like to be involved, there is a category on the issue tracker for design discussions related to patterns and records: https://github.com/dart-lang/language/issues?q=is%3Aissue+is...
In Carbon Language: An experimental successor to C++
Thought this link might actually be more helpful by the way if you're interested but Dart team does all of their language design in the open on Github which is pretty cool and also gives you a lot of context about how things end up the way they do. I also mentioned elsewhere in the thread how impressed I was just watching that repo in general for a year. They clearly give a shit on a such a deep level about building a solid long term language in a way that I was totally unfamiliar with say coming from a Ruby background previously. Here is the section on pattern matching specifically https://github.com/dart-lang/language/tree/master/working/05... and this is the design spec itself https://github.com/dart-lang/language/blob/master/working/05...
In Flutter 3
> 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. Yes, the enhanced enums we shipped in 2.17 are like Java enums. We are also working on support for pattern matching and algebraic datatype-style programming: https://github.com/dart-lang/language/blob/master/working/05... I say "style" here because object-oriented languages like Dart can already mostly model sum types using subclasses. What you need to get the rest of the way there is basically just: 1. Sealed types so that the compiler can check for exhaustiveness when you match over all of the subclasses. 2. A nice pattern matching syntax to let you discriminate between the subclasses and destructure them. 3. Ideally, a nice lightweight sy
Read the rest
ntax for defining a sum type family as a superclass and set of subclasses, though this is relatively less critical. We're hard at work on this, but pattern matching in general is a pretty large feature and retrofitting it into a language whose syntax wasn't initially designed around it is a challenge. I'm very excited about macros too. That's another large, difficult feature, but one that I hope will provide a lot of power to users and make the entire ecosystem more valuable over time.
In Flutter 3
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
Read the rest
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
In Flutter 3

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.