[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why would anyone want opacity?

> But I guess my views on this are somewhat different.  I don't know
> whether I'm still in the "real world" to not, but I've experienced the
> same sort of thing, though on a somewhat smaller scale.  For instance,
> code, in one part of a system written in Common Lisp, that doesn't
> use the condition system.  It just writes a message to standard-
> output.  (And I was almost told, at one point, not to use the
> condition system, but just print a message, because "what would
> you do in C?".)
> So, yes, this sort of thing is annoying, expensive, and can even
> put lives at risk (if the program's controlling an X-ray machine,
> for instance).
> But I'm inclined to put much of the blame on poor project management,
> insufficient quality control, and the like.  There can be coding
> standards, code reviews, and so forth, even in the real world.
> And such things will be needed in any case, because the programming
> language cannot force programmers to follow all of the good practices
> they ought to follow.  Or at least languages don't, and no one is
> proposing that they do.
> What language forces programmers to use the exception system, use
> the library, read the documentation?  None of the languages in
> widespread use do such things, so far as I know.  And it's not our
> job, as programming language designers and implementors, to
> solve all of the problems of poor management, overworked and
> ill-trained programmers, programmer stupidity, and so on.

> None of this is an argument against having programming languages
> do something about some of these problems.  If a programming
> language can enforce good practice in some area, perhaps it
> should.  But the point of these examples from the real world
> seems to be something like this: here's a serious problem in
> the real world; Scheme can do something about it; therefore
> Scheme should do something about it.
> (If that isn't the point, then I think it has to be made clear
> that it isn't, for otherwise the misunderstanding will continue.)
> But languages don't enforce every good practice that they could
> enforce, and that doesn't seem to be a source of much complaint,
> except in certain cases.  So evidently the reasoning that goes
> from "can" to "should" doesn't always carry the day.  Nor
> should it.  So we have to get down to specifics.  What are
> the actual proposals for Scheme?  What are their costs and
> benefits?  And if making Scheme better for large, real world,
> projects in which relatively poor programmers take over
> after the brilliant engineers have left makes it worse for
> something else, then maybe we should not make Scheme better
> in that way.  Or, if it makes it so much better, and so little
> worse, maybe we should.

i am not sure what to do with all this.

my anecdote meant to loosely support but one notion: we often need
more help out there from languages than most people realise. in the
case of the system i mentioned, something like C++ is that help, but the
management has to bite to bullet and convert. [yep, programmers tend to use
real language facilities more than plastered-on "optional" ones like the
exception system i mentioned. class libraries are harder to ignore than
a pile of library entries, and so on.] i doubt i have suggested many of the
things you seem to have derived from my post. there are more details to be
sure, but i doubt it is worthwhile to talk about them here.

[btw, if you have not read stroustrup's book on the design of C++, you
may want to. it is an interesting lesson in trying to build a language
to help programmers cope with the real world complexity and build better
programs while trying to give them the freedoms they need.]

also, my example does not imply scheme proper has to do anything. it has
basically been irrelevant to my day-to-day work for the last five years.

[which is why i will not be able to attend to this topic any further.]