A Better Way To Write Code

Video is ready, Click Here to View ×


If you’ve ever gotten frustrated trying to figure out why your code doesn’t work, or how someone else’s code works, you are not alone. This is for you.

EVENT: Open Vis 2017 Conf

SPEAKER: Mike Bostock

ATTRIBUTION: The original content of this video was published under the Creative Commons Attribution license (reuse allowed). Link:

13 comments

  • Declarative programming (he calls it "reactive") is a very powerful and effective way to create flexible, dynamic and animated user interfaces. Been using it for years in QML (after 10+ years wrangling user interfaces in C++ and Win32). It especially looks impressive in small examples. However, this talk implies that any and all bindings will always magically update themselves in the correct order, without conflict. That is unfortunately not how it actually works in the real world, as under the hood there HAS to be some kind of order in which values are updated, propagated and evaluated. When the application grows complex enough something will break, and debugging why exactly that thing you so simply declared does not do what its supposed to do, becomes a nightmare. Debugging a well written imperative program is a thousand times easier, because all the data, states and call stacks are available to you instead of hidden behind a declarative framework, where you have no idea and don't care about a "when" something updates (of course that's the whole point of the thing).
    Still it's a far superior approach to programming user interfaces than an imperative approach, in my experience anyway.
    This talk made me consider giving d3 another try for some upcoming visualization work. Thanks!

  • "Copy code down" — wow. That's what finally took my ex-boss out of business. And rightfully so.

  • This might work for some things, like UI design (which we already in some cases). But for the majority of non-trivial programming tasks, this style of development simply won't work or will cause "spaghetti' code. And this actively works against some of the best-designed principals such planning, test driven development, and stubbing.

  • че-то лень смотреть

  • This does look great, the same way Jupyter notebooks are great. But how is this any different? It just looks like a big exercise of reinventing the wheel.

  • WHAT. this is creepy. like 10 hours ago i was looking for some books on google about writing better code and cleaner code. and then some hours later this video comes out and it is in my recommendation? wow….

  • Really interesting, I'll apply in my startup!

  • Great insight: "Visualization is a means to an end. A means to insight. A way to think, to understand, to discover, and to communicate something about the world."

  • Love the "Ghost in the Shell" reference.

    At first, I thought it was The Animatrix…

Leave a Reply

Your email address will not be published. Required fields are marked *