Wednesday, July 20, 2011

My Take on Mac OS X 10.7 "Lion"

It's a very good upgrade, and well worth the measly $30. There are a few changes that will throw people for a loop.

Hits

The most important changes in Lion are underneath the hood. The security model has been radically upgraded. FileVault 2 is a massive improvement over its predecessor. It provides for full disk encryption at the block level. When I upgraded my 11" MacBook Air to Lion, I enabled FileVault and was pleasantly surprised to discover that it not only does the encryption in the background, but it's fully compatible with Time Machine, and seems not to affect the perceived speed of the machine to any significant degree. Granted, I don't usually do any serious number-crunching on the Air, but the UI was totally responsive and apps launched as quickly as they had before.

The toning down of the gumdrop-like Aqua interface is a nice, subtle improvement. And now you can resize windows from any edge. Thank God. If there's one Mac UI restriction I hated, it was having to grow windows from the lower right corner. It will take some people a long time to get used to the scroll bars disappearing when not in use. I like it, myself. More content = less space wasted on UI chrome = good.

The improvements to Mail (especially sorting email message threads and eliminating all the unnecessary quotes from previous messages) are good but not revolutionary. The search functions are considerably better, but I would still like to be able to directly enter a search with Boolean logic, regular expressions, and the like. It is nice to be able to revert to the old-style interface when necessary, but I suspect I'll adapt to the new interface quickly enough.

The biggest win with Lion is being able to get Mac OS X Server as an add-on package for a mere $50. Not bad considering that until Wednesday, you had to pay $499 for an unlimited OS X Server license. You do have to download and install the Server Admin Tools package in order to get access to some of the lower-level servers, like DNS and DHCP. The new "Server" app provides a much better (although still imperfect) interface for the more application-level services like File Sharing and the QuickTime Streaming Server.

At some point I'll probably get a Mac Mini, equip it with OS X Server, and use it in my house as a "master" server for managing my home machines, providing a central location for Time Machine backups, and perhaps for serving iTunes content, rather than relying on my iMac for that task.

I haven't yet used any apps that take advantage of the new document versioning and auto-save functions, but I expect those to be a huge boon.

Bunts

The deprecation of Spaces in favor of Mission Control is a mixed bag. MC groups windows by application, which can be hugely useful, but having the virtual desktops confined to a single, circular horizontal band is not. Navigating by using a CTRL-Arrow key became a lot less useful. On the other hand, MC does make it possible to click directly on a particular desktop. I have yet to see how well MC will work on a desktop machine without a trackpad. I'm not about to give up my mouse in favor of a trackpad. The MC gestures work very well indeed on a MacBook, though.

That being said, the reversed scrolling direction for trackpad gestures takes some getting used to. I was on the verge of changing it back to the original settings but decided to stick with it to see if I could get used to it. Eventually I did, but I won't pretend the transition was an easy one. Is it worth it? I use iPhones and iPads all the time, and it's nice to have a consistent mechanism for scrolling across all the platforms, so I'd have to say yes.

I have yet to make up my mind about the changes to the Finder, especially the reorganization of the sidebar and the new "All My Files" view. It seems sorta-kinda useful.

Misses

The Dock has always been a clunky tool, especially for launching apps. The iPad-like app launcher in Lion was not an improvement. If you have a dozen apps, it might be useful. I have hundreds, and sorting all those icons into some semblance of order is a gigantic pain in the ass. Many of the apps shouldn't even be there. I don't need to see the myriad uninstallers from Adobe applications in LaunchPad—ever.

There should be a System Preferences panel for reordering the icons, similar to the App pane in iTunes which lets you move app icons around and group them by folders for iPhone and iPad devices. And REMOVE them without uninstalling the app. Until such a tool arrives I doubt I'll use this feature. It might be useful on my MacBook Air, but the size of the icons on the 27" iMac is insane.

I don't understand why the Find File command in the Finder is still so primitive. Why, if there is a metadata index of all the files on my machine, can't I use complex search terms like regular expressions? At least give the advanced user an advanced search mode. As it is I have to use "mdfind" in a shell more often than not, especially when I have to search paths that the Finder will not let me search, like Library directories. Irritating.

The worst omission is an upgrade to the decrepit HFS+ file system. I understand the need for backward compatibility and ease of upgrading, but holy crow, with the exception of journal files, HFS+ is an ancient relic. Regular users don't know what they're missing by depending on an antique file system, but system administrators sure do.

