iTunes needs to be razed and rebuilt from first principles.
Because it's the thin edge of the Apple wedge, it's been tasked with carrying a lot of completely unrelated functionality that has been added, partly removed, combined with other ideas, compromised and stirred.
iTunes is a holiday dinner for the Apple family. None of the functions really have anything in common with the others, nor do they particularly want to be there, but they all share a common patriarch.
iTunes manages, in one way or another:
- Music
- Movies
- Books
- iOS applications
- Photos
- Media store
- Ringtones
- Podcasts
- iOS app store
- Multi-device rental management
- University course videos, handouts, slides, etc.
- TV shows and subscriptions
- Internet radio streams
- all aspects of Apple's cloud music initiative
- iTunes connect and developer services
- Contacts and calendars
- iOS device management (backup, update, carrier settings, device unlocking)
- Audiobooks (which apparently aren't books but also aren't music)
- Music videos (which apparently aren't music but also aren't video)
- iOS file transfers
- music library sharing over LAN
- etc, etc, etc...
- iOS device synchronization
Some of these things it manages the database and sync functions for, some it just manages sync and the database is somewhere else, and some used to be managed locally and are now managed outside. There's not a lot of rhyme or reason to which is handled how.
For me, the single most important function of iTunes is to sync my devices from my desktop-- and it is the most frustrating. Every time I travel, I either need to start preparing my devices a week in advance to ensure I've had time to get the content installed that I want, or I head out the door with half of my applications grayed out because the system thinks they're still being installed and a random subset of my desired movies and music.
"1200 items couldn't be installed." Sync. "1080 items couldn't be installed.' Sync. "957 items couldn't be installed". Sync. "743 items couldn't be installed." Why do I have to keep pushing that button? The whole reason man invented software was to automate repetitive tasks. I get it, I'm tight on space-- do the best you can. It's crazy that doing the same thing over and over keeps making incremental progress though.
Music management is a nightmare. The "compilation" flag is the most confounding thing I've ever seen. Most of my library is ripped lossless and transcoded to AAC on sync and there are a handful of songs that play fine on the Mac but refuse to transcode. I can not, for the life of me, figure out what all the various meta data tags do or how they control the organization of music files, I just know getting all the right songs in their proper albums listed under the proper artist is an endurance sport. When I change metadata, it won't get sync'd across until I delete the item from the iOS device and then resync (haven't actually tried this for a while, I'm now in the habit of waiting until I have enough changes to justify the effort and then remove all my music, make the changes, and then sync)
They removed the "rebuild library" option, presumably because it made what should be a mature piece of software look fragile, but that also means that when this fragile piece of software loses it's mind I have to go through some gymnastics to recreate my library.
And then there's the UI, which I find absurd. The iPod was wonderful: Artist->Album->Song. iTunes has some weird mode-centric interface. Sometimes there's a sidebar, sometimes there's not. Sometimes I can pick from a drop down and go to Music or Videos, sometimes I can't until I say "done". If I'm trying to go back and forth between an iOS device and my library to compare, I can't leave anything half done, I need to either throw away my changes or apply them. There's a half dozen places I need to look for options that control the visibility and format of controls and information in various views. When I attach a new device, it puts it in one place in the device list (which pops out from a button for some reason) and then it reorders the list when the connection is complete. The UI refers to "checked items" in various places, but there isn't a check box to be found in the music listings-- we need to figure out that black means checked and dark grey means not checked. Half of my artists have random portraits that I didn't and can't choose, and half have a pink microphone that I can't replace. The info pane is modal, so I can't open it and then select different songs to compare.
Video and TV management is even worse, particularly when selecting what to sync to an iOS device. Scrolling panes within scrolling panes that are all too small and fidgety to really be able to manage more than a dozen items or so. Mixing personal content with purchased content is awkward, and there's no way of organizing beyond one big long list of movies. The number of times I've rented movies and then had them disappear is particularly frustrating. I don't know if it's because of a failed sync and the DRM handoff goes wrong or what, but I can't re-rent it because iTunes Store thinks I've already got it, but I also can't watch it. I either need to find time to deal with Apple support on my way to the airport or wait 30 days to rent it again.
And then, of course, is the sadistic iOS app management functions that take all the joy out of having bought more than a couple dozen apps. It's just a dump of all the .ipa files I have on the system, but no way of learning more about what the app is, how old it is, what the full name is if it's more than the few characters that fit in the list, what the App Store description is or anything else.
Any error messages are presented in a box too narrow to read which would be more of a problem if the messages made much sense to begin with. Same with the messages that give status of a sync: "waiting for changes to be applied"?
I miss the simpler days of "Rip. Mix. Burn."
Give every database it's own manager app (Photos, Music, Videos, Books, Contacts, Calendar, App Store etc) and then give iOS devices a central point of contact specifically for synchronization.