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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f4fd2,626a0a064b320310 X-Google-Attributes: gidf4fd2,public X-Google-Thread: 103376,ea8ea502d35ca2ce X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-05-10 12:50:04 PST Path: newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!east1.newsfeed.sprint-canada.net!news.storm.ca!nnrp1.tor.metronet.ca!not-for-mail Message-ID: <3AFAF0EA.7FA8B6B4@home.com> From: "Warren W. Gay VE3WWG" X-Mailer: Mozilla 4.75 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.lang.ada,comp.lang.lisp Subject: Re: Beginner's Language? References: <9cukad$nn68@news-dxb> <9d6b6e$1bt$1@nh.pace.co.uk> <87snihxiwc.fsf@frown.here> <9dbi83$sji$1@nh.pace.co.uk> <3AFACCA0.303A79AF@baesystems.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Thu, 10 May 2001 19:50:04 GMT NNTP-Posting-Host: 198.96.47.195 NNTP-Posting-Date: Thu, 10 May 2001 13:50:04 MDT Organization: MetroNet Communications Group Inc. Xref: newsfeed.google.com comp.lang.ada:7498 comp.lang.lisp:9985 Date: 2001-05-10T19:50:04+00:00 List-Id: David Gillon wrote: > Ola Rinta-Koski wrote: > > > > (let ((foo 0)) > > (dotimes (i 5) > > (incf foo (read))) > > foo) > > > > > Now look at it. Could a neophite with literally *zero* > > > experience in programming computers read it and stand a chance of > > > understanding what it does or how it does it? > > > > Not being a neophyte, I'll just have to guess: yes and yes. > > Well, I'll admit that despite a CS degree (including a course > specifically aimed at comparing different languages) and fifteen years > in the industry I can't claim to know what this code does, so any > complete neophyte is going to be floundering. I can guess we have a loop > doing something to Foo, but beyond that ...? Sum five (could also be 6) > inputs seems most likely, but that's based on my knowledge of parallel > constructs in other languages and therefore more than a true neophyte > could get. > > Despite all the criticisms that can legitimately be levelled at BASIC I > originally taught myself to code from BASIC examples in computer > magazines, I don't believe that would have been true if they had looked > like the example above instead of paralleling natural language. And what > BASIC does better than this Pascal and Ada do better still. A number of posts ago, someone mentioned "general purpose". One of the things that most people seem to forget in this type of discussion, is whether or not a "general purpose" language is being considered (I believe this is assumed by most here). If you truly want something simpler for people to learn from, *** take away the "general purpose" requirement. *** As mentioned in the current post (above), BASIC helped many newbies get started. Why? BASIC was simple to understand, & it put you in a restricted "shell" of sorts, with very simple commands to use. Ie: LOAD "PROGRAM" SAVE "PROGRAM" RUN LIST etc. The _environment_ and the simple language combined, made it easy. It was also easy, because it was not totally "general purpose" (it does not interface well with many things that one would use under UNIX today, for example). If all you had to do was control a few things, you can really simplify the language. A hypothetical example might be (for a controller): Open door. Close window. A two step, but specialized language program. However, if you had to code that in assembler language, a completely general purpose language, you would have perhaps 200 to 1000+ lines of code to read. The difference was simply between a specialized language and a general one. - My Point - ;-) So my point is that when you consider a "beginner's language", consider his needs first. Does he need a totally general purpose language, or can he get by with a reasonable subset of "general"? If he can be happy with the bare minimum, then languages like BASIC are a good place to start. In addition to the language, you might also consider the "environment" also. If the user is foreign to UNIX shells for example, than a BASIC subsystem might be more productive for him. I'm not promoting BASIC for general use here-- only discussing the needs of beginners. As a side note, I find it interesting that a number of high schools teach kids here BASIC using QBASIC that was distributed free on Windoze-95 CD's (it might also be on Win98). You have to look for it on the install CD-- it won't be installed for you. If my daughter can use it (as impatient as she is), then this says something to me about the success of this approach. -- Warren W. Gay VE3WWG http://members.home.net/ve3wwg