@David Hicks: Threading isn't hard
- and others of that opinion.
My experience of threading is limited to two cases. One was my own work which despite being a simple (almost trivial) server, scrupulously thought through, very carefully implemented and well tested, turned out to have a race condition.
The second is even less pretty - debugging someone else's race condition. Three solid weeks trying to reliably reproduce it. Which I finally did. And fixed it. And it turned out to be *a* race condition... not the one that was causing grief... I wept.
My conclusions are that, if I can snafu my own threading despite great care then it's systemically hard enough to worry me. The second is that, to many, if it doesn't seem to have a race condition then it's good enough to ship. Someone else can pick up the pieces. I suspect this is the majority case.
I'll stick my anonymous neck out and say that perhaps declarative statements of required behavior are required, not TM/semaphores/whatever. Seriously high-level specifications, which may compile down to whatever is best. TM is like semaphores/mutexes etc. It's just a detail.
But that's IMO only.
- Product round-up Ten excellent FREE PC apps to brighten your Windows
- Review Tough Banana Pi: a Raspberry Pi for colour-blind diehards
- Product round-up Ten Mac freeware apps for your new Apple baby
- Analysis Pity the poor Windows developer: The tools for desktop development are in disarray
- Chromecast video on UK, Euro TVs hertz so badly it makes us judder – but Google 'won't fix'