Learnings from 3,000 hours of creating a desktop app with PyQt

Doing a UI prototype for two pane file list that lets you browse files is EASY. Making a file manager is HARD.

Let's try to COPY A FILE from one place to another:

  • Cross-platform
  • Works on all filesystems, OS versions
  • Network volumes
  • Optimize for SSD/HDD
  • Optimize for same-volume and cross-volume, cross-device copies
  • Handle and report errors
  • Detailed progress indicator
  • Estimate remaining time
  • Pause/resume
  • Interactive options to overwrite/skip/ duplicates
  • Symlinks
  • Hard links
  • Allow parallel copy operations but don't hammer the same drive (HDD)
  • Correctly copy attributes, even when support varies between src/destination
  • Sparse files
  • Special files such as /dev/zero
  • Channels
  • Handle FS compression & encryption
  • Sandboxing (macOS)

I don't even know if fman takes care of all that, but my point is that I can imagine one could easily spend 10% of that time making JUST THIS and I would consider it a great achievement if it actually worked.

/r/programming Thread Parent Link - blog.qt.io