Trying to make Markdown Editor by NgComponent Can I use Dart in Production? by @ntaoo (+naotohc)
Who? ● @ntaoo (Twitter) ● +naotohc (Google+) ● Developing new WebApp by AngularJS/CoffeeScript ● SPA and Pjax (html5Mode = true) ● 開発の遅れのだいたい30%はAngularJSのせい。 ● OfflineWebApp対応 -> 頓挫（まだ早すぎた）
Dart :) ● Optional typing, Dynamic language ● Class Based OOP with Functional Features ● Lazy Iterable ● Future and Stream ● Isolate ● dart:html, dart:io ● DartVM, dart2js, dart:js, Pub ● Much more features
Clean semantics and behavior #dartlang
Using web components today Polymer.dart (today) #dartlang
WebComponent Polyfills in Dart ● WebUI (deprecated) ● PolymerDart ● NgComponent in AngularDart (new)
PolymerDart ● Tracking PolymerJS ● PolymerJS’s spec is still in flux so also does PolymerDart
NgComponent in AngularDart ● is a Lightweight WebComponent Implementation. ● looks Independent of Polymer (Maybe?). ● can live with PolymerDart. http://blog.sethladd.com/2014/02/angular-and- polymer-data-binding.html ● would gradually merge into Polymer?
Markdown editor by NgComponent nvDart https://github.com/ntaoo/nv_dart ● 15 hours to study AngularDart ● 5 hours to implement nvDart ● Encapsulation ● Messaging between components
dart:js Interoperation between Dart and JS You can use JS libraries like Twitter Oauth, Markdown parser via dart:js.
dart2js (pub build) dart2js only supports modern browsers. IE10+ (IE9? is doubtful) Android browser?
You don’t probably need to use... ● jQuery -> Use dart:html. ● Underscore, requireJS, Jasmine, etc... -> Use Dart standard libraries. ● Frameworks like BackboneJS, EmberJS -> Use AngularDart and others.
But... ● UI libraries like jQueryUI, AngularUI -> Dart still lacks UI libraries. (There were UI libs on WebUI...) We need porting work.
O.K. can I use… in Production now? ● Dart : Still young but already stable ● AngularDart : Waiting for first stable release ● Supported Browsers and Compiled JS Size For my current project…(IMHO) CoffeeScript + AngularJS + JS UI libraries + Grunt tasks >> Dart + AngularDart(unstable) || PolymerDart(unstable) || WebUI(deprecated)
Dart in production #dartlang
"Dart offers a sane and consistent development experience for modern web applications." - Blossom #dartlang
Dart : Let’s give it a try ● In small project ● With modern structure ● Then make a contribution ● And join Dartisans community