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=3.8 required=5.0 tests=BAYES_00,INVALID_MSGID, RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME 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: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: "Tim Behrendsen" Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/06 Message-ID: <01bb83cc$fb35e180$87ee6fce@timpent.airshields.com>#1/1 X-Deja-AN: 172555829 references: <01bb73e3.1c6a0060$6bf467ce@dave.iceslimited.com> <1996Jul20.124025.122789@kuhub.cc.ukans.edu> <01bb7b06$311fabc0$87ee6fce@timpent.airshields.com> <31FBC584.4188@ivic.qc.ca> <01bb7da2$6c505ac0$96ee6fcf@timhome2> <01bb8027$de0e9c80$96ee6fcf@timhome2> <4u5a11$siv@mulga.cs.mu.OZ.AU> <01bb8342$88cc6f40$32ee6fcf@timhome2> content-type: text/plain; charset=ISO-8859-1 organization: A-SIS mime-version: 1.0 newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-08-06T00:00:00+00:00 List-Id: Dan Pop wrote in article ... > In <01bb8342$88cc6f40$32ee6fcf@timhome2> "Tim Behrendsen" writes: > > >Maybe I'm weird, but I just don't see assembly as being harder > >than a HLL, and in fact, it seems to me that it's much easier. > >The number of fundamental things to learn is *very* small, and > >I would think that being able to show a problem in terms of the > >"array of memory" being manipulated would just make it infinitely > >easier than having to wrestle with all the abstract nonsense. > > > >Now, you wouldn't want to *maintain* large systems of assembly, > >which is why HLLs have taken over the world, but it seems to > >me that assembly per se is just not that hard to use. > > OK, try to implement the "hello world" program in assembly, so that it > works on x86, 68k, MIPS, SPARC, Alpha, PPC, PA-RISC machines and, why > not, a 3090, a Cray and a CM-5. When you're done, you might get a clue > about why assembly per se is a pain to use. > > Unix is what it is today because Thompson and Ritchie realized the > importance of having a kernel implemented almost exclusively in a HLL > and created a suitable HLL for that purpose. Other people discovered > that that language was very well suited for other purposes, as well, > and the rest is history... I think we've strayed away from the central point. No one is arguing a return to the days of assembly language. The question is (or has since become), is it better to start a student learning the fundamentals, i.e. assembly and the internals of computers, and then move on to abstracts; or is it better to start with abstractions such as C or C++ and perhaps never give the fundamentals, since "compilers are so good nowadays that it's useless to know assembly, and in fact, can be dangerous." I say that based on my experiences testing people straight out of college (BS, MS, or PhD, makes no difference), we are packing their heads so full of abstractions that they are unable to think anymore. I think it's much better for students to learn pure algorithmic analysis without all the abstraction distractions that can be better learned later on, and learned easier. Perhaps a better question is, which is more important: Learning abstractions or algorithmic analysis? I say that algorithmic analysis is 10 to 1 more important than abstractions. -- Tim Behrendsen (tim@airshields.com)