[webkit-dev] A Javascript Programming Environment for Safari 4

David Goehrig dave at nexttolast.com
Wed Jun 10 19:22:54 PDT 2009

Hello Webkitties,
Let me say, congratulations on getting so close to having real HTML5
support.  While there are still some rough edges, Webkit has been making
some huge strides towards making the web a nice place to program.  In the
spirit of showing off what can be done with the right tools, I've released a
bit of code that currently only runs under Safari 4.  It is a live object
programming environment inspired by Randal Smith and David Ungar's
paper "Programming as an Experience: The Inspiration for Self".  Like the
Self environment, I've built a slot based object editing system, just with a
bit more drag & drop support, HTML5 canvas integration, and a "classy
object" traits style programming model.
 If you'd like to see what is possible in Safari 4 in about 3 days:


The full source is available under the GPL3 license from github.com:

git clone git://github.com/cthulhuology/Phos.git

There's a set of tutorials available on the webapp, as well as, a series of
video tutorials on youtube.  You can find the lot of them:


I'm going to add collaborative object editing support to the environment
this weekend, and should have offline and remote object storage done around
the same time.

Great work for making this sort of app possible,

David J. Goehrig


For those who are curious, the code base is small, ~588 Lines of code in 172
or so functions.  Between 100-200 lines of code are there just to work
around issues with Javascript or API wonkiness.  The meat of the application
is ~200 lines of code in 41 functions that provides support for Text,
Graphics, Video, and Sound widgets.  The base 385 lines, consists of a
multipurpose library that I've used on two javascript projects. (The other
is NewScript, a Postscript meets Javascript language with an Intel native
compiler implemented in 100 or so lines of javascript).

-=-=-=-=-=-=-=-=-=-=- http://blog.dloh.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090610/8018ee51/attachment.html>

More information about the webkit-dev mailing list