I may be an exception, but I listen to my music exclusively by leaving my iPod (and iTunes, for that matter) on random play, set to shuffle by album not track. I don't use playlists (I find the process of making a playlist quite traumatic, actually). Before iTunes I used to listen to CDs by pulling out albums and moving between them as the mood took me, and as albums which had lain unlistened to for a while caught my eye.
Actually, iPod/iTunes does a fairly good job of emulating this. It often makes interesting jumps from one album to the next, where the second album is often a really good match and I find myself thinking that iTunes/iPod has just made a 'good choice'. Obviously, I'm assigning a high degree of agency to my iPod here, and it's not really making subjective choices, but whatever algorithim it's using is well-enough crafted to have me fooled.
But whatever algorithim it is, I can't tweak it. I can't make it want to play stuff it's never played before more than it wants to play Weezer (my iTunes really likes Weezer, but doesn't like Squarepusher) (there I go with the anthropomorphism again) (I should also point out that I really like Weezer, but I also really like Squarepusher) (too much parenthesising).
Look, there's a few things I ought to be able to do with this kit of mine. I ought to be able to influence the random play algorithim. Smart playlists don't quite cut it. Although I can make a smart playlist which only includes things I haven't played for at least a week, and then use the standard random play feature to work my way through it, I'm not influencing the random play algorithim. Charitably, you might say that I was gaming the system, by reducing the number of choices it could select from.
While it's probably not totally practical to allow me to add new parameters to the mix, but I damn well ought to be able to change the weighting and priorities of the algorithim's parameters. We've already got a precedent in the smart playlist UI, and we have some nice spatial UI tricks we can call on: reordering a list isn't rocket science.
This is an endemic problem, this lack of access. If algorithims like this were properly parameterised, the developers could plug new values into them, and expose the mechanisms for changing them to the user. They probably are properly parameterised in most apps -- but the access isn't there.
I have this idea in my head that one of the big ideas about using Smalltalk at the core of the Xerox Star was providing access to whatever you had the capacity to fiddle with. If you wanted the stuff bad enough, it was there for you. I like the idea of adaptive software being accessible. The Applescript-level stuff is all well and good (very good, in fact), but the heavyweight adaptability that application scripting gives you has a corresponding heavyweight barrier to its widespread use - scripting an application is usually hard. Actually being able to go in and poke about in our apps is a really good thing. Even being able to tweak the toolbar in Finder windows is a step in the right direction.
I'm writing this post in BBEdit, which is a fantastically adaptive application at several levels. It has very good scripting support -- you can make BBEdit really dance and sing using Applescript. It also has very good surface adaptability, giving me options to change how it behaves when opening and creating files, and even what keystrokes are assigned to what commands. This last feature is an exemplar of how to do it right. If I reassign Apple-P from Print to, say, Preview in browser then not only does the app change this, but it reflects the change in its menus - Print will no longer say Apple-P next to it in the File menu. Contrast this with the MS Word approach, which allows keyboard customisation, but doesn't display your new keystroke assignments in the menus, and silently reserves certain keystrokes (try reassigning Shift-Apple-P from Project Gallery to Page Setup, I have -- it can't be done).
Anyway, bring on user-adaptive software. I'll stop rambling now.
Caveats: I wrote this piece before the Mac OS X 10.4 'Tiger' preview stuff, and while I'm sure that I'd want to modify my thoughts in the light of that, I also want a few days to ruminate on it.