Pete Nuttall rants about how online shopping sucks. I agree that it has problems, but the core ones are perhaps not the problems he identified.

Pete argues that while "in a real shop, you hand them their goods and they carry it away", fulfilling an order is much harder for online retailers. It is, but it can also be much easier for a shopper, especially if you want to buy something not available locally. But a real benefit of online shopping is that delivery happens asynchronously; that you don't have to hand the customer their product on their way out the door. This lets my sister find native plants on her property, put them up for sale, and only dig them up when she gets an order. It lets Cafe press and many smaller outfits create customised products on demand. It lets me shop at 2 am. Asynchronousity is good.

Pete thinks that needing to have a paypal account is a problem, comparing it to needing to open a new bank account to make a purchase. Of course, this ignores the fact that once you get the account, you won't want to buy from many online merchants who don't accept paypal. As someone who's worked on credit card processing backends for random online merchants, I know that I don't want to give my credit card account to a random merchant if I can avoid it. This, coupled with the ease of use of not needing to enter all my purchase information every time, means I'll chose a merchant who accepts paypal over one who doesn't, nearly every time.

The real problem is that both online shopping and payment promote centralisation. There's a pull toward centralising as much shopping as possible in one mega-site, because customers come to trust that site, and understand how it works. That's why there is only one amazon, and only one ebay (effectively). Handling payment is even more centralised, with just a few credit card companies and paypal.

And I think that the problem underlying that is that our model of payment is all wrong. It's based on money immediately changing hands, with an overlay of a promise of payment; it should instead be based simply on a binding promise of payment. A merchant expects to get money transfered to their account as soon as the credit card processing goes through. That money really comes from the credit card company, based on a customer's promise that they will pay back that credit. The customer indicates this promise in the most stupid way possible: By entering a sequence of numbers that only they are supposed to know, but that is not unique to that purchase.

As I've said before, it should be technically possible to kick out the credit card middlemen, and make payment much simpler and secure by changing the buyer's promise of payment into a legally binding, unique, cryprographically signed message that's sent directly to the merchant. But for this to happen, we'd have to change the model of payment, so that merchants don't expect to get money immediately, but instead asynchronously (the same as they ship things out asynchronously). Even harder, we'd have to somehow interest companies in supporting that. Since companies almost always prefer making money by promoting centralised systems, I don't have much hope of this happening anytime soon.