"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 http://dekudekuplex.wordpress.com/ Translator/Interpreter / Mobile: +011 81 80-3603-6725 "Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^ _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
