A technical explanation for the bystanders.
“NomasPrime” suggests that transactional rollback for every operation isn’t that hard, and posits PostgreSQL rollbacks as an example. This is perfectly true, and as shown elsewhere in this discussion, “NomasPrime” has some technical knowledge.
Some systems absolutely require transactional integrity. That is, if an operation fails, it leaves the system unchanged, and if it succeeds, every part of the transaction is performed. For example, if you tell your bank "transfer $100 from savings to checking”, one of two things is absolutely guaranteed to happen.
- Either $100 is deducted from savings and added to checking, OR
- Nothing is deducted or added to either account, and the transaction reports FAILURE.
This guarantee matters a lot to the bank, which may need to process thousands or millions of transactions a day. On that scale, all sorts of bizarre things might happen. Power failures. Cosmic rays. Wild and crazy stuff that happens one time in a million — that’s going to happen every day.
The problem is that, even for very simple tasks like adding and subtracting numbers from account balances, transactional processing is difficult and (in consequence) slow. Every introduction to transactional processing I’ve seen begins with a warning: you don’t want to do this if you don’t absolutely need it.
Now, you folks all know intuitively about the cost of the transactional guarantee. Every time you use an ATM, there’s a huge delay while it hits the database. Every time you order an airline ticket, there’s a huge delay while it hits SABRE for the ticket and the bank for your payment. (I assume that the ordering site has a third transactional system that holds they pending payment and the pending ticket, so that if one transaction fails it can reverse the other, because otherwise Orbitz would wind up holding a portfolio of airplane tickets for which payment failed, and a pile of cash it received for plane tickets that someone else snapped up a moment before. Interesting problem!)
Anyway, you can live with that because (a) you can’t live without the bank and if the bank says, “wait”, what can you do? and (b) you already went to the ATM, so what’s another few seconds? You can’t live with that every time you click a mouse. No one can.
Sure, we could do more of this by doing less. Map view? Immense complexity, in support of things like those nice curved links with editable splines, editable anchors, editable and repositionable labels. Make that a thousand times slower: you can’t do anything.
So, that’s what this discussion was about. I don’t want to assume bad faith here, because there might be some language issues, and misunderstanding is always possible. But this is not helping anything.