This was my first year of attending GoogleIO after attempting to for 3 years now. What I was most excited about was #dartlang and meeting the Dart team. After attending 3 of the 4 Dart sessions and some short conversations with the team, here are my biggest take aways that I think are worth sharing.
Google Is Behind Dart
Google is absolutely behind Dart and it’s very simple why: Javascript on V8 is reaching its limits. One of the best sessions was Web Languages and VMs: Fast Code is Always in Fashion. Here Kasper Lund and Lars Bak share their experience in writing VMs together for 12 years. They walk us through how they transformed the web world with the initial creation of V8: Treat the browser as a real VM, add optimization by attempting to guess and convert JS to real objects and garbage collection best practices of many past VMs. Next highlighting how it’s reaching it limits and the initial 100,000 lines of code is nearly half a million now which means improvements will only come slower, not faster.
Dart is the VM they thought they could. It’s ahh inspiring listening to Lars and Kasper discuss how they set out to make basically the best that VM experience could offer for the web. From the ground up they helped to invent Dart. The numbers have been clear for months now that Dart out performs all JS engines, but more recently even dart2js can outperform native JS in some circumstances. This is clear, statistical proof, Dart will outperform JS by many orders of magnitude. What can’t be argued is Google is about speed, it’s in their 10 things philosophies of the company: Fast is better than slow. I can’t remember the last time Google did not pull the trigger on a faster solution; Google Search, GMail, Android, Chrome, Blink, Google Fiber… I am waiting to see lobbyists for faster speed limits once the self driving car gets happy users =). Google is absolutely behind Dart, this is not GWT or Go, this is Dart.
Google Started Dart but the Community Owns it
I have been asked why Google doesn’t have their name all over Dart. Maybe they don’t want the branding so if it fails it can die quietly? The Dart team told me that it was the Dart teams decision to not brand this as a Google specific language. These guys absolutely believe this is the future of the web, not just Google, not just Chrome, the World Wide Web. They don’t want it to be Google’s alone, they want it to be everyone’s. Work together. No zero sum goal future. They pour a cup of the kool aid and offer you the pitcher. It’s hard not to yell “OOooo Yeah!”
The Next Service Call: OilPan
Chrome is the rocket car of the web, Dart is that codenamed engine replacing last year’s model V8 and the next step is pulling out the OilPan for an overhaul. In the VM session, garbage collection is discussed in pretty good detail. Let me add to their experience: GC can be the death of progress on large applications. In the last few years I have worked many support calls and month long endeavors trying to reduce garbage collection problems of large enterprise applications. V8 and Dart is no difference. Garbage Collection is a problem and needs overhauled. The good thing is these guys know what their doing and have a plan. They announced a new project OilPan that is the next big step after Dart 1.0 releases this summer. In short the plan is to reduce reference number based GC on the DOM and implement tracing GC like they did for JS and Dart. Basically they plan on fixing it.
In Summary
- Dart is the fastest future of the web
- Google is 110% behind it
- There are more than incredibly smart people implementing it
- The community is very interested while growing every day
- Did I say there are incredibly smart people implementing it?
I understand your concern and skepticism, but after this conference I have no more concerns, period.
Bonus Gems
From sessions and questions I discovered some other Dart gems that I found very interesting:
- Dart Editor vs IntelliJ: The 1.0 release has a goal of a free batteries included release to jump start everyones ability to use Dart from the beginning. Many tools and benefits of the Dart Editor have been, and continue to be, extracted out to be stand alone tools that can be called command line or from other tools like IntelliJ. The focus on the Dart Editor may decline after 1.0 and may let IntelliJ thrive to become the premier IDE like it has for Java and Android (hint hint).
- Flash Professional Exports to Dart: Fairly early on a Flash api was ported to Dart to transition flash devs to Dart easier. Adobe has piggy backed off of that and has added an export animation to Dart. Adobe’s business is tools for the web. Acknowledgment of Dart is a huge step for the language, a much bigger acknowledgement than many other languages from Adobe and is only a good thing for it’s future.
- Dart2JS is a Primary Goal: Dart2JS has always been a goal of Dart. The recent achievement of outperforming native JS in some scenarios shows that cross browser solutions are possible from day one. Like it is today on the web, the apps will work better in Chrome, but still great in other browsers.
- Chrome Integration: After the 1.0 release the Dart team will be focusing on integrating the Dart VM into chrome. Dartium is the chrome browser with the VM, so they have already gotten started but it was never a goal for the 1.0 release. It will be a primary goal soon. I think we have seen when these guys put their mind to something, it can happen quickly.