About This Particular Outliner
Three Topics on the Future of Outlining
Frontier Kernel To Be Open Source
In previous columns, we’ve mentioned Frontier as somehow on the fringe of the Mac outlining world. It looks as if Frontier, or some important pieces of it, are to become open source, and this could spawn a revolution in outlining on the Mac. When things congeal, we’ll report on this. In the meantime, we’ll provide some background and explain why Mac outliners might benefit.
Dave Winer did not invent outlining on a computer. I don’t know who did, but it grew out of the MIT Lisp world. I encountered it there in the 70s. But Dave certainly was the first to productize it and bring it to the desktop for non-programming use. His ThinkTank and then MORE were killer applications in their own space, leading to widespread use of the outlining paradigm—indeed, even to ATPO.
MORE and the DOS-based sister products were sold to Symantec, which killed them. Winer’s next company was called UserLand. I was involved from the first release. Userland had a support forum on Compuserve—this was before the Web—and during that early period some history of Frontier emerged.
The Origin of Desktop Scripting
The story goes that Winer was discussing with the young Bill Gates, who had some office applications on the Mac, what to do after creating standalone applications. They talked about a scripting environment that could be used to tie desktop applications together, similar in some respects to long existing Unix capabilities. But this new scripting idea would actually control applications as if through their user interfaces.
Gates took this idea in two directions. He created the application suite which has hardwired links, and he extended Basic into a scripting language. I was still loosely affiliated with MIT when Bill was at Harvard, long before this conversation. I remember him demonstrating an Altair Basic, which Paul Allen had written and ported to Apple and DOS. They had some naive notions about programming science, notions which—as it turned out—successfully caught fire with the first crop of hobbyist programmers. But all that is another story.
The point is that Gates has always had an unnatural bias in favor of Basic as a solution for any problem as a result of his early success. In fact, it seems as if Bill’s only exposure to actual development was with this Basic product. Basic then and now (as the core of Visual Studio .Net) is a toy language as languages go and was an odd choice for a scripting language, but they have made it work. Incidentally, Microsoft has steadfastly refused to port its Basic to the Mac, considering it a major competitive advantage for Windows.
Winer and his programmers took a more sophisticated tack: they used the C and Pascal languages as models, creating something code-named Juicy, which became UserTalk. Programmers, including the amazing Doug Baron (also mentioned below), wrote the Frontier environment for UserTalk, which we’ll talk about in a minute. This was code-named Caboodle.
Baron wrote an extensible platform that could reach anywhere on the Mac. Winer—and later many of the Frontier users—enriched the platform through UserTalk routines and scripts.
Early in 1992, UserLand released the first scripting environment for the Mac, really the first complete desktop scripting environment anywhere. It included its own objectbase (now called the object database) which held data, much of the working code as scripts and menu bars (the extensions we mentioned). This code was easily extended and modified within Frontier, using itself. That itself included an outliner used for programming and debugging! The objectbase was also organized as an outline, and one of the document forms was an outliner, all modifiable and controllable. UserLand actually published a formal description of UserTalk in Backus Naur Form, which was a very geeky thing to do.
(As an aside, three years earlier IBM had introduced Rexx as the scripting language of its OS/2 operating system. Rexx had been developed by IBM in the late 70s and by this time could be considered the first real desktop scripting language. Rexx, plus another older language, Lisp, provided the central ideas behind the open source Python, which today is the fastest growing cross-platform scripting language. Incidentally, Python’s syntax is based on indentation, very outliner-like.)
With the introduction of Frontier, the sophisticated end of the Mac world went crazy, and the heart of the Mac beat strongly on that CompuServe forum for three or four years through experimentation, innovation, and selfless help. In practice, this was an open-source effort; the underlying philosophy presaged the Web—any action can affect or control any piece of code or data anywhere. For instance, I wrote the glue for FrameMaker 5, effectively turning a text tagging application into (among other things) an XML-like system-wide database (before XML) not unlike Microsoft’s Longhorn plans for Avalon, but slow. (FrameMaker is now at 7.x, is used in the current production of ATPM, and has recently been discontinued on the Mac.)
Many coders still wistfully recall how useful the outline paradigm was for coding UserTalk (and of course before that for Lisp). I have in the last month heard from many folks suggesting that similar outline editing be created for Python. The screenshot below is reproduced from our ATPO column on interface design.
With System 7, Apple introduced Apple events which Frontier was designed to employ. Well after Frontier was released, Apple came out with its own scripting language, AppleScript which has been supported sometimes languorously since. It is an odd mix of natural English and several syntactic conventions. Like Visual Basic, it is easy to learn enough to do simple things and very, very hard to master for complex tasks.
Apple also developed the Open Scripting Architecture, which allowed for many scripting languages they clearly expected to appear. UserTalk quickly became an OSA component, and it was normal for AppleScripts to be mixed with UserTalk and for both to be created, run, and maintained within Frontier.
The future of scripting and outlining never looked brighter. I even factored it into a rather advanced AI research program I was managing.
Then, Winer developed extreme dislike of Apple management, supposedly because Apple refused to license Frontier as an integrated part of the OS. He announced that the product would have to move over to the “more friendly” Windows. But in 1995, he announced Frontier dead (unsupported even for paid users) and gave it away as a free product.
He later got interested in the Web and revived Frontier as the basis for some Web tools for content management, aggregation, and blogging. (ATPM was even published using Frontier for some time during this period.) Most of this was done on Windows and as of today, Windows is the preferred platform.
Those Web applications are banal, not revolutionary like the original Frontier and not of interest to outliners except as described in the topic on Web Outlining that follows. They do however have an enthusiastic, though diminishing user base. Both desktop scripting and the Mac were all but abandoned by Frontier except for the minimum necessary to support the Web products, Radio and Manilla.
But over time, Frontier found itself competing with all sorts of commercial and open source projects; it never hit a home run and is now a niche product. Making the original Frontier kernel open source (but not Manila or Radio) is an attempt to save the company by reviving all that free development and excitement of the early days.
It might not save UserLand, but this could be a very big deal for the Mac outlining community. Imagine an extensible editor that can be used as a desktop outliner and outlining programming environment. Imagine something that is easily programmable and extensible within itself by the moderately skilled. So far, you have an unholy cross between Emacs and jEdit, both of which have desktop outliner projects. Imagine also that you can create, debug, store, and reuse OSA scripts natively. Suppose that the contents of those scripts—in addition to being modifiable—could interact with, control, or modify essentially any application or file your Mac can reach.
Suppose the language were as well designed as Python, using indentation creatively. (The already-mentioned Python is one of the shining stars of the scripting world.)
Suppose it were all free.
My own guess is that it is too late for UserTalk to catch up as a major scripting language. And the editor/debugger that was advanced 14 years ago now seems long in the tooth except for the handiness of outlining at many levels; Eclipse (which doesn’t support outlining) has the buzz these days. So what I expect is for an open source developer to use Frontier to create an advanced desktop or Web outliner, possibly collaborative like SubEthaEdit and cross-platform with a built-in macro and extension language that is also an OSA scripting language
It could be something, something worth ATPO tracking as a big deal in outlining and reporting to you. We’ll let you know what happens as it happens. There are lots of issues involved here, things that will be in your mind as you decide on your particular outliner—things like how important to you are the Mac interface and operating system goodies; how important is the ability to tweak every molecule (or have dozens of clever geeks tweaking them in different ways for you to select); and what kind of scripting capabilities you find handy.
Recently, I spent a few hours with Marc Barrot in New York discussing Web outlining. You can see his invitation in his comment on the March edition of ATPM. Marc is at the center of two extremely interesting developments in outlining.
I admit that I do not understand the future of Web outlining very well; I do not think anyone does. My own expertise is with outlining as a single-user tool on a desktop. But many of the tools we examine in ATPO deal with the Web as a source for information, either by clipping Web/RSS content or by referencing URLs.
The last ATPO surveyed NoteTaker and NoteBook, which both can publish versions of themselves to the Web in a form essentially identical to their desktop appearance, in a read-only form as literal notebooks.
Sometime soon, we’ll similarly survey the amazing Tinderbox, which by many measures is the most powerful outliner on any desktop. It has rather robust internal scripting to produce blog-like Web sites of notes. It actually stores its files as XML, so you build a site with its own agents and export tools or roll your own using the daunting XSLT language. But Tinderbox Web sites do not have outline controls; all the outlining is erased in the transfer to the Web.
FreeMind is an open source mindmapping type outliner that publishes an indented folding outlining to the Web. Pretty impressive (and free!), but you have to create in a non-Mac-friendly mindmapping mode.
What if you had a tool that could take your outline from your favorite desktop outliner and display it on the Web as an outline with collapsible triangles and all? That last part is what activeRenderer does. By an odd coincidence (well, not really), activeRenderer is written in UserTalk and was originally intended for integration with the Frontier-hosted blogging product, Radio. Instead, it is being used to render OPML files to the Web from other outliners (and also from Movable Type). OPML is an XML format, incidentally created by Dave Winer, supported by FO, iLiner, Hog Bay NoteBook, Circus Ponies NoteBook, NoteTaker, OmniOutliner, and MyMind.
Check out Marc’s gallery of rendered Web sites.
There are a couple of very nice touches to how this works. They are so elegant, one wonders why we don’t see them in some desktop outliners. If you hover over a collapsed arrow, a pop-up appears of the collapsed content (or a comment instead). Marc hastens to credit Michael Poremba with this notion in his earlier rendering project.
If you hover over an uncollapsed arrow, a vertical line appears under to show the scope of the children.
ActiveRenderer has a really great feature: transclusion. Transclusion is an idea and term invented by hypertext legend Ted Nelson, who we introduced in the very first ATPO. Transclusion is the hypertext/Web version of cloning. In outliner cloning you effectively say: make a live updating virtual view of this header and children, where edits to either are reflected in both. In the Finder, these are called aliases.
Transclusion is subtly different; it introduces an intermediate marker, a URL. With cloning you say to show this content. With transclusion, you say: show whatever content someone has associated with this marker. You may not know what it is at all. For instance, you can transclude the latest entry from ATPM publisher Michael Tsai’s blog, or the latest weather, or the info from eBay that you are tracking.
Here are a couple of screenshots from Marc’s online tutorial for transclusion.
Ready to Transclude
The outline triangle in this case is an upward pointing arrow over which the user has moved her browser’s cursor in preparation for clicking. The next shot shows that arrow open, meaning the content has been retrieved; in this case it happens to be the news items from the activeRenderer site.
If Marc is sufficiently encouraged, he may open this up to be more easily usable by OPML-producing Mac outliners. Let him know and we’ll see.
ActiveRenderer is cool, but the thing that brought me to New York to discuss was webOutliner. This is a different beast altogether. The idea behind it is that you create outlines in the Web browser. Just as with desktop outliners, the outline creation and publishing is via the same interface, only in this case, it is a browser and your files are on a Web server somewhere.
That means that, in theory, many people can contribute to the same outline. In a way, this is much like a Wiki, but without all the massively unintuitive editing and user interface compromises of wikis. (As a side comment, Hog Bay Notebook has an interesting merger of a desktop wiki and outlining.)
And, unlike Wikis, this could be multimedia friendly. Multimedia, especially linked multimedia, is a heavyweight job. Creating the killer application in this space is going to require tons and tons of horsepower, way beyond even the next generation of desktops. The way to go is to build it on a Web server and worry about efficient delivery, intimate interaction, and tailorability at the user end. A new outlining paradigm?
Here’s what it looks like today. You view an outline just like in activeRenderer:
But the entries aren’t just read-only. Clicking an entry once selects it. The toolbars on the left and top appear and support most of the things you would do with a desktop outliner.
And double-clicking turns the entry into editable content. Changes are available to everyone.
Now is that cool?
The history of how webOutliner came about is pretty interesting in itself. Based on the success of activeRenderer, Marc Canter talked to Marc Barrot about a collaborative Web outlining tool that could form a basis of a next-generation collective multimedia publishing tool. Marc Canter is the guy who invented MacroMind Director, the thing that spawned the Macromedia empire and eventually Flash.
He’s a rare bird, one of the older visionaries who is actually worth listening to. He encouraged Barrot to do webOutliner. Marc Barrot strikes me as a talented engineer, but he had some heavyweight help, recruited by Canter.
Marc says of this:
[Ted’s note: Danny Goodman is a well known stalwart in the Mac scripting world because of his terrific books.]
I’m currently working with Phil Pearson, a Python guru from New Zealand, to port the webOutliner’s back end code to an Apache/Python architecture. This will enable us to run the webOutliner server on Unix-based systems, which provide a more stable and scalable environment than the current Windows/Frontier.
Why is this of interest to ATPO readers? Because it may be the harbinger of the long anticipated collaborative multimedia commons. Because it could change the face of desktop outlining applications. Because it revisits something that was at the very soul of what it meant to use a Mac. And because it is cool.
Marc Canter speaks to the future:
With the availability of an open source webOutliner—new kinds of online tools and services are possible which take advantage of the inherent, instinctual nature of outlining. By supporting OPML, Broadband Mechanics is providing the ideal, open tool and codebase for others to leverage and enjoy.
Marc Barrot speaks to the future:
In the past years, I’ve been most impressed with desktop Web publishing, as demonstrated by Userland’s Radio and by online collaborative Web site creations, as demonstrated by the different flavors of Wikis.
So I’ve decided to add my interest and knowledge of outlines in the mix, and explore two directions:
Desktop outline publishing: given current desktop outliners, including the worst and unfortunately most widely used one: Microsoft Word for Windows, how can we add both a “save as” new format to create a dynamic HTML version of the edited outline, and the background mirroring task in order to copy the HTML version on a publicly accessible site. I am already working with other developers to create those features in a number of outliners, and would definitely welcome new volunteers.
Web outlining: I’m frustrated by Wikis’ very limited ways of entering and modifying texts. We (that is Phil Pearson and I) are currently working on building a more reliable and scalable webOutliner backend based on Apache and Python scripts. Once this is done, I’ll combine WikiWords and transclusion, add a couple of other wiki-like navigation and indexing features, and we’ll come up with a new and I hope more compelling outline based group publishing system.
Eventually, adding to an outlined site contents shouldn’t require more than either firing up your favorite outliner and saving for publication, or loading the published page into a Web browser and entering modifications directly. We intend to attain both: power through simplicity.
The State of the Art Snapshot
We (our vast staff) have decided to introduce an ATPO news feature that reports progress in the outliner community. We’ll continue with our focused features as before—next month on mindmapping—and afterwards let you know about any updates or other noteworthy news in the previous month.
I know the average Mac outliner enthusiast will find it hard to keep track on his own—I can hardly do it via direct contact with many developers. Things are heating up outlinerwise all over—and especially on the Mac—and this experiment could just become overwhelmed. So I ask readers and developers to let me know directly when something interesting happens.
To kick start the reporting feature, we’ll list here the applications we will be tracking and briefly note their current status. In the listings, we mention if an application is developed in Cocoa, Carbon, or whatever. This may matter to you since many of the Cocoa applications can use the increasing collection of text editing tools supplied by Apple and third parties; Mike Ferris’s TextExtras has some pseudo-outlining capabilities. Carbon outliners should run under OS 9, which might be important to you.
Each listing has a screenshot to give you a flavor of the user interface. The screenshots have a rough listing of features; please don’t consider the feature listings authoritative. Mindmapping software gets short shift in this because I only show the outline view.
Current version: 2.5.3
BrainForest Deluxe (Ultrasoft)
Current version: 3.0.8
Caboodle (Dejal Systems)
Current version: 10.b1
ConceptDraw Mindmap (Computer Systems Odessa)
Price: $99; Pro version $149
Current version: 3.0
Current version: 1.2
Deep Notes (Amar Sagoo)
Current version: 1.2
DEVONthink PE (Devon Technologies)
Price: $40 (note version $20, with DEVONagent, $65)
Current version: 1.8.1
FO (Takashi T. Hamada)
Price: in beta, price not yet set
Current version: .09u
Current version: 1.5.4
iLiner (Mercury Software)
Current version: 2.0
Inspiration (Inspiration Software)
Current version: 7.5
Life Balance (Llamagraphics)
Current version: 3.2.4
Current version: 2.0
MyMIND (Sebastian Krauss)
Current version: 1.0
NewNotePadPro (Hisadonia Island)
Current version: 2.1
NoteBook (Circus Ponies)
Current version:1.2 (v180)
Notebook (Hog Bay)
Current version: 3.1.1 (v112)
Price: $239 (as part of Word); $399 (as part of Office)
Current version: 2004
NotePad Deluxe (Ibrium)
Current version: 2.3.4
Current version: 1.1
Notes (SkinkHunt Software)
Price: $20 (site currently down)
Current version: 3.0.4
Notes (Richard Schreyer)
Current version: 1.3.4
Current version: 1.8.9
NovaMind (NovaMind Software)
Current version: 2.1
Current version: 2.2.6 (69.6); version 3 announced
PocketNotes (Pocket Software)
Current version: 2.1
Sh-Out ! My Brain (Strawberry Heads)
Current version: 2.1.3
Shadow (Code Jedi)
Price: free public beta (Window/Palm version is $23)
Current version: 2.0.6
Slacker ToDo Lists (Mindlube Software)
Current version: 2.1.6
Tinderbox (Eastgate Systems)
Current version: 2.2
To-Do Stickies (Joseph Sharp)
Current version: 1.0.1
• • •
If you just are tracking a few on your own, look at these for promising new ideas:
- Curio for blackboard outlines
- Tinderbox for metadata richness
- Hog Bay for outline outlining
- FO as a possible writer’s outliner
- Jedit, which is being used as a basis for a next-generation open source Arrange (described in our ATPO column on legacy outliners)
- Alpaca with Clotho as the possible framework for the open source Mac OS X molecule-level tinkerable outliner
- PathFinder as a potential Finder-integrated outliner
Next month: Mindmapping outliners. Send me your views and recommendations.
Also in This Series
- A Progress Report · February 2008
- Some Perspectives on the Worldwide Developers Conference · July 2007
- Writing Environments, Plus Two New Outliners · November 2006
- Examining New Business Models · September 2006
- Outlining Interface Futures · July 2006
- Outlining Workflows and ConceptDraw · May 2006
- Dossier and Outliner Web Interaction · March 2006
- Two New Outliners: Mori and iKnow & Manage · February 2006
- Styles Revisited, Video Features, and a Proposal · December 2005
- Complete Archive