The main ability that DOS chauvinists have held over Mac users is the ability to create batch files, or as my mother calls them, bat files (for storing in your C:\BELFRY directory). You use batch files for minor file manipulation and the like, and they’re relatively easy to write and use, considering you’re dealing with a brain-damaged command line interface. Perhaps the most common batch files that I’ve seen are those that change directories before running programs, thus ensuring that documents saved from that application end up in a specific place, something which doesn’t initially seem applicable to the Mac, but which actually could help neophytes who randomly strew saved files around the hard disk.
Still, many people find batch files useful for automating repetitive tasks, and the Mac has long lacked this ability. Since UserLand Software released Frontier ($190 mail order, $199 direct, $249 list) earlier this year, however, we can all start writing batch files like crazy. After all they’re so incredibly useful, right? Maybe, maybe not.
Setting out — I was pleased as Hawaiian punch when I received Frontier, and I immediately dug into the package to see what I could see. Frontier comes with two manuals – first a Users’ Guide that ostensibly explains what Frontier is and why you want to use it. It also explains bits of how to use Frontier, but much more in the "work through this entire book and then you can probably do something useful" mode than the "experiment out of the box" mode that I and many others prefer. The second manual is a reference to all of the statements, verbs in Frontier’s lingo, with which you write your scripts. You’ll find this manual indispensable, although a pain when you simply want to find a certain verb. Luckily, UserLand provided an Apple event-driven program, DocServer, for referencing this information – that’s probably what you’ll use much of the time.
I started reading to learn enough for basic experimenting, and the manual immediately provided a few minor examples including a terribly useful script to find all the Microsoft Word documents on your hard disk (Whee! Search and destroy!). Then it branched out to more useful examples such as a script that could backup files modified after a certain date. All this was impressive, certainly, and within the scope of what DOS batch files can do, but frankly, I don’t care to find all the documents of a certain sort on my hard disk and when I want to backup modified files I use DiskFit Pro.
I don’t mean to slam on Frontier here, but rather to point out that like DOS batch files, Frontier is only as useful as you make it. Frontier will make life easier if you have tasks that you can automate, even if that automation must be of a certain complexity. In fact, the more complex your task the better, since that will make the development time in Frontier more worthwhile.
Here is another example that may improve your quality of computing. You can create what UserLand calls "droplets," or iconified Frontier scripts that can accept drag & drop in the Finder. Someone could create a droplet that takes a floppy and creates an alias of the disk and its contents in a folder on the hard disk, and then ejects the disk. That way you wouldn’t have to drag the disk to the trash to eject it (an interface monstrosity of the first degree), and you would have a searchable record of your floppies’ contents. That’s neat and fairly universally useful.
Travel travails — So that’s perhaps the greatest problem with Frontier – you have to figure out quite clearly what you want to do with it before you start. The average user is unlikely to start playing with it like HyperCard, if only because of HyperCard’s graphics and button linking features. In addition, even though HyperTalk bears only a passing resemblance to English, Frontier’s UserTalk makes HyperTalk look colloquial. UserTalk is not difficult in comparison to a full programming language (traditional programming languages give me hives) but Frontier uses by no means a trivial dialect. It does a lot, tapping into much of the generalized power behind the Mac’s pretty face, and you pay for that power. Although I don’t pretend to be a programming aficionado, I gather that UserTalk is a modern language, designed from the ground up without the historical quirks of more traditional languages initially designed on, ahem, older computers and operating systems. Just as the MacOS avoided many of the idiocies inherent in DOS (and as DOS improved on CP/M), so UserTalk improves on other traditional languages.
I recently upgraded my venerable SE/30 to 20 MB of RAM (and I love it) which eliminated another objection to Frontier. I’ve had to force myself to realize that just because an application supports Apple events does not mean that you can access its power without it running. That makes no sense (that an inactive program could execute instructions), but I believed that for a while for some reason. This is an issue with Frontier because it must be running all or most of the time for you to get much utility from it. Dropping an item on a droplet will launch Frontier if necessary, and if you want Frontier to collaborate with StuffIt, you’d better have enough RAM for both to exist in memory at the same time. Frontier itself prefers 1 MB of RAM, so without at least 8 MB, you’re pushing it pretty close. And, as Dave Winer, co-developer of Frontier, points out, desktop publishing and picture editing, especially with Photoshop, are tremendously RAM-hungry so larger RAM sizes are no longer rare. Serious Frontier developers will want plenty of RAM, but those who just want to run scripts written by others should stick with the svelte Frontier Runtime.
I’ve implied unfairly that you can only use Frontier for writing and executing scripts. In fact, Frontier boasts three other features that add considerably to its overall utility. First, Frontier has what it calls an Object Database, which stores various types of objects such as data, scripts, tables, and so on. Apart from its obvious use as permanent variable storage for script-writing, the Object Database can store pretty much anything you want, so you could use it, for instance to store items in a To Do list, or any other minor databasey thing. You wouldn’t want to store huge amounts of data in your Object Database because it holds all of Frontier’s data, and is thus quite large and not all that fast. Luckily FileMaker Pro 2.0 works with Frontier, as does a tiny flat-file database from UserLand called uBase. Second, Frontier includes a relatively high-powered outliner, which isn’t surprising considering that Dave Winer’s most well-known program is the outliner MORE, now marketed by Symantec. Dave’s a serious outline fan, and although I see their utility, I have a few personal quibbles with this one, primarily the fact that you can’t have an item and then have a paragraph of text under it since Frontier’s outliner doesn’t word wrap. I’ll stick to Inspiration for my literary outlining, but Frontier’s outliner is good, and you’ll get to know it well since you use it to write your scripts, indenting logical constructions as an actual outline rather than as a readability exercise, another indication of UserTalk’s modern design. Third, as I said above, Frontier includes an Apple event-aware application called DocServer, which documents all of Frontier’s verbs.
In the real world — I’ve lurked in the UserLand forum on CompuServe for some time to sample the flavor of what people do with Frontier, and the main thing I can say is that if you know you need Frontier, then you need it (a nice tight tautology) and if you don’t know you need it, you probably won’t use it. The corollary to that is that if you need automation beyond QuicKeys, Frontier is your main hope. Tom Petaccia has come up with one of the more intriguing uses for Frontier, using it in conjunction with PageMaker’s scripting language to help automate publication layout. Derrick Schneider of BMUG used Tom’s glue file (you need one for every Apple event-aware program you want to control with Frontier – UserLand makes them freely available) in conjunction with FileMaker Pro 2.0 and HyperCard to automate the creation of their annual software catalog with Frontier in the middle, linking everything.
How does Frontier compare to AppleScript? I don’t know because I’ve only glimpsed AppleScript. When I asked Dave Winer about it, he didn’t appear unduly concerned, which implies to me that AppleScript will fill a different, though partially overlapping, niche. Although AppleScript will let you record scripts, Dave assured me that Frontier will as well when necessary (only StuffIt Deluxe supports this right now). AppleScript looked a little easier, though perhaps less powerful, than Frontier. That does not necessarily imply that it will not have Frontier’s depth, but if nothing else, Frontier has had a year head-start on AppleScript and is a mature program. In addition, since Frontier is by definition Apple-event driven; it should coexist happily with AppleScript, each doing what it does best.
However, Frontier is here today, whereas AppleScript lingers in the vaporous shadows. In fact, and I’m surprised I didn’t realize this before, Apple is in many ways using a standard IBM technique of pre-announcing a product to kill off the competition. I’m not accusing Apple of trying to knock off UserLand, but in many ways the comparison is apt. It’s especially deceptive because much of what Apple does in system software is independent of third parties, but now that Apple charges for System 7.1 and possibly the modules like AppleScript and OCE, the competitive aspect shows more clearly.
UserLand is by no means standing still while waiting for AppleScript. They just released Frontier 2.0, a significant (and free!) upgrade which includes a new method of writing object specifications, the Object Model, which allows people to write scripts to control applications like FileMaker Pro 2.0 and Excel 4.0 that support the Object Model. UserLand included support for HyperCard XCMDs (including many of those that use callbacks to HyperCard 1.x), a proprietary form of external command called a UCMD, and much faster menusharing. Menusharing allows programs to share menus between them, allowing the Finder to have a Scripts menu and StuffIt to have a Frontier menu, for instance. This is way cool, and more programs should support menusharing. All in all, it sounds like a good upgrade, and one definitely worth the 2.0 moniker (numeriker?). Frontier 2.0 has numerous useful enhancements, but since many of them only make sense to users of 1.0 (features like a command-click drop-down menu from each title bar, listing the hierarchy, and multiple selections in the outliner), and since UserLand mailed free 2.0 upgrades to all registered 1.0 users, I’m not going to delve further into the differences.
Keep in mind that Apple events and Frontier can work over a network. I quote from the description of the NightCleanup, a script that ships with Frontier 2.0.
Imagine you’re the network manager for a classroom full of Macintoshes. Every day, dozens of students come into the lab to do their assignments and projects. In the course of a day, new files get created, essential files are accidentally deleted. So once a day, you shut the system down and visit all the computers and replace missing files and delete extraneous ones, by manually pointing, clicking and dragging.
NightCleanup – the first UserLand network utility, does this for you automatically and very carefully. It produces a detailed report of all the updating and cleaning up it did. And because NightCleanup is implemented using Frontier scripts, you can customize NightCleanup to exactly suit your needs.
Of course NightCleanup can also serve the needs of network managers in corporations, and even be used to update the files on your hard disk when you return from a road trip with your PowerBook.
Help in the Frontier — Aside from UserLand’s personal help in their CompuServe GO USERLAND forum, there is an Internet LISTSERV discussion list devoted to Frontier, and several file sites that store public scripts. To subscribe to the FRONTIER LISTSERV and receive additional instructions on its use, send email to:
with this line in the body of the message:
SUBSCRIBE FRONTIER your full name
Since this review is getting longer all the time, I’ll wimp out on the details about the file sites and refer you to last week’s (TidBITS-153) review of Frontier Runtime, where I gave the pertinent addresses.
End of the road — I’ve flip-flopped in this review several times, making points about Frontier’s limitations and then in the next electronic breath saying how wonderful it is. I think that reflects my ambivalent feelings about Frontier quite well. On the one hand, I do think it’s the neatest thing since HyperCard, and on the other hand, I also think it’s a complex wirehead program that will overwhelm many people accustomed to HyperTalk. Even Dave Winer admits that "script writing isn’t for the faint of heart," and says that unlike the early HyperCard marketing folks, UserLand doesn’t expect everyone to become a script writer. I have written a few scripts and although I eventually get them working, I find it a frustrating process for my little brain (especially considering the paucity of documentation for interaction between programs – take heed developers!). Such is the nature of the beast, and if you are considering writing Frontier scripts, think carefully about what you want first. Then dive in whole hog and enjoy yourself.