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: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: cjsonnack@mmm.com (Chris Sonnack) Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/05 Message-ID: <4u55hu$o73@dawn.mmm.com>#1/1 X-Deja-AN: 172262649 references: <01bb7da1$323102a0$96ee6fcf@timhome2> <4ttdlg$2pr@news.ida.org> <4ttksk$9lt@solutions.solon.com> followup-to: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada organization: 3M/IT/EIS (St.Paul,MN 55144) reply-to: cjsonnack@mmm.com (Chris Sonnack) newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-08-05T00:00:00+00:00 List-Id: Peter Seebach (seebs@solutions.solon.com) wrote: >> Any professional developer must understand several assembly languages, >> and how they work in general. (That's, I think, an overstatement unless you're creating device drivers or O/S for a living. But....) > Understanding an assembler buys you nothing; ^^^^^^^ That's taking it too far the other way. Understanding assembler //helps// you learn C faster. I've seen it with my own eyes and experienced it personally (see previous post). I wouldn't care to code assembly now; I don't think in terms of assembly when I write C; and I sure as hell don't use the asm() feature of C. But knowing what it is that I'm really turning out has been helpful. And I've been able to troubleshoot some really bizarre problems FASTER by either looking as the ASM output (via the -S switch most compilers support) or by tracing code in a debugger at the ASM level. Not that I couldn't have fixed the problem at a high level; I just did it //faster// at a low one. >> The language you use also determines the amount of detail >> you need to know about the underlying machine abstraction. > > Quite true. > >> When you're using C or C++, you really need to know how the >> underlying assembly language works. > > Quite untrue. Agree on both points. But, again, you're a more effective tool if you DO know what's going on "under the hood". > The newbie uses a machine, and to the newbie, that is all machines; the > newbie's code runs only on that machine. > > The experienced programmer uses several machines, and has learned how each > behavies. The experienced programmer's code runs on several machines. > > The true programmer uses no machines, and uses the specifications granted > by the language. The true programmer's code runs on any machine. Absolutely. Programming is about solving problems. A true programmer knows how to analyze a problem and synthesize a solution. The language doesn't matter; not really. The language is just the local way of expressing the solution. HOWEVER: it seems obvious to me that the more you know about your craft, the better you will be at deriving the most effective solution. And the better you'll be at dealing with problems along the path to that solution. -- Chris Sonnack http://eishcq.mmm.com Engineering Information Services/Information Technology/3M, St.Paul, Minn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Chocolate will never replace sex....unless it's very good chocolate. Opinions expressed herein are my own and may not represent those of my employer.