[General] State of the Kernel

Dan Ingalls Daniel.Ingalls at sun.com
Sat Nov 22 07:17:46 CET 2008


Folks -

There are some very creative people in this community, and yet 
everyone seems to be just lurking.  So I thought I would present a 
little fireside chat to get things going.


The Lively Kernel
We've found the name "Lively Kernel" to be confusing to a number of 
people (nearly equal to the number who hear it ;-).  See, "kernel" to 
me means any seminal bundle of functionality adequate for 
implementing cool stuff.  It's like, well, a kernel of corn, from 
which you can make a whole corn stalk (and more corn to boot).  But 
there are a lot of people out there -- you know, the ones who like C 
syntax -- who say "I don't get it;  this isn't like the Unix kernel, 
is it?"

So we've taken to just calling it "Lively" recently.  For one thing, 
it's shorter;  half the syllables.  For another, it emphasizes the 
part that keeps us interested -- it is, by gosh, a lively piece of 
software, and that is our passion:  to deliver some of the wonderful 
flexibility of our silicon engines through to end users, especially 
kids, in a manner that inspires them to explore and invent our future.

Lively
There's more about the name "Lively" too, and here I have to credit 
Krzysztof with a number of the observations.  In the process of 
implementing LK on top of SVG, and Java2D, and the JavaFX scene 
graph, we've learned something.  Just as JavaScript has some 
shortcomings from being raised as a scripting language (and we can 
get into that sometime), these graphics systems have a number of 
shortcomings because they were raised as rendering systems.  "Duh, 
what else?" you ask.

I'll tell you:  Active computing environments.  There's something 
horribly absent in so much of the computer science and computer 
technology communities.  It is the basic, incredibly simple, point of 
view that computers *are* mathematics brought to life.  They are 
dazzling, radical, explosive engines, and about all we do is yoke 
them and use them to pull wagons.

Passive Rendering
So what we discovered early on in this project, is that almost none 
of these systems make it easy to get the font metrics needed for 
laying out text.  Why?  Well usually the text was being laid out in 
some other system -- a text editor, or a web page design program, and 
everything was already composed when it got to the browser.

Active Objects
But where we are coming from is that text, like everything else in 
the system is *alive*, there on the screen.  If you tweak it it will 
respond.  And for that, of course you need the font metrics right 
then and there.  Of course we have figured ways around this for each 
implementation, but the fact that we have had to tells you taht we 
are having to drag ourselves out of the dark ages again.  We had all 
this stuff working fine and simply over three decades ago in 
Smalltalk and other similar dynamic computing environments.

Active Architecture
The passive stagnation goes deeper, too.  For instance, if you look 
at the node structure of SVG and some other similar systems, you find 
a distinction between primitive nodes and more general nodes that 
admit of easy change.  There is a real theory of active computing 
that says:  You can cheat for efficiency, but don't let yourself get 
caught.  Thus in Smalltalk small integers are hard coded, but it is 
all handled seamlessly so you can still send messages to them, you 
can multiply them until they become extended precision, but the 
programs that work with them never have to know the difference. 
Similarly, you want to be able edit primitive shapes like ellipses, 
but how are you going to out handles on them if they can't have 
aubparts.  This is what an architecture like Morphic provides.  It 
gives even the simplest shapes the ability to be manipulated as 
full-fledged components in the architecture, and it retains all the 
malleability and scriptability on screen in the browser where most 
other software is passive or, even where active, not at all 
open-ended.

So the passion behind this Lively thing is to keep things active and 
open-ended in every way we can.  It may be slow right now;  it may 
seem primitive;  but static it ain't.


What's new
I said in my test message that good things are happening.

Fabrik
Jens Lincke, who was an intern with us for a couple of months in the 
summer (on loan from the Hasso-Plattner Institute in Potsdam), built 
a Fabrik-like system in LK.  It doesn't quite have Fabrik's clean 
dataflow model and the timeless iterators, but it is a fun 
environment for building UI-intensive applications, and much more 
could be done with it.  Robert Krahn, also from HPI, was also a 
contributor to this project.

Wiki
Robert is still working with us, and his summer project was to build 
a client-side Wiki of active objects.  He did this by hooking LK's 
page saving logic via WebDAV protocol to an SVN repository.  This 
allows one to keep saving new versions of a world, but with the 
ability to revert to earlier versions at any time.

We are planning to build our web site in that system in the coming 
month, a project we hope will be fun for all and instructive too.

Gradients, styles and other appearance tweaks
You'll get to see this when we push our next release (qv).

Refactoring of shape / Multiple implementations
Krzysztof has done lots of work refactoring the relationship between 
our Morphic architecture and that of SVG and other implementations. 
Around the time of the release, we should have more to say about some 
of the other implementations we have running.


What's next
Yes!  A new release is forthcoming.  We hope to have it out around 
December 10th, with documentation evolving through that month as we 
expand our web site.

A web site in our own wiki
We plan to get serious about Robert's wiki and actually build our web 
site using it.

Hosting
We are hoping to enable anyone with an account on this email system 
to be able to save Lively content in a modest repository here at Sun, 
and to have interesting projects promoted to a shared archive.  We 
will learn about the scalability of this project before long.  If 
anyone out there has a good idea about how to do this if 100,000 
people get interested, I'd like to know.

A fun PR hack that may or may not happen
I can't tell you about this yet but, if it happens, you'll know 
around December 10th (I hope earlier).

A real IDE
Robert has been working hard to improve the IDE that i built last 
spring in LK.  We will write about it in January and, hopefully, get 
some of you interested in making it a real web programmer's power 
tool.


That's it for now.  I'm curious to hear people's reactions to all of 
this, and also to find out what people are doing with the Lively 
Kernel, and where they would like to see it go.

	- Dan, as scribe, for the LK team
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://livelykernel.sunlabs.com/pipermail/general/attachments/20081121/e78b4b43/attachment.html 




More information about the lively-kernel mailing list