Tombstone
Jovian Katana V1
Nov 2006 โ Apr 2007 ยท age 24โ25
What it was
A Windows Forms designer that compiled a drag-and-drop dialog document into an entire social-networking website. Jeff laid out controls on 500-pixel layers, attached data objects and HTML encoders, and pressed Compile. The compiler rendered text buttons to PNG in four states, cut nine-slice backgrounds into pieces, parsed every binding expression once and emitted it as JavaScript, parameterized PHP, sample SQL and row templates, topologically sorted the dependencies between controls, and shortened every id and image name to a letter or two. Out came a PHP endpoint, a JavaScript manager and hundreds of images, running a site with signup, profiles, a blog, a wall, a calendar, photo albums, draggable page modules and a business-orders section. For the demo, every visitor was hard-coded as user one. The last compile was in March 2007.
Wins, for the age
- At twenty-four, Jeff compiled one binding expression to four targets, with a dependency graph that ordered initialization and rejected cycles, three years before Knockout (2010) made declarative bindings popular.
- Minified the whole program, ids and assets alike, two years before Closure Compiler's advanced mode (2009), because dial-up was still real.
- Built a client-side write-behind cache that coalesced requests and batched writes, five years before Meteor and Firebase (2012).
- Compiled a forms document into a whole web application, arriving alongside Google Web Toolkit (2006). One young primate, one desktop compiler, one generated social network.
What it taught
- String-concatenated code generators become unmaintainable exactly when they start working.
- Security by construction: generate parameterization, never remember it. And never hard-code the demo user, because the demo user ships.
- Validate generated SQL before shipping it. A single missing comma reached the site because nothing checked.
- Dependency graphs in UIs exist because bindings must initialize in order, and the cycle check exists because Jeff made one.
- Copying files around is not version control; the tooling ambition outran it.
Genealogy
Ancestors: Jovian Suite: the layered visual editor and web-application compiler this version grew out of. Descendants: Career Brkz Rednova: the compiler instinct, carried into a startup's "WebOS". HUROX: the workshop that used this designer to build a live social network. HUROX Fork: the same designer, three months further on. Jove 3: the ground-up rewrite, with the dependency graph as its own language. Kira Project: a typed language compiling to PHP, generating its own RPC stubs.
Epitaph
Here lies Jovian Katana V1. Draw the dialogs, press Compile, get a social network with every id shortened to two letters. It served exactly one user, who was always number one.