Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!purdue!decwrl!shelby!labrea!siegman@sierra.Stanford.EDU From: siegman@sierra.Stanford.EDU (Anthony E. Siegman) Newsgroups: comp.lang.misc Subject: Re: Which language to teach first? Message-ID: <244@sierra.stanford.edu> Date: 2 Aug 89 19:10:40 GMT References: <8514@batcomputer.tn.cornell.edu> <14501@bfmny0.UUCP> Sender: siegman@sierra.STANFORD.EDU (Anthony E. Siegman) Reply-To: siegman@sierra.UUCP (Anthony E. Siegman) Organization: Stanford University Lines: 47 From <14501@bfmny0.UUCP> tneff@bfmny0.UUCP: > ...like line numbers in BASIC... I already knew that most of the computer types who denigrate BASIC as a programming language haven't in fact looked at a modern BASIC for years, if not decades; but it's interesting to see it so clearly verified. Just to bring some of these people up to date, modern versions of BASIC, besides being simple and easy to learn (and read programs in), --Don't use line numbers; haven't for years. --Do have labels, permitting easy modular programming (and these labels, along with variable nmaes, can be of unlimited length). --Have subroutines with local as well as global variables, and permit arguments to be passed by value or by name. --Allow recursive subroutines. --Contain all the modern recommended structured programming concepts (WHILE-WEND, IF-THEN-ELSE, CASE, etc.). --Have superb programming environments, with excellent editors. --Can be compiled (and will then typically run as fast or faster than the same program done in Pascal on the same machine). and so on. [Just for information, with Microsoft QuickBASIC on the Macintosh one can EASILY AND SIMPLY create Windows, Menus, Alerts and Dialog Boxes, Mac-editable Text Boxes, Scrolls and scrollable windows, create, access and use Resources, use all the Toolbox and QuickDraw capabilities, create clickable Macintosh applications, and so on. It's an EXCELLENT Macintosh programming environment, and much simpler to learn than any other competing environment.] None of the above is to be interpreted as any kind of argument for BASIC as a first language _for teaching deep fundamental computer science concepts to people who want to learn those concepts_! In fact, I'd even be prepared to concede that learning BASIC may well be deleterious to later learning of those concepts (bad habits to unlearn). The problem -- or the fact -- however is that BASIC IS AND WILL REMAIN BY FAR THE BEST CURRENTLY AVAILABLE GENERAL-PURPOSE LANGUAGE TO BE LEARNED AND USED BY ORDINARY WORKING ENGINEERS AND SCIENTISTS WHO WANT TO GET REAL WORK -- EVEN RATHER SIZABLE COMPUTATIONS -- DONE ON THEIR DESKTOP COMPUTERS. If BASIC is supplanted by anything else for those sorts of users in the future, it won't be by Pascal, or Scheme, or C, or Modula, or anything similar, it will be Mathematica.