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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,751d508677a5add1 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.93.MISMATCH!xlned.com!feeder7.xlned.com!news2.euro.net!newsfeed.freenet.ag!ecngs!feeder2.ecngs.de!194.25.134.126.MISMATCH!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Thu, 01 Jul 2010 17:36:47 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.4) Gecko/20100608 Thunderbird/3.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: [Ada] made me hate programming References: <8f469661-370c-4484-82d8-f1b365455e0f@w12g2000yqj.googlegroups.com> <98aa58b3-50fc-418d-9f72-524b5a23c89d@t10g2000yqg.googlegroups.com> <4c2bd5e5$0$2366$4d3efbfe@news.sover.net> <4c2ca2d2$0$7666$9b4e6d93@newsspool1.arcor-online.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4c2cb60f$0$7651$9b4e6d93@newsspool1.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 01 Jul 2010 17:36:47 CEST NNTP-Posting-Host: 73c902a0.newsspool1.arcor-online.net X-Trace: DXC=K?0]J;Ga?b`]l@YUW5NBknic==]BZ:afn4Fo<]lROoRa<`=YMgDjhgbD>=kX2P@_efnc\616M64>jLh>_cHTX3jmVM[;K9K=<3e X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:13065 Date: 2010-07-01T17:36:47+02:00 List-Id: On 01.07.10 16:27, (see below) wrote: > On 01/07/2010 15:14, in article > 4c2ca2d2$0$7666$9b4e6d93@newsspool1.arcor-online.net, "Georg Bauhaus" > wrote: > >> Ada provides for a solution to the problem caused by the advanced >> technicalities in error messages, I think, using Ada's language profiles > > In my experience there are no such problems in teaching Ada, with GNAT at > any rate. GNAT's error messages are generally of high quality at the moment, > and in my experience quite understandable to beginners. I shouldn't have stressed error message so much. It's more about concepts that are advanced, and how they can get in the way when beginners know only beginners' concepts. According to findings of others, error messages become less understandable then. Indeed, GNAT's messages made me think "Fantastic!". For example, when I first saw a message that very clearly told me what was wrong. I had seen messages like file, l.N, Syntax error or Syntax error at end of file This is very different from file:L:C: ";" should be "is" In order to understand the first messages, a beginner might need help. It does not say what syntax error, or where the error is, in the second case. GNAT's message OTOH does not even presume knowledge of technical terms. In fact I call it a *message* rather then a scanner status indication. The message is helpful and specifically addresses what has been written. I find it encouraging. Much less so when the messages are like the ones Peter Chapin has quoted (about overload resolution). They make me think of a language profile that disallows overloading. Once you have it, the confusing messages are gone, or replaced with something that has meaning in the context of the language profile. (Lack of overloading is arguably a desirable quality of real world programming languages, if one includes SPARK and Eiffel. If someone feels artificially deprived of programming powers, you can say that once overloading is explained, we'll see some algorithms that use it.) >> Instead, compilers diagnose something more easily explained: >> file.ada:123: "X is not supported in This-Teach-Pack" > > Why do you think this would be comprehensible to beginners, or even > desirable? It is a message about a pedagogical meta-level that has nothing > whatever to do with the problems of learning algorithmic construction > through the medium of a language. I won't insist on the wording, on the contrary. It might seem preachy depriving students of advanced language features; this is not the goal, however. The goal is to gradually extend the set of included language features. The idea leads to a partial order of language concepts (TBD). Compiler messages would then mention the concepts of the current extent, and no others. For example, they will "talk" about overload resolution like other good compilers "talk", compilers, though, that translate languages not including overloading. No one's feeling are hurt in this scenario I should think. Or when the language profile does not include X, they print a nice, encouraging message about X being for a later date in the course or some such.