By: RichardC (tich.delete@this.pobox.com), May 17, 2013 7:49 am
Room: Moderated Discussions
Ricardo B (ricardo.b.delete@this.xxxxx.xx) on May 16, 2013 2:12 pm wrote:
> In general, no finite amount of best practices guarantees a bug free design.
> Be it multi-threaded software, single threaded software, hardware or a bridge.
> So, there is no lesson to learn there about multi-threaded
> software, except that it's no easier than anything else.
Bridge failures are extremely rare these days. The various kinds of bridge design,
and their failure modes, are well understood from decades of experience;
architects and structural engineers and civil engineers go through a long
training and a testing/qualification process; and a large safety factor is
built into designs. When there *is* a bridge failure, it usually turns out
to be the result of either a radically new design which is not well understood
(Tacoma Narrows, box-girder bridges), or operating well outside the design
spec (excessive loads, inadequate maintenance).
The current state of software development is in no way comparable to that
of civil engineering. My guess would be that 95% of multi-threaded software
is pretty badly broken (e.g. occasionally freezes or crashes); how many bridges
are broken in the USA ? Maybe 0.05% ?
> In general, no finite amount of best practices guarantees a bug free design.
> Be it multi-threaded software, single threaded software, hardware or a bridge.
> So, there is no lesson to learn there about multi-threaded
> software, except that it's no easier than anything else.
Bridge failures are extremely rare these days. The various kinds of bridge design,
and their failure modes, are well understood from decades of experience;
architects and structural engineers and civil engineers go through a long
training and a testing/qualification process; and a large safety factor is
built into designs. When there *is* a bridge failure, it usually turns out
to be the result of either a radically new design which is not well understood
(Tacoma Narrows, box-girder bridges), or operating well outside the design
spec (excessive loads, inadequate maintenance).
The current state of software development is in no way comparable to that
of civil engineering. My guess would be that 95% of multi-threaded software
is pretty badly broken (e.g. occasionally freezes or crashes); how many bridges
are broken in the USA ? Maybe 0.05% ?