For too many years, Apple Computer had an unspoken motto of Don't Feed the Geeks.
They were apparently so concerned about making their computers seem easy to use that they
felt that tech talk would scare prospective users away. As a result, getting "inside" the
Macintosh became an activity for only the most determined users, and being able to write Macintosh
software was not unlike being able to read Latin the in the Dark Ages.|
To make matters worse, Apple's penchant for "Look and Feel" lawsuits got it into trouble with those net.gods of freeware, the Free Software Foundation, who boycotted Apple products and refused to support the port of their free GCC C Language compiler to the Macintosh. Although the boycott's been over for some time, and GCC, TCL/TK and Perl are now freely available for the Mac, conquering the Macintosh toolbox is still as a daunting task as mastering Motif widgets (though certainly not as confounding as programming for Windows '95).
UserLand Software's Dave Winer set out to change that by releasing their formerly commercial Frontier scripting engine freely to the net. Frontier had been especially popular in the publishing industry for workflow automation, but it's relatively high sticker price lead the majority of Macintosh scripting work to use the less powerful, but free, AppleScript provided with the MacOS system software.
That has changed. Frontier, in a special Aretha release geared toward cgi-scripting is now available for free. Compatible with AppleScript and other Open Scripting Architecture languages for Macintosh such as OSATCL, OSAJ and MacPerl, Frontier has many features none of these languages come close to. Menu sharing allows a user to completely customize 'shared' menus that will trigger Frontier scripts while in many popular Macintosh programs, such as Netscape, Anarchie, Eudora, QuarkExpress, the CodeWarrior programming IDE, and even the Finder. This is in itself a really cool feature, but where Frontier really shines is as a multi-threaded cgi server for Macintosh webserver software such as WebStar and MacHTTP.
When using the native version on a PowerMac, my impression (without having any benchmarks in front of me) is that cgi performance meets or exceeds that of a UN*X platform of comparable MHz. The best part is that with a Macintosh webserver using Frontier, there's no security hassles with setuid scripts, tricky users putting semicolons into forms submissions to gain unauthorized access, or dozens of ".htaccess" files scattered throughout your server's directories. Interfacing with database servers like 4th Dimension, FileMaker Pro and Butler SQL is almost trivial, and Frontier is TCP savvy itself, so you could probably figure out a way to get it to talk to just about anything (the latest version includes examples of a POP/SMTP setup, a finger client/server, and an FTP client). I'm expecting to see a webserver implemented entirely in Frontier in the future.
If the web client is running Frontier on a Macintosh, truly remarkable things are possible, including embedded Frontier and AppleScript code right in the HTML pages, and downloading new Frontier pieces from the 'Mother Ship' -- scripting.com, Winer's own Frontier object database server that will automatically send you new database elements and scripts via Netscape and install them into your own Frontier root file. As Dave would say, "coooool!"
Once you've accumulated as many pages on your site as slack, you'll find that making changes, especially global changes, is tedious, unforgiving work. If you ever change your email address, or wish to rearrange the structure of the site, many hours of work are ahead of you, even with multi-file search and replace capabilities.Clay Basket makes this all easy, or at least not so tedious.
Your site is arranged as an outline with the same familiar interface used throughout the Frontier system. If you wish, you can have Clay Basket take care of all of the navigational links for you (although you'll need to design your own page templates if you don't want that DaveNet look most of the provided templates have). If you do this, you can simply rearrange the site outline and rebuild to update all of the links. In addition, there's a powerful glossary feature that allows you to enclose any glossary entry in quotes and have it substituted with a web or email address, or other text block when the pages are built. Relative links are automatically part of the glossary, so you can quote the titles of other pages at your site to provide an automatic up-to-date link. slack uses both of these features, including glossary entries that set up the framesets for Mozilla viewers. It's as automatic as you want it to be, and can take control of your existing website with just a little thought.
To really give it a workout, I decided to see how it would handle a job I've been putting off for some time. At the transportation cooperative where I work, I had 15 years of Board of Director's meeting minutes that another member had recently scanned in with OCR software that I needed to place on the cooperative's internal webserver. These were 300+ vital text files that detail the policies and proposals of our worker-owned and operated cooperative's history from day one. Formatting them by hand as HTML pages was very, very boring, and linking them together was looking to take weeks. I had better things to do (like finish the coop's enterprise database system) so I called on Clay Basket. I created a new site outline, simply dragged the nested folder hierarchy of text documents from the desktop into the outline window, and when I dropped it, seconds later the site's entire structure was in front of me. About half an hour of tweaking later, I was building and uploading the site to Eunice, our SPARC station. I went to lunch on time that day.
Another nice thing you can do with MacBird is create additional interface elements for existing programs that support the MacBird protocol (mostly UserLand stuff at this point). I've got a whole slew of little program pieces I wrote for use in Clay Basket, for instance. Wish that program had a better toolbar? If it supports the MacBird protocol, you can whip one up yourself in short order.
UserLand's just released the source code to the MacBird runtime engine to facilitate it's porting to other platforms. The MacBird protocol (technically called the Interactive Object Architecture) is insulated from the MacOS by something called the Applet Toolkit (no relation to Java applets). My initial scan of the code doesn't make me think that porting this to the X-window system or MS Windows will be easy by any means, but what the heck, if the OpenStep guys can do it, so can MacBirders!
Will it ever compete with Visual Basic(tm) in popularity? Probably not, but who cares! It's free and it's not owned by the AntiChrist, so it's worth a shot. I've been working with it in my 'spare time' and having a blast. Probably the best route to take would be to port it as a Netscape PlugIn, which seems to be the plan, judging from comments from movers and shakers in the MacBird community.
Go back to