Sep 12 2011

Back to the Future!

I’d like to discuss the current state of Fractal Domains development.

[I will try to keep this non-technical, but I will have occasion to mention the two ways Apple provides to write software for OS X. Carbon is the name of the interface a programmer would use that is compatible with the old (pre-OS X) operating system. Cocoa is the name of the “new” interface introduced with OS X. It is the preferred interface for Mac software development.]

For several years now, I have had a “Future Plans” page on this web site. This page contained a wish list of features for a version of Fractal Domains that was basically planned to be a complete rewrite, which a new architecture and the ability to support a much wider variety of coloring schemes and many more fractal types.

Over the years, I actually made a start on this project more then once, on two separate occasions generating quite a bit of code. In each case a lack of time combined with an overambitious design (I’m sure many software developers know what I’m talking about) eventually led to abandonment of these projects.

In the meantime, I patched up the Carbon code base of the original Fractal Domains several times, fixing bugs and adding features in the process (Intel-native code, multiprocessor support).

Let’s back up a bit and take a look at the entire Fractal Domains timeline. Fractal Domains’ pedigree extends to well before Mac OS X was available. Originally the program’s name was FracPPC, and it was written in order to take advantage of the number crunching abilities of the PowerPC processor. The major fractal applications for the Mac at that point were all 68K programs and these programs were not being upgraded to PowerPC native.

Permit me to bore you with an abbreviated timeline of Fractal Domains development:

  • March 1994 — first PowerPC-based Macs become available (I bought a 6100 the first day they became available.) Came with OS 7 installed.
  • May 17, 1994 — FracPPC 1.0b1 is released. Only generated Mandelbrot zooms and you couldn’t even save as image.
  • September 16, 1996 — FracPPC 1.1. You can edit color maps, save images.
  • November 1, 1997 — Fractal Domains 1.2. Previous versions were free. This version is shareware and the name is changed to Fractal Domains. At this point most of the orbit trap and fractal formula features are there.
  • July 3, 2000 — Fractal Domains 1.3.7. This would be the last version produced for OS 9.
  • March 24, 2001 — Apple introduces OS X 10.0 (“Cheetah”).
  • September 14, 2001 — Fractal Domains 2.0a1. Alpha version of the “Carbonized” Fractal Domains. Runs native on OS X.
  • February 7, 2004 — Fractal Domains 2.0b5. Fractal Domains had been in beta for several years at this point with some feature additions and bug fixes. This is noteworthy for being the last version that runs on OS 9.
  • December 31, 2006. — Fractal Domains 2.0. Three major noteworthy aspects:
    • First Intel-native version (actually a Universal application, runs on PowerPC and Intel)
    • First multi-threaded version (takes advantage of multiple processors)
    • No longer runs on OS 9 at all.
  • September 4, 2010 — Fractal Domains 2.0.11. The last version of Fractal Domains to be released as of this data.

Oh yes — my marriage and the birth of my daughter occurred somewhere in there.

I don’t know exactly when I first put up the “Future Plans” page, but it was definitely before the 2.0 final release on New Year’s Eve 2006, since some of the features incorporated in that release were in the original “Future Plans.” Possibly the page dated back to when OS X was released in 2001.

From the initial introduction of OS X, I have wanted to do a re-implementation of Fractal Domains in Cocoa. However, I succumbed to the temptation to completely redesign the architecture of the program, and that in turn led to a long delay in actually achieving the rewrite.

Meanwhile, time was marching on and I was obliged to make bug fixes to the current code base. The advent of Intel processors and multi-core systems even prompted me to make some major changes/additions to the program.

At the same time, it was becoming increasingly difficult to make changes to the Fractal Domains code. A large part of the problem was that the program had originally been written with a framework called PowerPlant. This framework, a redoubtable product in its day, was part of the set of developer tools sold by Metrowerks in the PowerPC days. When Apple started essentially giving away their developer tools for OS X, Metrowerks eventually gave up on trying to compete with “free,” and PowerPlant was orphaned.

I was not the only one in this boat (some major vendors of Mac software used this framework at one time). As OS X has developed it has become more and more impractical to make changes to the code in its current state.

Furthermore, the time is approaching when Carbon itself will no longer be supported by Apple. It is still supported as of OS X Lion, but the handwriting has been on the wall for years. My personal guess is that Carbon support will finally be dropped in the next major version of OS X (which if past precedent is any guide should be in about two years.) [Read more…]