How does Dropbox work? Is it just an FTP client with an easy-to-use web interface and support for many plarforms?
What makes it so useful to programmers, even for those who are working on web-based applications and who have FTP access to a server by default?
Does Dropbox come with an improved algorithm to facilitate file transfer for a better speed? What is the difference between an FTP client and Dropbox from a programmer's point of view?
FTP is just a way of copying files. And copying is not the same as synchronizing, which I believe is Dropbox's biggest strength.
Dropbox is a multiway synchronization system. This means if you are using your Dropbox account on many machines and editing different files on each machine, they will all be synchronised appropriately. With FTP you would have to delicately pick and choose which files need to be removed or added from each client to the server.
Another main difference is that synchronisation happens automatically whenever a file changes, which FTP does not do.
In terms of algorithms, I would guess that Dropbox uses file deltas for file transfer, which makes it much more efficient than FTP. This means only the parts of the file that changed are transferred instead of transferring the entire file every time it changes (see rsync).
I believe you are only asking about Dropbox's core functionality. Beyond that, Dropbox has lots of cool features that FTP does not like some revision control, photo gallery sharing, etc.