(2014-05-31) Simmons Neo Frontier

Brent Simmons is thinking about re-booting Userland Frontier. (cf Language For Learning Programming) Why do I want to do this?... In the ’80s and ’90s, in the HyperCard era, the original mission of the Macintosh was applied to developer tools... making software development available to everybody.

The point can’t be to get everybody in on the fun, because it would never happen. A modern Frontier is still a nerd’s tool. But here’s my point: it is (or would be) more approachable than most of the tools we have now. There would be some people who get their start programming this way. There would be people building things they wouldn’t have built otherwise. Some people. Not most people. Not 1% of all Mac users. Some small number. (Learning Programming)

I have a political goal. The "web we lost" is my constant companion, my shadow friend sitting right next to me as I do everything I do.

My premise is that if I build a good, approachable, easy-to-learn GUI app that lets people experience the power of scripting the web, that will actually help.

Frontier was always a monolithic GUI app and runtime, with an http server baked-in. And there’s a good reason for this — that was part of what made it approachable. You didn’t have to install and configure a bunch of different pieces and do all the crazy things developers do. You just launch an app. Here’s the thing about the modern world: it could still be a single app and be modular, as long as the various pieces can be separated out and rebuilt and repurposed for other things.

The first step is obvious: the under-the-hood implementation of a hierarchical, Schema-Less database (DataStore)... It might sound odd at first, but the plan is to build on top of SQLite. (And FMDB.) The database schema, as it appears right now: uniqueID, parentID, name, value, valueType, mimeType... Changes to the database are reflected immediately (there’s no separate save). There’s an in-memory cache. The database is queried and updated in a background serial queue, but because of the cache much of the time you won’t have to wait for the database.

The step after that is probably a GUI app that browses the database and lets you make changes.

JavaScript? Seems like a modern choice, and I’ve been getting to know it. JavaScript is probably the closest to User Talk, and it means I don’t have to write and maintain a scripting language.

Jun19: Dave Winer's thoughts. I like the Mac, but I don't want to bet exclusively on it... I think the db-level code in Frontier is worth re-using. I didn't invent the allocation algorithm, it was in Donald Knuth's book on algorithms (TAOCP).


Edited:    |       |    Search Twitter for discussion

No twinpages!