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

Re: [Scheme-reports] Mutable Pairs

"Brian Harvey" <bh at cs.berkeley.edu> writes:

> My students will end up being better programmers if they develop
> good judgment.  If they learn in a language that exercises the
> judgment for them, that weakens their education, because they learn
> to lean on the language to make their decisions for them.


> Take data abstraction.  Scheme lets you define abstract data types.
> It also lets you not define abstract data types.  The students who
> learn to do the former spend less time debugging.  This is a
> learning experience.  If Scheme forced you to define abstract data
> types, programs would arguably be safer, but students would learn
> less.

These are issues of Scheme as a teaching language, which is different
from the issue of Scheme as a general-use programming language.

In the case of data abstraction, you yourself mentioned that "the
students who learn to do the former spend less time debugging."  That
also implies that programmers who use data abstraction also write more
robust code, which requires less time debugging.

The same argument could also be made for immutable lists.  Although,
as I have said before, for backwards-compatibility reasons, I am
against making immutable lists the default *now*, I still think that
they help Scheme programmers to write more robust code, and that such
procedures as SET-CAR! and SET-CDR! should therefore be relegated to
modules, and that these modules should be made optional, so that
implementations are less likely to include them in the future.

-- Benjamin L. Russell
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
"Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ 

Scheme-reports mailing list