Originally Posted by VL-Tone
iTunes works very well to manage a media library even when you're not connected to the internet.
You must be talking about the iTunes Store.
Even with a small library, on an old/cheap computer the interface would be slow as molasses if it was running entirely in WebKit.
Originally Posted by al_bundy
I think the rest is just a bunch of XML files that tell it where the files are on the file system and what is in which playlists. They could probably use a lite version of mysql and get better performance than XML files
A few years back (2004) I wanted to access my home iTunes Library (10,000+ songs) from a remote laptop, so I wrote the equivalent of iTunes as a Web app using ColdFusion. ColdFusion is a high-level web application programming language where programs you write are compiled to Java ByteCode, then run on the Java ByteCode Interpreter.
I ran this on the same iMac G5 2GHz 2Gig RAM that held the iTunes library on an external FireWire drive. So, the iMac was both client and server (for testing). I used Apache as the Web Server.
So, it worked like this:
1) Startup Web Server and ColdFusion environment
2) Startup My iTunes equivalent web app
3) Read iTunes Library XML and parse the needed data into a ColdFusion Table (a 2D array in RAM}
4) Wait for web page request from client
5) Client requested initial page
6) Apache/ColdFusion served Initial Page
8) Server received data request, queried RAM array (similar to an SQL Query), and returned data through Web Service
11) most data requests to the server involved several hundred records or less & were displayed in a few seconds.
This all worked rather well except, for step 3, parsing the XML on the Server (took about 1 minute) and the initial data request through the web service about 250 bytes x 10,000 songs.
The web service did not pass an XML file as this would have been too verbose and too slow.
By comparison, these client-server data requests took significantly less time than comparable requests to the iTunes Store using Apple's iTunes desktop client communicating with iTunes servers.
So, aside from the 2 performance hits mentioned* it is quite possible to do iTunes as a web app or a Widget.
* Both of these could be resolved.
That said, I don't think Apple will go that way.
I suspect that Apple has an internal development environment for Windows (and maybe Linux) that is very similar to the Mac and iPhone SDKs. In this environment, say, windows, apps like Safari, QuickTime or iTunes use familiar Mac OS X APIs and Frameworks, but different runtime systems (that interface the specific platform).
The fact that these apps have [mostly] web-like UIs, facilitates porting them to other platforms.