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/09/06 Message-ID: <01bb9c05$ce5b9aa0$87ee6fce@timpent.airshields.com>#1/1 X-Deja-AN: 178908019 references: <01bb9a1e$24c669e0$32ee6fcf@timhome2> <50p68s$cpi@zeus.orl.mmc.com> 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-09-06T00:00:00+00:00 List-Id: Bob Gilbert wrote in article <50p68s$cpi@zeus.orl.mmc.com>... > In article <01bb9a1e$24c669e0$32ee6fcf@timhome2>, "Tim Behrendsen" writes: > > Lawrence Kirby wrote in article > > <841797763snz@genesis.demon.co.uk>... > > > In article <01bb8f19$9a89d820$32ee6fce@timhome2> > > > tim@airshields.com "Tim Behrendsen" writes: > > > >Bob Gilbert wrote in article > > > ><4vcac4$gm6@zeus.orl.mmc.com>... > > > >> A very procedural point of view. Many of the proponents of object > > > >> oriented design might have a problem with this view, and demonstrates > > > >> my point about allowing the details of implementation to obscure the > > > >> higher level problem solving process. > > > > > > > >There is no other view than the procedural view. > > > > > > Some functional language programmers might take issue with that > > > statement. Prologgers may have a thought or two also. > > > > What I mean by that is, for work to get done, the computer > > must perform transformations of data over time. You can call > > that an implementation detail if you want, but there simply is > > no such thing as "instantaneous" algorithms. You can look > > at a mathematical proof as existing without procedures, in the > > sense that it simply "exists", as a statement of truth, but > > algorithms are different. They are, by their nature, a > > process, and processes require a time axis. > > I suspect our definitions of procedural vs non-procedural (e.g. object > oriented) views are not the same. Non-procedural views do not imply > "instantaneous" algorithms, the non-existence of a time axis, or whatever. > The difference is whether I veiw the problem solution as being built by > putting together a bunch of operations (procedures) that I can invoke to > manipulate whatever data I happen to have, or I can view the problem > solution as being built by putting together the appropiate data elements > (objects) for which certain operations are defined. Are the basic > building blocks procedures or objects? BTW, I'm not necessarily > advocating one view over another, just trying to point out that there > are views other than a procedural view. Object-oriented is perhaps not where you want to go to make your point; the only difference between OOP and non-OOP is how you bind the procedures to the objects. non-OOP you pass an object to a procedure; in OOP, you execute the procedure abstractly bound to the object. A better example are the "pure" non-procedural languages, where you give an abstract logic statement of what the algorithm *is*, rather than how to execute it. In other words, the ordering of the individual clauses are not important; the cumulative meaning of the clauses are what expresses the algorithm. Structured Query Language is a good example of this. But to get back to the original point, which is teaching students the procedural nature of the computer, it is essential that they understand this. One of the most dangerous people in the world is someone who writes SQL statements who doesn't fundamentally understand what happens inside the mechanism. In theory, I should be able to happily write SQL statements anyway I want to; in practice, I *would* like my report to come out within this millenium. Yes, teach them non-procedural languages in the Masters or PhD programs. First teach them that everything boils down to procedural mechanisms. -- Tim Behrendsen (tim@a-sis.com)