Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    S

    Seth Ladd

    blog.sethladd.com · Personal blog · on HN since 2011

    Seth Ladd, a Google developer advocate, writes about the Dart language, its JavaScript compilation, and HTML5 games.

    Visit blogHN submissions
    Languages & CompilersWeb Development
    What HN says

    HN links it to explain tree shaking, Dart's progress toward 1.0, and Dart-to-JS code size reduction.

    Stats for nerds
    18HN people shared it
    12linked in comments
    115story points
    Feb 2016last shared
    2012people per year2016

    Top posts on HN

    1. 1
      I ported a JavaScript app to Dart
      1 person · 76 points · first shared 2014 · 80 comments on HN
    2. 2
      Why Dart Excites Me
      1 person · 9 points · first shared 2011 · 7 comments on HN
    3. 3
      Dart myths debunked
      1 person · 8 points · first shared 2012 · Discussion on HN
    4. 4
      Dart's Sweet Spot is Web Apps
      1 person · 5 points · first shared 2011 · Discussion on HN
    5. 5
      What Dart wants
      1 person · 4 points · first shared 2012 · 1 comments on HN
    6. 6
      14 HTML5 Game Developers to Follow
      1 person · 3 points · first shared 2011 · Discussion on HN
    7. 7
      Minification is not enough, you need tree shaking
      5 people · 2 points · first shared 2013 · Discussion on HN
    8. 8
      Comparing Dart, jQuery, CoffeeScript, CoffeeScript+jQuery, and JavaScript
      1 person · 2 points · first shared 2013 · Discussion on HN
    9. 9
      Seth Ladd: A Response to the CoffeeScript and Dart Article
      1 person · 2 points · first shared 2011 · Discussion on HN
    10. 10
      How to use Dart with Sencha Touch
      1 person · 2 points · first shared 2013 · Discussion on HN

    What HN people wrote when they linked it

    • dragonwriterAug 2014

      Reading your quote from the ECMA standard, "no implicit conversions are supported" may be wrong but at the same time not generally misleading. That is, that function errors on null values and returns false for anything that isn't identical to true, so while it does provide a conversion to boolean from any non-null value, anything that isn't exactly a boolean "true" (unless I misunderstand what "identical" does) is going to return false on conversion. This is consistent with other writings on booleans in Dart [1]. So it appears that Dart has implicit boolean conversions, but it converts everything that is not the single "true" value to false, so using an expression that never can evaluate exactly to boolean true in a conditional (unless you mean it to be a wordy way to create unreachable code) is never something you want to do.

      [1] http://blog.sethladd.com/2012/02/booleans-in-dart.html "The only value that is true is the boolean value true. [...] In a boolean context, everything that is not true is converted to false."

    • jrockwayJul 2013

      Dart is already very useful, so I disagree with that assertion. It's the Dart compiler that handles type-checking, not the runtime. If you write "String foo = 42; return foo + 8;" and compile without type checking, you generate code that will work fine. But if you turn on type-checking, you get the type error at compile-time.

      Furthermore, the compiler is responsible for resolving the dependencies your main program uses ("tree shaking" to remove stuff you don't actually use [1]), so there has to be a compiler even if your browser had a Dart VM built in.

      [1] http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html

      I use Dart because it allows me to organize and test my code in a way that is very inconvenient with Javascript. Any speed improvements or IDE support is incidental, I have not yet had any speed problems in Javascript and I don't use their IDE :) The type-checking, library system, and the language itself is wonderful, though.

    • michaelwwwMar 2013

      You don't say if you used the 'dart2js --minify' setting, but Closure Compiler should do well. The --minify flag leaves alot more room for additional minification. You say you used two modules. The result really depends on the modules. For example, the Dart/JS interop module adds about 140K un-minified. Tree shaking is always on, so the 140K is after stripping unused code. I initially jumped into Dart because I was interested in doing packaged apps that run locally, so the size over the wire didn't concern me as much. I recently converted an ActionScript app to Dart and the post-minify Dart was around the same size as the compiled .swf file (for comparison, same functionality)

      Seth Ladd has a couple of posts about Tree Shaking and Minification if you're interested
      http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html
      http://blog.sethladd.com/2013/03/i-shrunk-my-dart-to-js-code-by-11x-and.html

    • mwcampbellFeb 2016

      A large number of dependencies is only a problem in environments that aren't amenable to per-function static linking or tree-shaking. These include dynamically typed languages like Python, Ruby, and JavaScript (except when using the Google Closure Compiler in advanced mode), but also platforms like the JVM and .NET when reflection is allowed. Where static linking or tree-shaking is feasible, the run-time impact of bringing in a large library but only using a small part of it is no more than the impact of rewriting the small part you actually use.

      Edit: Dart is an interesting case. It has dynamic typing, but it's static enough that tree-shaking is feasible. Seth Ladd's blog post about why tree-shaking is necessary [1] makes the same point that I'm making here.

      [1]: http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html

    • gioeleJun 2014

      For those like me that do not know the term "tree shaking", it is «a technique to "shake" off unused code» [1].

      I suppose it is dead code removal done at link time. But what is "link time" in JavaScript?

      [1] http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html

    • mellingApr 2013

      I think the language is done. After listening to this FLOSS episode, I think they're just finishing off the libraries.

      http://blog.sethladd.com/2013/03/dart-on-floss-weekly-from-twit-network.html

      Sounds like 1.0 might be a Google I/O announcement.

    Related

    Dart Newsnews.dartlang.org76 people

    “We have decided not to integrate the Dart VM into Chrome”

    Dart News
    Company · last shared 2024
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Google Code Bloggooglecode.blogspot.com165 people

    Why should anyone ever use a Google API again?

    Google Code Blog
    Company · last shared 2022
    Dart Blogmedium.com/dartlang68 people

    Announcing Dart 2 Stable and the Dart Web Platform

    Dart Blog
    Company · last shared 2025
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    codeburst.iocodeburst.io174 people

    Google’s Flutter = React and Java Swing

    codeburst.io
    Publication · last shared 2023
    Bob Nystromjournal.stuffwithstuff.com392 people

    The Hardest Program I've Ever Written – How a code formatter works (2015)

    Bob Nystrom
    Personal · last shared 2026