Walter Bright Wrote:

> Here's certainly a different take on language design:
> 
> http://blog.objectmentor.com/articles/2009/07/13/ending-the-era-of-patronizing-language-design
> 
> I'm not convinced. All my engineering experience supports the idea that 
> the larger the project and the more people are involved in it, the 
> better off you are with isolation between modules and better enforcement 
> of interfaces.
> 
> Simply relying on programmers being responsible isn't good enough when 
> you've got a high risk application.
> 
> What are your experiences?

I agree that relying on other programmers' "good will" or "responsibility" or 
whatever name you want to give it is a dangerous way to approach a project. 
However, the author seemed to me to be advocating more of a D language approach 
to the world -- give the programmer the tools he needs.

I enjoy the low-level, "unsafe" capabilities in D. But only because they are 
fenced in with lots of warnings and "here be dragons" sorts of comments. I 
don't think the strong emphasis on type, thread and const safety is misguided 
-- compiler ensured safety isn't confining, but liberating. I don't have to 
worry that I (or the other guy) meant one thing but did another. But when I do 
intend to subvert some safety feature I want to be reminded that I'm skating on 
thin ice.

In my experience, problems with independent development of software and relying 
on fixed interfaces most often arise either because someone chose to disregard 
or "improve" the interface, or (more usually) the interface was not specific 
enough, and allowed for more than one (incompatible) solution. I guess a third 
kind of problem was the part of the team that did their development without any 
particular regard for the interface and then, when time was short, lobbied for 
drastic changes so they wouldn't have to re-implement their software to 
actually comply.

The existence of the interface wasn't the issue. The better defined and more 
rigidly enforced it was, the better the result.

And yes, I've been involved with projects where the interfaces were poorly 
defined that still succeeded, but only because there were the independent types 
who went and actually talked with the designers on the other side of the 
interface and established a de facto standard.

So I object to being "patronized", but I'd rather have something explained to 
me slowly than to move forward rapidly based on inaccurate assumptions. In the 
words of President Reagan: "Trust, but verify."

Paul

Reply via email to