Skip to main content

Posts

New site for Dart news and articles

For the latest Dart news, visit our new blog at  https://medium.com/dartlang .

Notes from the July 8 Dart language design meeting

The incomporable  Bob Nystrom  fills us in on the language design discussions taking place amongst Dart engineers. Here are his  notes from the July 8th language meeting : Here's my notes! JS interop and proxies Lars tried to make a little app using JS interop. He gets warnings from dart2js because JS interop returns a proxy. The only way to get rid of the warnings is to edit the interop package itself to make it return the dynamic type. Gilad says we don't currently have a solution for general purpose proxies, though we've discussed a couple. The biggest problem is checked mode. If it was just static warnings, we could do an annotation or something to turn off the warning. For general purpose proxies, "implements dynamic" may be the best thing: it is a black hole that implements anything. We will have to educate people: most of the time you want to implement some specific type and not turn them all off like this. One thing...

Introducing polymer.dart

Dart engineer John Messerly announces the launch of polymer.dart, a port of the  Polymer stack . The Web UI package will be maintained for some time, but will eventually be replaced by polymer.dart. Here is John's  original post introducing polymer.dart : Hello Dartisans, Since we started Web UI, we've had a goal to bring the latest web standards like Web Components and Model-Driven Views to Dart developers. There have been some great developments since we started: Web Components has progressed into a set of detailed specs ( Custom Elements , Shadow DOM , HTML Templates , HTML Imports ) with interest and implementation by multiple browser vendors. Model-Driven Views has new APIs ( Node.bind , TemplateElement.model ) that allow custom elements to participate in the binding system, as well as the ability to plug in custom syntax, such as the fancy_syntax package. dart:mirrors is now implemented in dart2js! Last but not least: the development of the Pol...

Release Notes for Dart's Beta Release

Today's release of the Dart SDK and Editor is the first beta release, and contains performance and productivity improvements across the platform. This latest release helps Dart developers automate code evolution, produce smaller JavaScript code and deploy Dart web apps. The major additions and changes to the platform include: dart2js Added support for dart:typed_data Improved type inferrer by using union types and keeping track of side effects Implemented sharing of code mixed into multiple classes More coverage for handling of generic type Performance improvements 20% faster on Richards, 10% faster on DeltaBlue, 8% faster on Tracer Significant progress on mirrors support (work in progress) Dart VM DeltaBlue: 40% faster than M4 Tracer: 33% faster than M4 Full SIMD acceleration Reduced initial snapshot size improves startup time for new isolates Improved stability of debugging experience Editor A new 20% faster Analyzer...

Notes from the June 10 Dart language design meeting

The incomporable  Bob Nystrom  fills us in on the language design discussions taking place amongst Dart engineers. Here are his  notes from the June 10th language meeting : Here's my notes from this week's (short)  meeting : Name collisions with dart: imports [A customer recently ran into an issue where a new type appeared in dart:html whose name collided with a name they were importing from elsewhere. This broke their app.] Gilad brought up this issue. Pete's suggestion is if there's a collision between a "dart:" import and another library, the other library wins. That way, we can add stuff to "dart:" libraries without breaking people. I explained some more details here. Lars asked if there are any negative consequences from that suggestion and when it needs to be fixed. Kasper suggested we start making it a warning  [instead of an error?]  now. Ivan asked how JS handles this. Kasper said DOM names are usually ...

Angular.js announces port for Dart

The Angular team recently announced a Dart port of the popular Angular.js framework. Large parts of Angular functionality — components like $compiler and $scope, basic directives like ngBind and ngRepeat — have already been ported over to Dart and can be used today.  Other c ritical Angular parts like Dependency Injection and Routes are being ported now.  Karma, the Angular test runner, already works with Dart. Angular team members Brad Green  and  Igor Minar  provide details in the video from the AngularJS meetup this week . The Dart-specific discussion begins at the 40 minute mark.

Notes From the June 4 Dart Language Design Meeting

The incomporable  Bob Nystrom  fills us in on the language design discussions taking place amongst Dart engineers. Here are his  notes from the June 4th language meeting : Here's my notes. As usual all mistakes are my own: are boxed doubles identical? There is a bug where doubles with the same value may return false for  identical()  because they have been boxed to different objects. Lars said it's been discussed. For doubles,  identical()  should return true based on value. We don't want the language spec to have to mention boxing so that the VM is free to optimize how it wants. Gilad asked if NaN is identical to NaN? Lars says yes. It's identical but not equal. Gilad will fix the spec. change uninitialized field error to warning? Uninitialized final fields are currently an error in the language. Kasper suggests making it a warning. It seems in line with other stuff in language. It's easy to associate some v...

Faster is Better: New Article on Numeric Computation in Dart

"Performance matters to everyone", says Dart engineer John McCutchan. His new article, " Numeric Computation ", tells you how to get "50-100% speed improvements" with just a few simple rules. John covers integers, doubles, boxing, typed lists, and more. He also covers various considerations for Dart code that is compiled to JavaScript. Boxing requires a memory allocation and a store. Unboxing requires a load. If you write code that works with numbers, and that's pretty much everyone, you should read this article . Please join us for discussion in our Dartisans community . Thanks for trying Dart!