Prior to that we used proprietary RAID hardware that, while fast, did not have checksumming and was frankly a nightmare to manage.
If I had it to do over, I'd choose ZFS again.
ZFS works well for basic data storage and snapshots, but the deduplication has a ton of overhead and is extremely slow on hard drives. And there is no way to make a plain copy-on-write copy of a file without using the full deduplication mode.
I haven't tried either on windows directly, I've accessed them as a file share via a VM.
ZFS is more stable, has the downside of not allowing expansion of volumes, and has the issue of not being upstreamed.
BTRfs has the option to expand volumes, is native to Linux, but has a wiff of unstability. Most notably with the persisting raid 5 write hole.
I haven't found a good choice yet. Though I think I'd go btrfs at the moment.
What it doesn’t allow is for raid sets to be expanded by replacing with larger disks one at a time. This can however be done with mirrored sets. Add new larger discs to the mirror set, wait for resilvering, remove older smaller discs, done.
0.8 will also bring the ability to remove vdevs so effectively shrink a pool through a similar (but slightly different) process.
(Unless this is a change that will be brought about in 0.8, I haven’t followed that closely).
No longer true. I’ve expanded volumes on Ubuntu with ZoL.
I imagine either should work fine over SAMBA (if that's what you have in mind for Windows). I know there's some work being done to get ZFS working on Windows, and I don't believe there's anything of the sort for btrfs.