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=0.1 required=5.0 tests=BAYES_05,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,91c7c63c23ef2d0c X-Google-Attributes: gid103376,public From: Dale Stanbrough Subject: Re: Beware: Rep spec on an enumeration type ... Date: 1997/12/15 Message-ID: <6723st$mnt$1@goanna.cs.rmit.edu.au>#1/1 X-Deja-AN: 298235057 Distribution: world Content-Transfer-Encoding: 8bit References: Content-Type: text/plain; charset=ISO-8859-1 X-XXMessage-ID: Organization: Royal Melbourne Institute of Technology Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1997-12-15T00:00:00+00:00 List-Id: "Well, this certainly allows us to size the problem: One must have a graduate degree in language design and compiler techniques to use Ada. That's quite a revelation. We would have never suspected that Ada was that hard to use. This gets to the heart of the problem. Our programmers, being domain experts, would rather take graduate degrees in their respective fields of interest, in their chosen professions. If they were interested in being compiler experts, they would have instead studied compilers, and they would probably work for a compiler vendor, not a system vendor, because few system vendors build compilers. Nor would they be experts at other than compilers; there are only so many hours in the day. Domain expert and compiler expert are very different fields." I think this is a rather pessimisstic intrepretation of what Robert said. Robert's point, which I agree with, is that if you want to use tools in your job, you have to understand how to use them, and what their limitations are. For example imagine someone who wishes to make films. "I've been to director's school, I know how to direct, why do I need to know anything about how video/film camera's work?". Yet I'm sure you would agree that you can't film someone with the sun directly in the lens. What about flare from lights? What other restrictions are there that are placed on a director by technical limitiations? Using any technology without understanding it is just inviting disaster, and this is shown out by your own experience. Yes your software "worked", but it got tripped up by a bad implementation (it was slower than it should have been). At the Melbourne TOOLS conference a few years back Roger Osmond spoke about his team's experience using Eiffel in building a data comms box (he was very enthusiastic). However initially his team found that the software was unbelievably slow because they were continually allocating memory, and leaving it to be cleaned up by the GC system. In the end the domain experts needed to understand the consequences of unfettered allocation in such an environment. They needed to understand the technology to be able to use it constructively. As to your other point, attending a compiler construction course does not mean you will be a compiler writer - it just means you are familiar with the issues. It would be helpful if so many more students _did_ attend these classes by the way - it would often help dispel the "while (!(*p)) { *q++ = *p++} must be more efficient than an Ada for loop" myth. Dale