Skip to content

FaceSpan 5 (Mark’s Misadventure)

Back in May 2009 I made the difficult decision to abandon FaceSpan 5. This was a wrenching period in my life and it has taken a long time to recover. The failure of this project seriously stressed my relationship with a couple of good friends and cost me a lot of money and time. At last I feel like I have enough distance to begin to talk about what was accomplished and the mistakes I made.

I am a self-funded Indie (lone) developer. I made a number of classic business blunders on the FaceSpan 5 project. I broke the golden rule: never (never!) rewrite a software product. I massively underestimated the effort required to complete the product. I set off without having sufficient resources to complete the project. Because I took so long to complete my work, the market moved on — AppleScript’s importance to the customers I intended to target declined. Some may argue that the market was never really there to provide a return for a product of this complexity. Finally, I didn’t pull the plug soon enough. Hindsight its great.

Not all was lost. Some of the code I developed for FaceSpan 5 found a home in Script Debugger 5.

A Little History

Many years previously I developed FaceSpan 3 under contract for its owner. As part of that effort I became impressed with FaceSpan’s power and simplicity. FaceSpan 3 was successful, for a development tool, and even received an Apple Design Award at that year’s Worldwide Developers Conference. Sadly, after my involvement with the product ended, FaceSpan fell into disrepair and did not make the leap to Mac OS X. FaceSpan’s developer finally produced FaceSpan 4 which was to little to late and not as successful as hoped for.

I acquired FaceSpan 4 in 2006 and, after a period where I tried to fix the most serious issues with the product, I concluded that FaceSpan 4’s dependance on AppleScript Studio was its core problem. FaceSpan 4 had great integration of a visual UI bilder and coder editor, but lacked a good runtime environment and debugging.

Work on FaceSpan 5 began in 2007 with the aim of freeing FaceSpan from AppleScript Studio and restoring the classic FaceSpan’s attractiveness. By the time I stopped FaceSpan’s development I believe I was well on my way to achieving my aims. Two great Mac developers helped me with the project:

  • Adrian Ruigrok, who now works for Apple, developed much of the FaceSpan 5 IDE code.
  • Matt Neuburg acted as a sounding board for my ideas and developed the initial FaceSpan 5 documentation.

The project turned out to be too ambitious given my resources. Additionally, FaceSpan revealed a number of AppleScript issues and problems in Apple’s Cocoa Scripting framework which I was ultimately unable to overcome.

What Is (Was) FaceSpan?

FaceSpan 5 was an integrate tool for building Cocoa applications using AppleScript. Many people saw similarities to Apple’s HyperCard. FaceSpan provided a visual UI builder, an AppleScript editor, an AppleScript debugger and a runtime environment designed to take the best advantage of AppleScript’s strengths and provide a collection services and UI widgets out of which applications can be built. Matt wrote this description of FaceSpan 5 back when the project was active.

FaceSpan 5 Project Window

The FaceSpan 5 runtime environment wrapped Apple’s Cocoa Frameworks in a sanitized and simplified AppleScript focused programming interface. This allowed one to build fully Cocoa-native applications using AppleScript without having to learn anything about Cocoa. The intent was for Cocoa to be an implementation detail rather than the programming interface.

We’ll never know if the FaceSpan 5 approach was actually better than the AppleScript Studio interface offered by Apple. My hope was that FaceSpan’s approach was actually simpler, and not simply a substitution of one complicated programming interface for another.

Since FaceSpan 5 was abandoned there have been several developments in the area of AppleScript GUI tools. Firstly, Apple transitioned from AppleScript Studio to AppleScriptObjC. Shane Stanley has released his ASObjC Runner which can display progress dialogs. And then there is the long lived Appearance OSAX from 24U Software.

The Last Build

When I stopped developing FaceSpan 5, a lot of people came out of the woodwork looking for a copy of the software. I was not willing to make the software available at that time, but I am now. I’m doing this now because I think it might be interesting for those of you who were/are curious about what I was working on to get a chance to play with the product.

Keep in mind that this build predates the release of Xcode 4 and there are some interesting similarities. Apple had to be developing parts of Xcode 4 during the same period so its fascinating to me how common ideas arrise in different places.

