|
|
|
|
|
by rectang
1891 days ago
|
|
How much better have we gotten at specifying protocols? Have we learned how to make protocols less ambiguous and less susceptible to crazy edge cases which make it burdensome to implement support in practice once there are lots of sloppy implementations in the field? |
|
2. The FTP protocol got a lot of cruft added to it that modern clients don't implement (e.g. any transfer mode other than stream).
3. FTP over TCP predates NATs and firewalls, which caused a lot of problems as well.
4. FTP was designed for human-readable, not machine-readable output. In particular the output of a LIST command is woefully underspecified.
I think #1 is the biggest issue for long-term viability of protocols. Not following Postel's law is a recipe for death (same reason why it's suicide for a browser to unilaterally untrust a major CA; any site that doesn't work in browser X is assumed to be browser X's fault), but following Postel's law is a recipe for undocumented de-facto standards with crazy edge cases.