Over 24 years ago I learned about a Mac application called »Frontier«. This application taught me, that the Internet is actually a programmable environment.
I think originally it was created as an application development tool in 1992 for automating MacOS with a script language called UserTalk (before Apple came up with its own script language called AppleScript).
Frontier was a genius concept invented by Dave Winer, because it was not only a script language (called „UserTalk”). It also came with a object database and an editor to edit scripts as outlines (something some modern IDEs try to adopt to better organize source code!). The scripts were edited and stored as objects in the very same database. The database could contain other stuff like texts, outlines, binary data, simple values — all in a hierarchical structure. An object in the hierarchy would automatically be accessible in the script like a variable. It was all self-contained.
The hierarchy was fundamental: Everything was organized as collapsible and expandable outlines. The database, the scripts and some texts could be presented and edited in a text window in outline fashion. Outlining is a good way to break down things — and much of what we do in our heads is basically creating meaning by deciding what is inside or outside of a concept. We learned to think this way when we learned to think & understand (or use computers).
It even could interpret and execute AppleScript. But compared to Apples own AppleScript UserTalk was much faster in Frontier.
If Apple would have chosen to include Frontier in MacOS it would really have changed the Internet. AppleScript never really took off, because it was missing a good environment to develop and without a good object oriented persistent storage it always felt like just a macro language to automate some OS tasks.
End of Frontier?
In the 90ies there were other people working with Dave Winer on Frontier at a company called UserLand. Brent Simmons was one of them and he inessential.
UserLand was the company that continued to distribute Frontier (and some applications based on its scripting language). Dave Winer convinced UserLand to open source Frontier as Userland was marketing applications based on Frontier (Manila and Radio).
But there were only few people actually contributing to the Frontier base application. And while the operating systems evolve the original Frontier code does not compile on new OS releases. No one was maintaining it.
I was occupied with teaching and other projects, so I lost track of Frontier.
So what is the state of Frontier today?
The frontierkernel.org Community has not changed anything since 2007. There was effort to better talk with SQL databases. But this wiki has not been maintained and most of the pages are not accessible. There has been some discussions on the SourceForge site of the project though.
One of the tools I am using for years now is Tinderbox from Eastgate. I have used it for quite some time to write this weblog here (but swichted to WordPress + MarsEdit recently). Nevertheless I think Tinderbox is a helper in many ways – although there are always features that can be and will be missed.
With a retail price of $229 USD the tool is not cheap – but depending on the usage and potential productivity gain this can be a bargain.
If you are ready and able to write some export templates one can export almost anything to XML or HTML and turn that into layouted documents, presentations or websites.
The “magic” of Tinderbox is that it allows visual unstructured brainstorming and turn that into structured documents over time. But does not stop there like other mind mapping tools: by adding text notes, metadata, agents and actions that perform queries and manipulate data. So you can make your document smarter and add some automatism to it. There are endless ways to use Tinderbox and to make it fit to your brain.
You can’t expect from Tinderbox: online collaboration, custom import of any data, direct export to MS Office documents and the like, table editing within notes, a programmable enviroment (alhtough actions and agents can do a lot already), a Windows version (supposed to be in the making).
Google Wave is an integrated set of technologies (with protocols that allow semi-synchronous editing of outlines and their federation across several servers). With this approach Google Wave solves some difficult technical and infrastructural problems.
But it also generates some new problems that need to be solved to make Google Wave a success — otherwise I think users will not adopt the system (which in case of Google will set the seal on this project I suppose!).
1. Misty horizon
Google Wave is a frameworked solution for things people did not ask for and communication processes that no one is practicing yet (but no one has really “asked” for the mouse as input device either!). It is hard to see where Google Wave is going to be. This breeds creation, but it also challenges the non-developer. There will be best practices, but it will take a lot of time to identify use cases that people can learn “to wave” with.
So Google Wave challenges the imagination – and few people will be able to answer the “What is it all about?” question easily. The horizon is schrouded in mist.
Possible approach: A potential solution to this is to start with guided tours (a LOT of them) showing very common and powerful use cases for different scenarios. This is probably going to happen when Wave gets closer to the public beta.
2. Asynchronous patterns
We have learned to communicate in a turn taking fashion. It is polite to let someone speak until he has finished before starting to respond. It is not polite for everyone to speak up at any time. Waves allow people to reply or edit without obeying to the turn taking pattern. This can cause “stress” and also a lot of misunderstanding. People could reply to a text, that is going to change without them noticing that. Their reply suddenly become nonsense – the playback feature could become the only way to percieve a conversation properly. But playback is new – people have learned that the threaded view is a chronology – but in Google Wave it is not (or not necessarily).
Even with the playback feature, people need to become aware of the asychronicity in Google Wave – and learn how to recap conversations correctly.
Possible approach: Find a very good way to understand the chronology of a wave (e.g. making the playback as fundamental for navigation of a wave like scrolling)
3. Information (over)flow
While Google Wave may integrate many messaging systems – it also generates a lot of density. Means of communication that were apart from each other – using different URLs and applications for each – are now combined. The crucial part of that is to understand which option is suited for what purpose.
With Waves being set to “updated” by displaying them in bold typeface and sorting it to become a top item in the inbox, this also means that things are brought to my attention that should remain buried for a good reason. Google Wave users would have to learn how to manageund understand the “Inbox” and the “Active” areas properly, to be able to get the most out of it.
Possible approach: Allow users very powerful and fine grained control over the way they are informed about updates.
4. Scattered spaces and framgmented scopes
One of the things that really can make things too complex to be comprehended properly is that people can read & write to waves – but replies can extend or narrow the scope (e.g. who may read and reply to a new item. Who is reading? Who am I replying to? Is this part really private or not? Am I releasing a secret to the public accidentally?)
With a view from a different angle: What I can see within a wave may be different to what someone else is seeing. To make my communication appropriate to the situation I need to be able to “read” from a different standpoint. It is required to understand when communication could fail on the recieving end.
Whenever I want to understand the perspective of someone else – in need to be able to represent his/her view in my mind. The change of scope for parts of a wave within that wave can make this difficult.
Possible approach: Make any changes of the scope (e.g. recipient list) within a wave very visible and allow users to navigate them.
I played around with Yahoo Pipes a bit. I created a pipe that collects several RSS feeds of different blogs I write, comments I make on other blogs, new bookmarks and photos, etc. It’s basically a summary of (almost) everything I do in the blogsphere, and it was quite easy to do.
I always had a special interest in tools that help authors to think. Outliners were fine, but they very often lacked visual context. Some mind mapping tools were fine – but these often did not do a good job maintaining a coherent structure in the text or good typography.
Scrivener just seems to be a superb tool for people that collect material and thoughts to finally create a text from that.
Pathways is a little mapping tool for Wikipedia. It represents visited Wikipedia pages with a graphical network of boxes. Once you have collected and arranged a map view of your Wikipedia session, you can save the result as a Pathway file.
The files Pathway creates are XML. So it should be very easy to transform it into anything else with an XSL Template or script. E.g. a Tinderbox file or an OPML file…
This must be one of Dave Winers favourites: Grazr is a DHTML based outline browser: You can link to OPML files (that again may link to OPML files). You can create virtual hierarchies of OPML files, RSS feeds and other Grazr outlines.
Winer called that idea a World outline. People with a pre-WWW Internet experience may call it the “revenge of gopher“.
In any case Grazr is a slick little flash app that really connects the dots. This idea has bee around for years, but somehow no one ever took care of developing a simple tool for it. It was overdue.
By the way: OmniOutliner is an application pre-installed on many Macs that allows editing & exporting outlines as OPML.
There is a new version of Plone out for some weeks now as well as a roadmap for future releases. The homepage of plone.org has also been redesigner to emphasize the key selling arguments of the Plone CMS.
I have seen in the “inner workings” of a number of content management systems. I think Plone is one of the highlights in terms of the beauty of its technical design. There is alot one can learn from Plone conceptually.