« Big News Update | Main | I hate Aladdin Systems, part 2 »

A development tools rant

I'd like to state for the record that Stuffit InstallerMaker 7 is a raging piece of crap. It's not OSX-native (in fact, it's the only app I ever have to start Classic to use), it doesn't support any decent or modern installer options (but it does support checks for B&W and 32-bit QuickDraw - circa 1990), the updaters/installers it produces look like junk (check out the pinstriped backgrounds to the readme text dialog in the upcoming Alice updater) and up until the latest patch, it had serious issues drawing and updating the progress bar under OSX. When you have to add a "don't panic" note to your app's readme about installer bugs, you know you've bet on the wrong horse.

Aladdin Systems just released a beta of InstallerMaker 8 that is OSX native. Hey, it's only been two and a half years, right? They're a company that heavily relies on the fact that they've got the Mac "compression" market locked up, and they use that to charge annually for "updates" to their products that add no real value aside from what most companies would consider bug fixes, while simultaneously providing developers with one of the oldest, creakiest, buggiest and slowest installer/updater apps that mankind has ever seen.

Truthfully, most of the third-party development tools on the Mac suffer from this to a similar extent. Metrowerks' CodeWarrrior is essentially a $250-year bug-fix tax, although it's seeing increased competition from XCode. The folks at Metrowerks may even someday add G5 and dual-processor support to their compiler, although I would hope they do so before they're driven out of business. CodeWarrior doesn't really suck, per se, but it's clearly stagnating. All of the dialog boxes in the IDE look like junk on OSX (and have since 10.0). They don't draw the backgrounds for any of the controls properly, so all the pinstriping is misaligned all over the place. I honestly think you have to try to get this to not look right. There's a lot of other fit and finish that needs work, and makes CodeWarrior start to pale by comparison to XCode. The one thing it still has in its favor is compile-time performance, but even that is narrowing rapidly.

And Resorcerer? Check out some of those "glowing reviews" - from 1992 and 1994. Now to be fair, Resorcerer isn't really as relevant today, what with the move towards NIB-based data in OSX. Having said that, Resorcerer was frustratingly behind the times even before OSX. It lacked support for the Appearance Manager and it's new controls for several years after the Appearance Manager was first introduced in MacOS 8.0. If you read the release notes for the app, you'll note that a lot of effort was expended on bizarre features like a hard-drive file browser, odd zooming rectangle support and about-box fractal generators, because we all know how much more important that is than having a resource editor that edits resources well and doesn't look like ass.

Normally, I don't get overly excited when Apple treads on the feet of third-party developers (like with Watson and Sherlock), but I can't help but wish for them to do so in these cases. It's in Apple's best interest to have world-class development tools on the Mac if they want to have any hope of getting new developers on board. The current state of third-party developer tools is pretty shaky, so it is from that perspective that I cheer Apple on every time they release new or updated tools. Software survival of the fittest!

Comments

Apple's PackageMaker truly sucks in many ways.

We have our build process automated through a makefile, but there doesn't seem to be any command line way to build an installer package and package maker is completely unscriptable.

It also stores absolute paths in its documents, so when one programmer checks in a project whoever checks it out has to fix the paths for his own machine.

Try Install Anywhere, it's os X Native and can do some really cool . It deals well with relative paths, and keeps installer projects in XML files for easy changes.

It's actually possible to automate package building; all they are are just folders with some stuff in special places. I believe there are scripts in several scripting languages that can be used to build them. I think the only trick (other than figuring out pax and such) is to use /usr/bin/mkbom to create a bill-of-materials; "man 5 bom" for more details.

Also, there's the command-line tool /usr/bin/package that can be used to create Mac OS X 10.0-10.1 packages, or you can run /Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker to build a 10.2 package. (Pass it the "-help" argument - yes, one dash, grr - to see the usage info.)

There are two reasons why we use Stuffit InstallerMaker at present. The first is because our publishers (Aspyr and MacSoft) have paid licenses for it and only it. The second is that for most of our apps, we have to support OS 9 (this was the case with the Alice updater). Whever we can get away with it, we ditch the installers and go with "drag installs" from the CDs. However, this doesn't work so hot when it comes time to issue a patch.

I haven't personally investigated InstallAnywhere or Apple's PackageMaker, but they will definitely get a look for our upcoming OSX-only projects.

"It's not OSX-native (in fact, it's the only app I ever have to start Classic to use), it doesn't support any decent or modern installer options" -
~MacroMedia has done a wonderful job of keeping up with the times as well...

We're using Installer VISE for making installers. I would recommend taking a look at it if you need to create installers.

-- Al

Hi Al,

I did a project that required VISE back in May, and I ran into a whole gauntlet of known bugs. The biggest issue was that I had to make two installers - Carbon and non-Carbon - just to get it to not crash when viewing license text on MacOS 8.6. If you search the mindvision support newsgroups, you might find my old posts. I don't remember the details of the other issues I had.

Amen, about the lack of scripting support for PackageMaker ... However, Marc Liyanage has an example perl script that builds a .pkg file at http://www.entropy.ch/software/macosx/mysql/make_mysql_pkg.pl.txt. You can take a look at that if you *really* need automated builds.

It just kills me that they don't fix some of the obvious problems in PackageMaker.

The link for the PM perl script is not working :(

Nice to read Stuffit is not a good installer solution. I hadn't tested it and felt guilty for this. Now, I'm happy.

From above comments, we can manage to get by the "make" of a package with command line.
But how about listing,install and delete packages ?

what are the equvilents of following linux command ?

rpm -i
rpm -qa
rpm -e

Thanks for your pointer

tj