The Panic programming team are basically two in number. They have one guy who sketches the user interfaces and another guy who does the programming.

The world of the Mac cries out for decent FTP clients. No other FTP client is even in the right ball park when it comes to design. Transmit is. The design might not knock you out, but it's the right design - it works.

The programming doesn't live up to the same standards, or to any reasonable expectations. Maybe it's the lack of having had to put code into production at major facilities, of having had to see what random user behaviour can do to a module, but Transmit is a wobbly house of cards ready to come crashing down at a moment's notice, and it's a crying shame.

Mustard Boy in action. Note the transfer speed at the far right.

Early editions of Transmit for OS X showed a peculiar propensity: you could create as many directories in 'your stuff' with the same name and Transmit would list them all. Rixstep reported the bug to Panic and Panic corrected it.

But that was only the beginning, and since then the list has grown too long, and Panic are all but interested in taking care of things.

Refreshes - they don't work on either side. The remote listings will more often be up to date because Transmit has to feed a request to its built-in NcFTP layer (they originally packaged the NcFTP executable inside their program; now they seem to licence the actual API). Exactly what local listings are dependent on is anyone's guess, but they don't work reliably.

Ghosted stats - listings of uploaded files are 'ghosted' with file sizes plucked not from the actual FTP transmission, but from Transmit's idea of what the local sizes are. As this data is mostly inaccurate, file sizes shown in the remote listing are wrong as well. But the worst is that this data does not represent feedback to the user: it is neither a report on the success of an upload nor data sent back by the remote server: it's only a file size fiddled over to the other side by the Panic programming contingent.

No filters - there's no way to selectively list and/or transfer files. It should be possible for an FTP client to only transfer HTML files or JPEG files or text files. Transmit cannot, and the time wasted if the program should be used professionally is significant.

'Follow along' - when Transmit begins a non-trivial recursive transfer, its views should follow along - dive down to subdirectories, hop back up, etc so the user can see what's happening. All Transmit offers are file names sans paths at the bottom and it's of little help.

Multithreaded - multithreaded apps are difficult to write because the threads have to be synchronised. But Transmit leaves the field wide open: you can do anything at any time, no matter what operations are pending. You can shoot yourself in the foot in ways heretofore unimaginable.

There are cosmetic bugs in this program as well. Minor inconsistencies and bloopers. Once upon a time there was hope this application would get its act together. Now, with all of nine (9) versions of the program for OS X, it's become obvious Panic simply can't cut it.

Transmit can't handle spaces in file names when trying to preserve time stamps; two side by side Transmit windows show the same directory with different contents, despite refreshes; and so forth. It's an endless list.

And then we have the 'crimes against Unix'. Evidently Panic couldn't quite grab what the Unix command 'mv' was doing - it was so unlike anything they'd ever experienced before on the Mac - and so they 'outlawed' it. Today you can't rename a remote file and overwrite an existing file - Transmit tells you it's an illegal operation. Things like this only make Panic look outright dumb where people previously might have withheld judgement.

The program gets one '@' because it's the only FTP client for the Mac designed correctly. If you decide to use it, be very careful. There are things in the multithreading that can throw you for a loop and destroy important files. Resist the temptation to click or do anything during a file transfer - Transmit is not out there protecting you as it should.