You said, Just use databases and transactions. Fixed! This was in response to a post suggesting that programmers need to learn to deal with concurrency.

The problem is that this is not enough in real applications! You can wave the magic wand of databases and transactions, but you haven't replaced the need to understand how transactions work.

And, contrary to what you claim, it is stupid to just say, "OK, so now we need concurrency experts." It is easier to understand concurrency issues than it is to learn a new application. Therefore if concurrency matters, it is more efficient to make sure that your programmers understand concurrency than it is to try to hire an expert after the fact to solve the problem. This goes doubly because bad application design can easily make scalability impossible, and programmers who do not understand concurrency issues have no idea when they are taking a dangerous path.

Put another way, it can be faster and cheaper to hire competent people in the first place than it is to hire incompetents then hire competent people to fix the crap that the incompetents produce.

Regards,
Ben