New filesystems have been developed for other operating systems that provide vastly greater functionality, resiliency, speed and convenience. It's still impossible to pool storage from external drives a la LVM or ZFS. Speaking of which, ZFS is nowhere to be seen. It would have been AWESOME to have ZFS, which supports massive volumes, pooling, automatic snapshots, and more. But ZFS succumbed to the patent battle between Sun and NetApp, and appears to have been drowned in the river like an unwanted cat. Depressing.

Conclusion

Don't get me wrong: warts and all, the Lion upgrade is absolutely worth $30. The best features are yet to be fully realized. When xCode 4.2 apps finally ship, apps will suddenly become much more stable and less prone to memory leaks (by virtue of the compiler level optimization of managing object reference counts). iCloud has yet to fully materialize, and I am sure it will become second nature to rely on it. Mission Control doesn't seem fully baked, but I think it will mature into a tremendously useful tool for managing app windows. And resizing windows from any edge? Priceless.

Thumbs up!

9 comments:

J Greely said...

I've got it on a test machine, and while the iPadification isn't as bad as I feared, they really need to tone it down. "Oooh, let me reopen every application you had running at shutdown, and then have them all reopen the documents you were looking at. Won't your co-workers be impressed!" (yes, I warned Doug...)

The fact that the reopen-all-documents thing is a system-wide preference rather than a per-app one is incredibly dumb. I predict that no serious application will implement that one, even if they get on board with the rest of the auto-save/lock/version stuff (which, because HFS+ is crap, is just a SQLite DB that's liable to get out of sync over time).

It'll be at least a month before I consider upgrading my real machine; I have to transfer all of the remaining incompatible apps to my old Intel Mini that isn't Lion-able, wait for a bunch of software updates (including the inevitable patches from Apple), and then run the usual three full backups. Or just buy one of the new Airs now that they have something better than wireless for moving data in and out.

-j

Jeff Kirk said...

I'm neutral on the document/window reopening after shutdown and startup issue. I know that a lot of people really like having their previous work state restored after quitting and restarting the app. It's been implemented as an application-specific feature in Firefox, BBEdit, and a bunch of other apps. It doesn't bother me if all apps inherit that behavior.

I think you're wrong about the likelihood of adoption of document window persistence. I doubt that the fact that HFS+ is crap is going to sway anyone away from implementing it, especially as it's an intrinsic feature of the NSDocument model in Lion. HFS+ may well be crap but it's the only game in town for OS X, and every other native filesystem operation developers rely on uses HFS+. As the saying goes, "There's no use complaining about the air when it's the only thing to breathe."

So far I've only encountered a few apps that were incompatible with Lion: Chicken of the VNC (which is easily replaced) and some ancient graphics programs I never use (indeed, had forgotten I had).

The new MacBook Airs are pretty snazzy, but you'd still need a Thunderbolt Display or some other means of getting to that gigabit ethernet if you don't want to rely on wireless or a USB/Ethernet adapter (which is available for the older MBA as well). Or does someone make a standalone Thunderbolt-to-gig-E connector?

J Greely said...

I think the combination of auto-reopen-all and auto-save is something that can add a lot of overhead both to startup time and customer support for serious applications; it just violates the expectations of existing customers, and the newbie-friendly nature of it won't affect the sort of people who are their current customers. Except for Excel; the people who do nothing with their lives except spreadsheets will like the auto-reopen-all, and will likely be rescued by auto-save more often than they're burned by it.

No standalone Thunderbolt-to-GigE yet (just the Apple monitor and the third-party desktop RAID array), but it's got to be coming soon, and Thunderbolt supports Target Disk Mode, which is a major win.

-j

Jeff Kirk said...

The "resume after quitting apps" behavior is a global preference you can disable in the General pref in System Preferences. Simply uncheck "Restore windows when quitting and re-opening apps".

I vaguely remember having been able to disable the "reopen apps and windows when I log back in" feature, too, but it appears that it's a session-by-session option that becomes visible only when logging out. (I could swear I was prompted to make this change permanent at one point, but I can't remember how that happened. I love getting older.)

I do take issue with the notion that "serious" apps won't restore the previous windows and palettes and open documents, however. I can't tell you how many times I wished that Adobe Photoshop and Illustrator actually did this properly. I always wind up having to reopen a bunch of palettes and position them correctly, especially in CS5, and that's time I'd rather spend working on something.

