Jelle Druyts .NET Consultant
Just another ignorant weirdo from Antwerp, Belgium trying to make sense out of it all
With WinFS coming up, this one should be a breeze on the upcoming Windows platform (which will go unnamed for a change to further lessen that diabolic (but oh so just) hype): I would like to see FTP grow up (*). And by growing up I mean become more than a protocol to shake hands and throw bits at each other until you run out of ammo. I want to see it become (at least) transactional and secure.
"Transactional" because if you're using it to transfer a whole website (still one of the most widely used reasons to use FTP in the first place - apart from that "legal" form of "datasharing" any ignorant judge would call "piracy" of course), you want either the whole thing to succeed or fail. You don't want half of your site reflecting the fact that your company just went bankrupt while the other half is still pretending to be alive and kicking while throwing fast-climbing sales graphs in your face to prove that point. You also don't want to see any changes to your site halfway through the transmission, instead you want the whole batch to be committed in the end - when everything arrived safely and correctly. ACID baby, yeah.
"Secure" because right now, I just don't trust plain FTP. I don't use it at work to change my site for example. There are all kinds of initiatives to make FTP secure (like run it over SSL or in an SSH session) but I want this to be the default. Security is not an add-on anymore, it's not optional, it should just "be there", implicitly.
Of course this reaches beyond Windows into all platforms, but I'm just focusing on Windows now because, well, that's my personal bias. (I'd be interested in knowing how hard it would be to build this in penguin-land though.) The Windows built-in ftp.exe command is a great and simple tool I use regularly and it just seems so incredibly easy in WinFS to make it even better. With WinFS becoming a file system backed by a relational engine, it's intrinsic that you can use transactions. So at the start of your FTP command, you just call WinFS.BeginTransaction (so to speak) and do a WinFS.Commit() in the end. And with Indigo and its secure messaging features, why not use 'services' as a higher-level layer upon merely sending bits across the wire? Overhead? Sure! But I'd like to see you perform security, routing, and even transactions on the wire-level yourself without using Indigo. Don't want to? Keep it simple and unsafe? Good luck coming up with more fast-climbing sales graphs...
WinFS.BeginTransaction
WinFS.Commit()
(*) Actually, I would like to see the whole web grow up. Starting with the slashdot community No really, the current state of the web is like a badly designed medieval castle you just keep throwing bricks at to keep it from falling down. Browsers can't keep up with modern-day webapplication requirements like obvious state- and usermanagement (cookies and ASP.NET viewstate being obviously working but ugly hacks), emails still disappear from my inbox all too regularly or never get there at all, RSS still having no other central distribution mechanism than being pull in stead of push, TCP being a hard protocol because it tries to be reliable over an intrinsically unreliable IP-connection, ... So I'm not waiting for IPV6 really, I'd bet my money on TheWeb 2.0. (Yes, I am aware that this last remark isn't remotely realistic thank you very much. But it would be nice to have a band of modern-day architects design a whole new future-proof web though. If only for the kick of it.)