FTP clients are indispensable tools nowadays, especially for web developers. We use them to transfer all kinds of files, including documents, scripts, web pages between our home and office computers and data center servers. The first clients were CLI (Command Line Interface) based, which made them unsuitable for 90% of the people, who were unable or unwilling to learn all the commands that were needed to operate them (which were like a language in their own right, and how many of you want or have the time to learn a new language?).
Then the GUI (Graphical User Interface) versions were developed, which helped ftp clients get to the number 1 spot in the file transfer category, and they are still there today, even though more advanced web interfaces & protocols are slowly taking over.
The drawback of most of those clients was that they were not free. You had to pay a per-user license fee, which could sometimes mean tens of thousands of dollars spent for small businesses (the enterprise sector was already spending millions getting licenses or developing their own tools).
Everything changed when open-source software (which is basically free software, like Linux, of which most of you heard) became more widespread, big companies started supporting the movement and its quality & functionality started being on par or even higher than paid solutions. Suddenly everyone had access to a big list of FTP client software, and a lot of developers started working on their own projects.
There are now hundreds of working FTP clients available, most of them abandoned, but the best ones are still free and being constantly developed. A lot of former paid software is now becoming free, too, which means users have free access to tools which used to cost $30 and more per license.
Now that you know a little bit of the history behind FTP clients, it’s time to see which ones are the absolute best. After testing more than 20 popular clients, I selected Filezilla, Fireftp and Bitkinex as the best based on functionality, usability, stability, performance and price (or to be more precise, the lack of it). All three of them are free, so it costs you nothing to try them out.
Most of the old clients were single-threaded or supported a limited number of concurrent connections (and as all the clients today are based on old code, this major drawback still exists). Cuteftp, Easyftp and even Filezilla & Fireftp support a maximum of 10 concurrent connections.
How does this affect you, the user?
In a most direct way, I’m afraid: the number of concurrent connections stands for the number of files that can be transferred at the same time, and as most web masters know, a web site or web-based software can contain thousands and tens of thousands of files, which take a loooong time to upload, regardless of your Internet connection speed (imagine having a 50Mbit/s connection and waiting half an hour for your site to upload
.
Bitkinex is the only client I’ve seen that is free and supports up to 50 concurrent connections (though it used to cost $30 before 2009 and is not open source… yet).
Anyway, let’s get to the reviews:
First one up is Filezilla, which is the most popular cross-platform (runs on Linux, Windows and Mac OS), open-source FTP client. Everyone recommends it (and it is a good client), but it doesn’t differ much from other solutions (the only big difference is that it is open-source, which is very important, as all the bugs and security holes are found and removed fast, so it’s essentially trouble-free).

Unlike many other clients, it supports FTP over SSL/TLS (FTPS; essentially a simple FTP connection running through an encrypted channel) and SSH/SFTP (which is a totally different protocol that is used as a more secure method of connection; Filezilla uses the SFTP component from Putty, an utility which allows one to connect directly to a server and run any commands remotely).
It supports FXP transfers (direct transfers between 2 different FTP servers; without this, the file is first transferred to your computer, then to the other server, which limits the maximum speed to your internet connection speed), but it doesn’t support drag-n-drop from multiple instances of the program (useful when you want to easily copy a file from one ftp server to another), so it’s a little hard to copy or move files.
It has a nice feature called “Quickconnect” which stores all your previous connections information, so you don’t have to type the address, username and password every time you start the program. It is also sort of theme-able: you can change the icons used (not really a useful feature in a FTP client).
That’s about it for Filezilla, next up is Fireftp, which has become very popular in a short amount of time, and is quite a special case: it is an add-on for Mozilla Firefox (arguably the best browser available) which means it runs inside Firefox as a tab or new window.

I was quite impressed with it: it takes very little space, it seamlessly integrates with other web tasks (like administrating a website or a script) and it works without a glitch.
Functionality wise it’s is very similar to Filezilla, meaning it supports FTPS, SSH, 10 concurrent connections, multiple open connections, drag-n-drop, etc. It also has the Quickconnect feature and uses Putty’s SFTP implementation (which led me to believe it was created using Filezilla as a base).
Nothing else to say except that FireFTP is the best choice if you want a lightweight yet powerful FTP client.
Moving on, I’d like to present Bitkinex, the absolute best (in my opinion) free FTP/SSH client on the market. I’ve used it since 2007 and still haven’t found anything more powerful. Moreover, since the beginning of 2009, it is absolutely free (though I hope this doesn’t slow down or stop its development; I’d much rather pay $30 to use it and know for sure that they’ll make better versions in the future).

It is very similar to Filezilla and Fireftp, meaning it includes support for FTPS, SSH, Proxy and all other features that the other 2 have. In addition, it has support for http/https and WebDAV connections. What makes it really special is the excellent FXP support (direct server to server transfer), drag-n-drop functionality (you can do it between Windows Explorer and Bitkinex AND between 2 different FTP connections, which is very useful), the support for 50 simultaneous connections and a unique caching system which makes navigating directories much faster. It is very fast, using all of my available bandwidth (8Mbit/s download and 1Mb/s upload) at all times (even when uploading 20,000 files).
The interface is a little different from others, too. It has a main window with all your saved connections, and separate minimalistic windows for all your open server connections (kind of like Skype, MSN and other messengers). This is a very effective layout, as you can easily access all your sites and switch between them.
As a pleasant add-on, the resume/pause/restart functionality is very well implemented. You can close Bitkinex and shutdown your computer, and when you start the program again, it’ll ask what you want to do: resume, restart or cancel your transfers.
This is all I have to say about these 3 FTP clients individually. If I had to recommend any one of them for a particular purpose, I would say this: Bitkinex is the absolute champion in speed and usability, Fireftp is very lightweight, easy to install and use and gives you the least headache of all, and Filezilla is just a good all-around FTP client, with the advantage that it is open-source and is constantly developed.
But to really make a choice, you’ve got to try them out (they’re free, after all) and see which one you like the most.