This Week in Dart - Issue 19

Hello fellow Dartisans! Welcome to the nineteenth issue of This Week in Dart! This Week in Dart's aim is to be a useful collection of changes and news from across the Dart ecosystem and its surrounding community.

To contribute to this and future issues, feel free to contribute on GitHub or suggest content for next week on GitHub discussions.

To discuss this week's issue, feel free to join us on the Unofficial Dart Community Discord in the #this-week-in-dart channel.

Announcements

Dart 3

Dart 3 is scheduled for launch around mid 2023! The primary change is sound null safety will be required. There will also likely be some new features such as patterns and records, alongside some breaking changes.

To learn more about the path to Dart 3 as well as its planned features and breaking changes, checkout The road to Dart 3: A fully sound, null safe language.

Strict analyzer options

The Dart analyzer has long had support for a few "strong mode" options, including --no-implicit-dynamic which reports an error if type inference chooses dynamic and no-implicit-casts which reports an error when a cast is made implicitly. These modes have been deprecated and are expected to be removed in Dart 3.

If you'd like these and other strict checks in your projects, you should migrate to the newer strict modes the analyzer supports. To learn more about their functionality and how to enable them, see Enabling additional type checks on dart.dev.

Community updates

Official

News stories

Discussions

Learning materials

Project announcements

Project releases

Project updates

Dart SDK updates

38 unique authors have contributed 121 commits to the Dart SDK over the past two weeks.

The following are some handpicked, interesting changes:

Keep in mind, none of these changes are guaranteed to eventually land in a stable release.

Language updates and discussion

The last week saw continued work on records and patterns in the SDK and its various tooling and compilers.

Give records a shot with a dev build of the SDK and by enabling the records experiment. To learn how to enable experiments, see Using experiment flags with command-line tools and Using experiment flags with the Dart analyzer.

In other news, what was previously known as view classes, has been renamed to inline classes along with some other changes.

Inline classes can provide a replacement of the members available on instances of existing types, where the available members are determined by the static type. These can act as "zero-cost abstractions", not requiring a wrapper object.

To learn more about or comment on inline classes, see the Inline classes feature specification PR.

To learn more about and contribute to discussion around other potential changes to the Dart language, visit the Dart language repository.

Package of the week

The package of the week is package:isolate_agents!

package:isolate_agents is a package intended to make long-living isolates easier to work with.

The package introduces an Agent class, implementing the actor model for Dart, enabling easier concurrent processing with a built-in mechanism for communication.

To learn more about the package's background and functionality, check out the blog post isolate_agents: Easy Isolates for Flutter. For general information about concurrency, see Concurrency in Dart.

The package has not yet had a stable release and is looking for feedback on the design and implementation.

Dart's package ecosystem is growing fast, and we want to help foster that growth. If you know of any great open source projects, let us know by suggesting a package on GitHub discussions.

Quotes and notes

Share quotes and comments you see and hear about Dart on our quotes discussion board for future inclusion!

After mid-2023: Taylor Swift Dart

—@reNotANumber on Twitter

Really exited to see where Dart is going as CLI and Backend Language

—@jxstxn_____ on Twitter

Upcoming events

Check the Flutter Meetup Network and the Dart Language tag on Meetup to find an event near you or online and connect with other Dart developers!

Let us know about future events on the events discussion board to include here!

Dart jobs

If you know of any jobs which use or are related to Dart, let us know in the Job postings for Dart discussion board, and we will be happy to include them here!