[General] State of the Kernel

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[General] State of the Kernel

Dan Ingalls-3
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.

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@all

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.

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.

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@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.

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@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

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