In addition to what I said in my last post, I think iRATE should drop the use of external players. Yes, I realize this may be very hard in Javaland, but it would allow easier intergration of the player system into the UI.
Also, the use of BitTorrent would also be nice. It could be used to take a load off the download servers. Though, it would be an optional external dependancy.
Also, I think it should be downloading using a different metric. The only two acceptable ways I can think of are "Download files until X files havent been listened to yet" and "Download files until X files are unrated". People could just set it to some really high number, and run the client overnight.
The last thing is somewhat of a requirement. _RESUMING OF DOWNLOADS_. Im on dialup, so I'd rather not waste time restarting a download at 90%. If you add one thing I've asked for, it has to be this. ;)
Also, similiar in nature, I want to be able to rate partially downloaded files. Since I just started using it, I tend to get files that I rate "this sux". Why should I have to download the whole thing if it sucks? This would, of course, require the ability to play partially downloaded files.
In addition to _all_ of this, it would also be nice to have a simple download speed/eta meter like most downloading apps have.
And theres more! iRATE currently doesnt try to do simple file size validating to see if the file was correctly downloaded. This will be needed to be added.
(Yes, I know, its a long list.)
The set of koans mrorganic pointed out are very good. This should be manditory reading by soon-to-be hackers. esr is a very smart man, but I have to admit, this is one of the better things he has written. (Not that his other stuff was bad, or anything.)