I was born a physicist, and started converting my basement into a personal Exploratorium as soon as I overcame my fear of the furnace. In my last year of college I discovered programming, and generally shifted toward computers while getting a Master’s degree in EE. Some of my vestigial fascination with physics can be found in my lamentably inactive blog: http://whatsup-di.blogspot.com I was fortunate to join Alan Kay at Xerox PARC, and spent the next couple of decades working out various schemes for message syntax, language interpretation and graphical display as we developed a series of Smalltalk implementations culminating in the self-supporting Squeak Smalltalk (http://ftp.squeak.org/docs/OOPSLA.Squeak.html). In those days, I could handle almost unlimited complexity, and our focus on education was a reminder of the need to keep things simple. These days I can only tolerate systems that are simple, so I no longer need to be reminded. It’s a different kind of strength ;-).
Dan Ingalls Dan.Ingalls@SAP.com
Our group in CDG works with Lively Web - a Squeak-like self-supporting development environment that we built in HTML and JavaScript. Lively is a vehicle for experimentation; you can do exploratory programming in it, save your applications as web pages, and they run in any browser. There’s lots of deeper leverage too, such as server-side programming, peer-to-peer communication, support for sound and video, pen and touch support, etc. Projects for 2015 (SAP's year of "Run Simple")… The Notebook, A world of simple applications with managed time My main goal for this year is to put together a compelling world of active objects for work and play, all in a framework where time is managed a bit like the Apple Time Machine. The world I have in mind consists of a number of simple components including… This may look like a “boil the ocean” project, but each part should be simple and mostly independent of the others. The research questions here include: What is a good UI for managing time? What is a good application architecture for managed time? How simple can a browser or database system be? What language features might make such applications simpler? What application architecture might make the overall system simpler? etc. Language and module collaboration with Alex/Yoshiki The various end-user components of the Notebook, each being as simple as possible, should serve as meaningful examples for trying out languages better than JavaScript, or OS architecture better than Lively. Design collaboration with the Center for Digital Media at University of British Columbia The overall set of functionality in the Notebook should also be a good base for our upcoming collaboration with the Center for Design Media at the UBC. Here the focus is on user-centered design which should include making Lively more attractive and more usable. Collaboration with SAP's Innovation Center The Notebook project overlaps considerably with various projects in the Innovation centers and we hope to join an ongoing dialog in which we share what we can learn from our simple world, while learning from what they share from their more complex world.
● Simple “workflows” or “platforms” that can be invoked like parts, such as: presentation, browser/navigator with visualization, sketching, programming. ● Time-managed components consisting of morphic views with model state stored in a time-stamped database. ● Build-your-own database allowing the construction of and extensions to simple personal databases. A first run at this using tagging as the key semantic component appears in http://lively-web.org/users/Dan/BYO.html ● A graph database of people, projects, scrum notes, etc. for viewing CDG or similar organizations, with specific added leverage from Stanbol and context enhancement from web-savvy agents. ● Fabrik-like pin connections for dataflow-like applications. Of particular interest here is synergy with a spreadsheet-like view of connections that allows for simple management of interstitial calculations. A proof-of-concept appears here: http://lively-web.org/users/Dan/Fabrik.html ● Build-you-own browser/navigator, featuring an architecture for facilitating widget-panel connections that could possibly extend into actual widget design. For example: http://lively-web.org/users/Dan/PanedWindowDemo.html ● Simple sketching environment for freehand drawings. The goal here is simplicity and ease of integration with the outer environment, including touch support and gesture recognition. ● Simple programming-by-example, using morphic actions as an onramp to programming, as suggested in Astrid’s screencast: https://www.dropbox.com/s/epf5xa0v2da2mp3/ProgrammingByExample.mov?dl=0 ● Everything is a part, meaning that the basic morphic worlds in which you program, give presentations, or sketch, are all parts. If we push on this a bit it may lead to a cleaner view of what is Lively underneath, and how can all the other “workflows” be made simple and more modular. ● Can it all be smaller and faster? It is hoped that some of these small experiments may suggest how much of Lively might be simpler, smaller, and faster.