Before you download the software, please keep the following conditions in mind:

  • This is Alpha-Stage software. This means that it is buggy and its not feature or UI complete. Expect it to crash and fail. If you stick to the examples included with the documentation, you should be okay.
  • THE FACESPAN SOFTWARE IS PROVIDED AS-IS FOR EVALUATION PURPOSES ONLY. USE AT YOUR OWN RISK.
  • PLEASE DO NOT FILE BUG REPORTS. I’m not going to produce another build.
  • PLEASE DO NOT ASK ME TO OPEN SOURCE THE PROJECT. This product shares a lot of code with my Script Debugger product and I’m not willing to release the code.
  • RTFM. Seriously, you are on your own.
  • The software should run on Snow Leopard (10.6) or Lion (10.7). I have no idea if it will work on Mountain Lion (10.8) or beyond.

View Matt Neuburg’s Alpha Documentation.

I have withdrawn the FaceSpab 5 download as Mac OS X 10.9 (Yosemite) broke it – apologies

Have Fun!

7 Comments

  1. […] Mark Alldritt: I am a self-funded Indie (lone) developer. I made a number of classic business blunders on the FaceSpan 5 project. I broke the golden rule: never (never!) rewrite a software product. I massively underestimated the effort required to complete the product. I set off without having sufficient resources to complete the project. Because I took so long to complete my work, the market moved on — AppleScript’s importance to the customers I intended to target declined. Some may argue that the market was never really there to provide a return for a product of this complexity. Finally, I didn’t pull the plug soon enough. […]

  2. Paul Chernoff Paul Chernoff

    I was one who was sorry that FaceSpan 5 never saw the light of day. I enjoyed FaceSpan 3 (and earlier) for creating small programs. Over 15 years ago I even wrote a FaceSpan app that was a frontend to a 4D Server databases.

    I depend on your ScriptDebugger whenever I do work in AppleScript.

  3. Matt Neuburg Matt Neuburg

    The ingenuity of FaceSpan 5 as a software construction kit cannot be overstated. FaceSpan 5 was like REALbasic or HyperCard but even better. The user arranged widgets to form the interface, and “inside” each widget was its code, and messages were passed around and rose through the hierarchy by an ingenious set of mechanisms that, in my opinion, put even Apple’s Cocoa to shame. It was a brilliant conception and a tremendous achievement, the high expression of Mark’s work as a far-sighted visionary of software architecture.

    The weak point of the whole thing, unfortunately, was the use of AppleScript as the user programming language. Mark did propose JavaScript as a future alternative; I was in favor of Ruby. But we had to start with AppleScript because this, after all, was supposed to be a version of FaceSpan. And it was on AppleScript (or its Cocoa implementation) that we ultimately foundered.

  4. I would never have finished my PhD without FaceSpan 3. Good memories – thanks Mark!

  5. Hello and thank you Mark for informing me of making available to the alpha version of FaceSpan 5. I have not been able to resist the curiosity to launch and do some small tests, I’m really impressed with all the work doing, there is certainly some beugs, but the application is very well thought out, ergonomic and really pleasant to take control. I can not help expressing new regret that this ambitious project was abandoned, especially as today with the AppleScript-Objective-C approach adopted by Apple, the old AppleScript developpers, like me, accustomed with “standards” developing methods have great difficulty for understanding and for migrate to the new Cocoa environment. The RAD software, such as was FaceSpan, is really lacking today, when I see all the features whose this alpha version offers, I can only have a mixed feeling : on one side a sincere admiration for work performed, and the other side a deep regret that this project is never completed. Pity. Still hoping that someday someone will take your program (perhaps you Mark?) for to complete it and, finaly, offer to all AppleScript developpers who, like me, have been waiting for a rapid development environment, ergonomic, powerful and easy to use. Sincerely, FredoMkb (Sorry for my bad english, i’m a french AppleScript user)

  6. Todd Todd

    Mark – thank you so much for your efforts. I just started with Shane Stanley’s book and AppleScriptObjC and find myself continually recalling my days with FaceSpan. It was a great product.

Comments are closed.