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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c0f035b936128b6c X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,c0f035b936128b6c X-Google-Attributes: gid1014db,public From: seebs@solutions.solon.com (Peter Seebach) Subject: Re: Ada95 to ANSI_C converter Date: 1997/04/07 Message-ID: <5ibj89$c9j@solutions.solon.com>#1/1 X-Deja-AN: 231365323 References: <334929E8.4E68@gdls.com> Organization: Usenet Fact Police (Undercover) Reply-To: seebs@solon.com Newsgroups: comp.lang.ada,comp.lang.c Date: 1997-04-07T00:00:00+00:00 List-Id: In article <334929E8.4E68@gdls.com>, Arthur Schwarz wrote: >Well, they *would* be better drivers. Better car mechanics, perhaps. Better drivers than people who spent the same amount of time studying driving? I doubt it. >In any case, the analogy is not valid, because we are not training >users of computers, which obviously do not (or should not, at least) >need to understand programming. We are training programmers, and >thus they should learn the fundamentals of programming. Define fundementals. To be an effective programmer, do I need to know the physics behind an XOR-gate? Do I need to know how exactly it is that electrons can repel each other? Do I need to know how my computer's CPU has implemented addition in terms of smaller gates? Do I need to know the algorithms used for the cache? Do I need to know what patters of pulses are used to communicate with main memory? What is so magical about "assembly" that makes it the right level? My experience has been that C is often a bit lower level than I really want to be thinking, and can obscure important design issues with implementation trivia. >Or do you think automotive engineers should not understand the >physics of motors and motion, and should only work with prefabricated >components? Oh, such as standardized screws and bolts? What a horrible thing those are. What "the basics" are can vary significantly depending on target application. For most modern programmers, especially those learning today, the relative simplicity of an abstract machine is probably closer to the problem domain, and really won't hurt performance... By contrast, obsession with trivial details can and will lead to unportable, inefficient code. I give Nudds as proof that learning at too low a level certainly doesn't *cure* logic problems, and, IMHO, can seriously weaken reasoning ability, by hiding patterns behind a mess of details. -s -- Copyright 1997 Peter Seebach - seebs at solon.com - C/Unix Wizard I am not actually gladys@nancynet.com but junk mail is accepted there. The *other* C FAQ, the hacker FAQ, et al. http://www.solon.com/~seebs Unsolicited email (junk mail and ads) is unwelcome, and will be billed for.