78 karma · joined April 30, 2015
In your paper "A Personal Computer for Children of All Ages", where you introduce the concept of the DynaBook, you explicitly say that the paper should be read as a work of science fiction. I understand that you're a big fan of science fiction. Do you draw any inspiration from science fiction when inventing the future?
Thanks,
Kevin
Related: I've given a talk on "What Computer Scientists can Learn From Science Fiction":
https://docs.google.com/presentation/d/1CaieHjx9j24UFXq0GwmC...
One place where I would like to use this is for collision detection, like in this example: http://codepen.io/kgr/pen/GoeeQw
But I'm relying on objects with polymorphic intersects() methods to determine if they intersect with each other, and once I encode everything up as arrays, I lose the convenience and power of objects.
This video shows how we do it: https://www.youtube.com/watch?v=S4LbUv5FsGQ
This document gives some results (like a GMail client that is 100X smaller): https://docs.google.com/a/google.com/document/d/1Kuw6_sMCKE7...
https://docs.google.com/presentation/d/1Ipt0hu2PHDgL8HCxkZN2...
The first part of the slides is on using the apps and the second part has a bit about how we developed it (but without speaker notes, it may not make a lot of sense).
I lead the FOAM team at Google.
See: https://github.com/foam-framework/foam/blob/master/demos/pho...
Also, load the Empire.js presentation and then press the '+' button on the bottom right. This will load and run all 25 slides at once, at which point you'll have over 20k data-bindings, both one- and two-way, 7k objects, 6k of which are currently being animated.
See: http://foam-framework.github.io/foam/foam/index.html?model=f...
We are capable of handling this many data-bindings efficiently because we don't rely on a digest/diff cycle. Since we generate the JS prototypes from our models, we are able to install hooks into the generated property getters and setters so that we can receive update notifications.
Also notice that our GMail client can perform searches on the keystroke.
I lead the FOAM project at Google.
FOAM doesn't require a build step, which is why it can be run directly out of the Git repository, but that method isn't representative of production performance.
I lead the FOAM project at Google.
> a mature app written this way
I've added links a number links to FOAM apps for you at the bottom of http://foamdev.com.
We have a number of mature apps. QuickBug, which is a codesite issue tracker, is about two years old. MBug is a mobile version, is about a year old. The ChromeOS calculator was written last summer as a demo but went into production just recently. There's also a rough but working GMail client. The Chrome App Builder is also in production, but, unlike the other apps, isn't open-sourced. We also have a couple very large internal Google apps that I can't talk about.
> project timeline FOAM was started in 2011, and generated its first production code, in C++ and JS for Chrome, in early 2012.
> war stories
Here's one: https://docs.google.com/presentation/d/139TUw8tLtqRzFSHGoLTQ...
I have several others as well, but I would need to scrub them before making them public.