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: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public From: "Tim Behrendsen" Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/07/29 Message-ID: <01bb7da2$6c505ac0$96ee6fcf@timhome2>#1/1 X-Deja-AN: 170905602 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> 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-07-29T00:00:00+00:00 List-Id: J. Christian Blanchette wrote in article <31FBC584.4188@ivic.qc.ca>... > > >Assembly -> C [non-GUI] -> C-GUI -> C++ > > This is really crazy! > > It's maybe interesting to understand how arguments are passed on the > stack, but i strongly believe that simple high-level languages must be > learned first, and more complex one after. Since there is a performance > vs. simplicity tradeoff all along, the performance desire (usually for > graphical applications) makes people learn lower level languages. I know > many people, including myself, who made the Basic/C step for > performances. The point isn't that your actually going to use it day-to-day, the point is really understand what's going on in terms of the fundamentals. People who program in C who do not understand assembly are dangerous because they don't truly understand what the compiler is producing. > I see no reason why learning GUI programming before OOP: in my sense > they're not related at all. I've never did any GUI app, but the concept > of multiple entry points is easy to understand, as well as that of > object-orientedness (which can be found even in C programs, although > C++/Java are more adequate). I could go either way on this one; I chose GUI first because the student can understand event-driven programming without the added baggage of OOP abstractions. > Understanding the machine architecture is one thing, using assembly > languages is another. There's no real interest in knowing all the > mnemonics of a peculiar assembly language for a C coder: knowing how > stacks work or how system calls are performed is enough to make efficient > C programs. The point isn't to learn a specific one; I don't that really matters. The student needs *something* to play on. The point is to see what's really going on, to see the bytes flow in and out of memory locations, to really experience that it's only a big table of bytes that you're moving around. The most important thing any student can learn is the stripping away of the shroud of abstractions, and seeing the simplicity of what's really underneath. Once they get that, all the rest of it comes naturally. -- Tim Behrendsen (tim@airshields.com)