Subject: Re: [boost] Boost and exceptions
From: Robert Ramey (ramey_at_[hidden])
Date: 2012-06-20 20:19:55
Nevin Liber wrote:
> On 20 June 2012 16:55, Robert Ramey <ramey_at_[hidden]> wrote:
>> After a fair amount of sleuthing, you track it down to a gratuitous
>> change to some other library whose behavior has changed without
>> you noticing. This is incredibly disheartening.
> Here's the *real* situation: Welcome to software development.
True - it's bad enough already - So let's agree not to make it worse
if we can avoid it.
To put it another way. Good practices will never totally eliminate
problems. But they have a HUGE positive effect. It would have
cost almost nothing to avoid this situation.
> It's the nature of the beast. The spectrum is from putting up with a
> little pain every time something about your environment changes to
> locking everything down so you have no external dependencies.
> The alternative is stagnation. Every change has the potential to
> break something.
I see these and simlar arguments as variants of
"It's not going to be perfect anyway, so don't sweat the small stuff"
(I'm sorry if I mischaracterized your position here - but that's
the way I interpret it)
And I see this is at the bottom of many, many, problems in software
development. It shows up in all sorts of ways that drive me crazy
as a user and software developer. For example.
as a user:
a) constant "upgrades/bug fixes" which load up my computer with tons of junk
and make it slower.
b) quirky applications which have all sorts of unexpected behavior which
makes me feel stupid.
c) stuff that doesn't work together as it should
d) weired indecipherable dependencies - load one component and some
"unrelated" application breaks
as a developer
a) situation as you describe - change one thing - and something else breaks.
b) large amounts of resources just dedicated to keeping things running
c) inability to enhance programs wihtout huge effort
These latter are our fault. And I disagree that the situation is hopeless
and inevitable. They occur because we do things that create these
problems and we should know better. In fact we DO know better.
But often the person who takes the shortcut is not the person who
suffers the concequences, there an irrestible temptation to just do it
and let someone else worry about it.
To me this is the main problem with the popular scripting languages.
You can throw tother something that works in no time and the boss loves
it. But you have all the problems mentioned about. C++ is almost
unique in it's ability to create and enforce strong typing. This what
makes it special. It IS possible to make something (almost) perfect,
something (almost) unbreakable, and something (almost) optimally
efficient. It demans work that other languages don't but it offers
the opportunity to get off the endless treadmill of maintainng
a years old application as a career. In order to come close to
this idea it does require some disciplen - lack of which I'm addressing
here - but it comes close to the holy grail - make it one and never
have to go back to it. Lot's of boost libraries come close to
achieving this - that's why we love boost.
sorry for the rant.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk