Here's a little more background on the various generations of the FTP protocol.
First Generation (1971-1980)
The original specification for FTP (RFC 114) was published in 1971 by Abhay Bhushan of MIT. This standard introduced down many concepts and conventions that survive to this day including:
ASCII vs. "binary" transfers,
Username authentication (passwords were "elaborate" and "not suggested" at this stage) ,
"Retrieve", "Store", "Append", "Delete" and "Rename" commands,
Partial and resumable file transfer ,
A protocol "designed to be extendable",
Two separate channels: one for "control information", the other for "data", and
Unresolved character translation and blocking factor issues
Second Generation (1980-1997)
The second generation of FTP (RFC 765) was rolled out in 1980 by Jon Postel of ITI. This standard retired RFC 114 and introduced more concepts and conventions that survive to this day, including:
A formal architecture for separate client/server functions and two separate channels,
Site-to-site transfers,
Passive (a.k.a. "firewall friendly") transfer mode
and The 3-digits-followed-by-text command response convention. ...and RFC 765 was replaced by RFC 959 (which formalized directory navigation) in 1985.
Third Generation (1997-current)
The third and current generation of FTP was a reaction to two technologies that RFC 959 did not address: SSL/TLS and IPv6.
Most FTP software now conforms to RFC 2228 for FTPS. Oddly enough, there are still a LOT of file transfer packages that still don't have IPv6 or EPSV support. The RFCs beyond IPv6 and EPSV support are pretty well baked, so if you're still dealing with a vendor without those attributes, consider that a big red flag.
Also keep an eye on draft-ietf-ftpext2-hash and draft-peterson-streamlined-ftp-command-extensions - that's where the action is in FTP today.