The way I see it, Dashboard offers lessons to developers of native Mac applications as well. Users can audition widgets before committing to their installation. The install process is a one-click affair, and it’s just as easy to uninstall a widget as it is to install it. I can’t say whether Leopard incorporates a mechanism for removing installed applications, but because that’s one of few remaining pain points for Mac users, figure uninstallers into your application design whether Apple helps you with it or not.
Standard behavior for any application, Mac or otherwise, is to saddle the user with using Save As or file/folder copying for versioning of documents and projects. While Cocoa has built-in facilities for unlimited levels of undo in text editors, there is no equivalent for this on a file level. And while a Revert option belongs in every application’s File menu, it’s seldom seen because the only practical way to implement it is to create a backup copy of a file every time it’s saved.
When your application can’t locate a file where it expects to find it, or when a file turns up corrupted, instead of bailing out you should tap the capabilities of Time Machine. Time Machine maintains deltas of file modifications by taking non-destructive snapshots of the entire file system at regular intervals. Time Machine is not enabled by default because it requires the one-time selection of an external volume or Time Machine server for the storage of file deltas. It’s a facility that applications written for professional and commercial use should urge users to activate, and when it’s found to be present, applications should assist the user in locating a valid version of a missing or corrupted file. The fact that Time Machine is more efficient and reliable than either Save As or versioning via duplication is a sound justification for recommending Leopard for applications with large or critical documents and datasets.
Ruby on Rails
Apple remains strongly committed to Java. A 64-bit optimized Java Virtual Machine based on Java Standard Edition 6 is incorporated into Leopard. Apple’s current published documents indicate that Java SE 6 will be present in Leopard as a preview. However, that documentation may have presumed a June release date, rather than October.
OS X Server, and OS X clients that are equipped for server duty, bundle the Apache Web server and various means to implement and deploy Web applications. Tiger includes Red Hat’s JBoss Java 2 Enterprise Edition server, and Apple’s close working relationship with Sun is likely to enhance its Java offerings. Apple’s own Java app server, WebObjects, which is used for Apple’s online operations including the iTunes Store, is a powerful option. But all of these require a substantial investment in skills that might not be justified for all Web applications.
Apple has endowed the Ruby scripting language, and by association the Ruby on Rails Web application framework, with two-way connectivity to Objective-C native code and the Cocoa and other object-oriented frameworks available to Objective-C applications. While other languages lay claim to being easy to learn, Ruby rivals BASIC’s ease with regard to the swift movement from zero knowledge to productive code. Ruby has a large community behind it that has generated a massive repository of RubyGems[dd1] classes covering practically every imaginable purpose.