Dart 3.1 and Flutter 3.13 released – getting ready to leave HTML behind?

Dart 3.1 and Flutter 3.13 released – getting ready to leave HTML behind?

Dart 3.1 is out – the first stable release since 3.0 in May – along with Flutter 3.13, the latest version of Google’s cross-platform application framework. But whereas 3.0 was a major update, the team is mainly focused on future features – such as the ongoing effort to support Wasm (WebAssembly).

The changelog for 3.1 is short, though there are breaking changes. That is a contrast to 3.0, introduced at the Google I/O event in May, which added support for record types, pattern matching, sealed classes, and new class modifiers such as final, interface and base. According to Google product manager Michael Thomsen, Dart 3.0 also completed the language’s evolution to “100 percent sound null safety.”

Google technical writer Marya Belanger wrote, in the announcement for Dart 3.1, that the team has been mostly “spending our time on new roadmap items that we hope to see reach beta and stable over the coming releases,” focusing her post on taking advantage of new features in Dart 3.0 that support functional programming.

Dart is an unusual language in that it is closely tied to Google’s cross-platform application framework, Flutter, which supports mobile, desktop (Windows, macOS and Linux) and web platforms. The web capability is achieved by the ability to compile Dart to JavaScript. Coinciding with the Dart 3.1 release is Flutter 3.13 – the latest quarterly stable release. 

According to technical program manager Kevin Chisholm, Flutter 3.13 includes faster graphics on iOS thanks to improvements in Impeller – a rendering runtime that is gradually replacing Skia for mobile platforms. “On our Flutter/gallery transitions performance benchmark, average frame rasterization time is now around half of what it was with Skia,” said Chisholm. Impeller on Android remains short of production quality, but Chisholm hopes for a preview later this year. Impeller is also now in preview for macOS.

Other updates to Flutter include more platform adaptability and new capabilities for the Material Framework, for the Flutter GUI.

What then are the new features the Dart team is focused on? One will be support for Wasm which is in preview but with limited browser support because it depends on a feature called WasmGC which is not yet widely available.

Wasm is significant for Flutter and Dart because it enables a different approach to browser-based applications. The Flutter team said in a note on a popular request – for server-side rendering – that “we see Flutter as the first of a new breed of frameworks that target WebGL and Wasm and leave HTML behind.” Flutter’s web renderers include HTML and CanvasKit options, where CanvasKit paints the Flutter GUI with WebGL rather than use HTML components.

It is hard not to recall Adobe Flash (and Microsoft Silverlight) which had similar HTML-replacement aims. The death knell for Flash was when Apple’s then-CEO Steve Jobs posted his 2010 Thoughts on Flash stating that “Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards.” Wasm, unlike Flash or Silverlight, is an open standard.

Tet the notion of the text-based HTML, CSS and JavaScript being replaced by Wasm blobs has obvious downsides – such as “view source” no longer being a useful debugging tool.