From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6c13cc000274246b X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Please Help. Date: 1997/09/13 Message-ID: #1/1 X-Deja-AN: 272209292 References: <01bcbcde$f8a425c0$ca70fe8c@default> <5vaude$q20$1@goanna.cs.rmit.edu.au> <5vbiid$luu$1@goanna.cs.rmit.edu.au> <34197042.7CFC@gsfc.nasa.gov> Organization: New York University Newsgroups: comp.lang.ada Date: 1997-09-13T00:00:00+00:00 List-Id: Stephen says <> When we say that something is "nice for beginners", we are presumably saying that students who want to write programs to do X will find it convenient to use feature Y. But always remember that when we teach computer science, writing programs as excercises is not about writing programs to do X, it is about learning the fundamental concepts, and techniques. The programs we write in class are a *means* to an end, not an end in themselves. This is a very improtant difference. In the world of real life application programming, the point is to create a working program that meets the specifications. When we are teaching the point is to LEARN HOW to create! Things that make it easier to create a program may or may not facilitate learning how to create a program. Note that this distinction is closely related to the issue of how best to help students who ask questions. Very often a student writes a note to CLA saying "I am having trouble doing X", and helpful people assume that since the student is trying to do X, they should help the student do X. But that's wrong, the student is trying to *learn* the skills so that they can do X on their own. Showing them directly how to do X can often be counter-productive. Of course students don't clearly perceive this important distinction, because the achievment of X is how their progress in learning *how* to do X is judged. As to your technical question (gosh, a technical question on CLA, I had forgotten that this could happen :-) GNAT uses controlled types to implement unbounded strings. Using a special garbage collected pool is an interesting idea which we have thought about (and which has been discussed at length in previous CLA threads), but we have not yet followed up this idea.