Autosave is totally unobtrusive. I can't imagine how you'd get burned by it, considering that you can revert part or all of a document that's been autosaved to its former state. The UI they've devised for doing this is dead simple. I wish it were possible to "tag" a version and revert to it by name, though. A bit more sophistication for the high-end users would be appreciated.

J Greely said...

Oh, I found the setting for "don't restore windows" right away; I just think it's stupid for it to be global with no per-app override, especially when your last session may have involved documents located on file servers, or similar issues. Does the app hang while waiting for a server to mount? Safari won't hang while trying to open an unavailable page, but other apps may have "interesting" failure modes.

As for Photoshop, I frequently use it for single-shot edits to images that I'll never load again. If it's going to save state for me, I want it to be a specific, chosen state, not "that Amazon screenshot you cropped, resized, converted to GIF, uploaded to your blog, and then deleted".

Autosave works well for some applications. I would absolutely hate it in, say, Preview, or any other application where you frequently want to view a document rather than edit it. Or any application where you make speculative edits that you may change your mind about in the middle of the session. Instead of quitting without saving, you'd have to explicitly revert, and the speculative change will still be preserved on disk as a recent version (something with potential legal consequences on a work computer...).

-j

Jeff Kirk said...

You have to explicitly save a file in order for the version tracking to work. You're not in any danger of having a bucketload of "Untitled" files filling up your hard drive.

BBEdit implemented window restore code quite a long time ago. If its behavior is consistent with what we can expect from Apple's NSDocument autosave code, you'll be prompted to reconnect to any servers to which you don't already have an open connection. If you opt not to open the server connection, the relevant document(s) don't get opened, and the app won't retry to open them the next time you quit and restart.

All of this fooferaw can be avoided by the simple expedient of closing the document window before quitting the app. It took me about eight seconds to get used to this behavior with BBEdit; I don't think it will pose users any real problems, regardless of their level of sophistication. After all, what's happening is bloody obvious.

The app doesn't just stupidly keep saving unchanged copies of the file at hourly intervals; you have to have made a change for a version to be saved, and you can always commit a version by selecting the "Save a Version" command that replaces the "Save" command. Further, the application developer has to have adopted the NSDocument framework for this to work at all; the behavior is not inherited by app vendors that don't use it. I doubt there's much danger that Adobe will be adopting it, given the glacial pace with which they adopt new technologies from Apple.

My biggest problem with Autosave is that it's implemented in a very primitive fashion. The restore interface is like "Time Machine", which is quite clumsy. You can't tag specific versions, and there's no branching. It's just a strict linear progression of versions. At least the underpinning mechanism saves the changes as diffs rather than an endless progression of full versions. I can always use git or svn or whatever. Still, primitive revision control is better than no revision control.

J Greely said...

I'm not worried about a disk full of "untitled1" through "untitled20", I'm thinking of "accidentally-modified PDF manual", "inadvertently-cropped image", "spreadsheet that had focus when I thought I was in another window", etc. Instead of getting "do you want to save" when you close, now it's "oh, it's fucked up and I need to restore the version from a week ago". Preview is really bad for this; I've lost track of the number of times I've somehow modified a document in Preview and had to say "don't save".

Amusing note: when "restore windows" is on, Terminal saves at least part of your scrollback buffer so it can show it grayed-out when it restores your session. I almost approve, until I think about using a machine for both business and personal stuff.

One small-but-useful discovery: the reopen-all-apps checkbox has focus, so hitting Space then Return disables it and proceeds with the shutdown/restart. They still need a preference to disable it, but someone managed to sneak a workaround in.

-j

J Greely said...

From a comment at Macintouch, this is exactly the kind of thing I'm talking about with autosave:

"I had scanned four sets of double-sided documents (into PDF) with my ScanSnap. In Preview, I wanted to create a new document with one double-side page from each of the PDF files. Previously, I would just start grabbing the pages I wanted from the other docs and drag/drop them into the first existing doc, and then "Save As" to a new document. But AutoSave --like an elephant -- trampled all over that. I ended up with three eviscerated documents and one with pages all a-scatter."

Jeff Kirk said...

Ah yes, I see what you mean. Clearly there will be a few issues to iron out.