Some people argued that making a general file manager application was “easy” and the author of fman had spent way too much time making such a simple app.
Wrong! Anyone who goes to make a tool as general and versatile as a file manager deserves huge respect.
Doing a UI prototype for two pane file list that lets you browse files is EASY. Making a file manager that actually helps you manage files is HARD.
Let’s see what needs to be considered when we try to COPY A FILE:
- All filesystems
- All OS versions
- Network volumes
Filename length limits
Special character encoding
- Handle and report errors
- Detailed progress indicator
- Estimate remaining time
- Interactive options to overwrite/skip/ duplicates
- Hard links
- Correctly copy attributes, even when support varies between src/destination
- Sparse files
- Special files such as /dev/zero
- Block size (20 byte file can use 4KB of disk space)
- Optimize for SSD/HDD
- Optimize for same-volume and cross-volume, cross-device copies
All this must work 100% of the time, on 100% systems, otherwise someone is going to lose their data.
I don’t even know if fman actually takes care of all that, but my point is that I can imagine one could easily spend a good portion of development making JUST THIS and I would consider it a great achievement if it actually worked.
See also: The Door Problem