Languages; BASIC, FORTH, Logo? ------------------------------ Jan 26, 2005 6:28 pm Subject: Re: [cosmacelf] Re: 1802 ZX81 leealanhart mc71de wrote: > What I would do if I had to design a BASIC from scratch: Implement > something like 'object modules' so that you could write your own > commands and functions just in BASIC itself, or in any other language > for that matter, just as Pascal has not only its procedures and > functions, but also Units (or is that a Borland specific?)... > combined with an easy-to-understand assembly language of the > underlying processor. I am not too sure if - given today's computer > speed - I would make it a compiler, so that every RUN would just > compile it without the user really taking notice. Just a few ideas... BASIC made a great start at being simple to learn. Unfortunately, it lost focus as it grew. Everyone expanded it in different directions, leading to an incomprehensible mess. FORTH makes an excellent start, and has a philosophical underpinning that has allowed it to expand considerably without losing its focus. It starts with a very few keywords, but defines the way to add new ones that behave exactly like existing words. FORTH includes an assembler and compiler. Programs are stored in source form, and are compiled/assembled as needed; great for learning and experimenting. But FORTH's reverse polish notation and stack orientation are difficult concepts for beginners. FORTH programs tend to be "write only" such that even the author can't figure out what they do unless well commented. I suppose you could marry the best features of the two, and have a language that is as good for beginners as BASIC, but keeps the extensibility and power of FORTH. I think Seymour Papert tried to do this with Logo; but it too has wandered off into professional programmerese. -- Jan 27, 2005 2:53 am Subject: FORTH (was: Re: 1802 ZX81) leealanhart J.C. Wren wrote: > Lee, > You are propagating the myth that Forth is difficult to learn > and is write-only. I was comparing BASIC and FORTH; in that context, FORTH is worse. I've done a lot with both BASIC and FORTH; and taught quite a number of people both languages. My experience is that FORTH *is* more difficult to learn and more "write only" than BASIC. However, BASIC is so good in these respects that virtually any other language you pick is worse. When FORTH is compared to most other languages, it comes out pretty good on being easy to learn. The main difficulty arises from teaching people who have substantial programming experience with some more traditional language. FORTH is enough different to require a lot of re-learning. > ANY language can be made write only. Yes, of course. But BASIC (and most other languages) have a rigidly defined keywords and syntax. And, the keywords are pretty much self-explanatory. Even if the programmer didn't provide any comments, you can still read his program and figure out what it is doing. But with FORTH, the whole philosophy is to create your own application-specific words, and use them to build your application. Programs can become incomprehensible very quickly! > If you look at Leo Brodies 'Starting Forth' Yes, that's an excellent book -- it was, and may still be the best there is for learning FORTH. > ..... I don't think many people are interested in simple systems > any more. Before, the disparity between a system designed for teaching > someone (like the VIP), and a system that was a full-blown system was a > lot smaller than today. Why would anyone want to layout $99 for a > ZX-81, when you look right next to it and see a 1Ghz Athlon with 40GB, > 256MB, and can run Windows or Linux for $299? Why would I buy a TV set for $99 when I can get a computer for $299? Because I want a TV set; not a computer. They are two entirely different things, that serve completely different needs. Kid's toys have always been, and still are, vastly scaled-down versions of the "real thing." You don't judge the merit of a toy based on how well it does real work. You judge it by how much fun it is to use, and by how much learning it fosters. > Maybe there's a market for more building block type widgets that > connect via the USB port that allow people to construct systems. A > small keyboard to introduce scanning keyboard concepts, with a program > that allows the lines to be single stepped, etc. A/D modules for > "little hands" that are more bullet-proof to demonstrate reading and > displaying values. A small digital block building system, where part > of the USB functionality is a logic probe? > I don't know that market very well, but it seems there's a huge > whole between the crappy 300-in-1 kits that have seriously lame > projects with less documentation than ever, and something like I've > described above. *NOW* I think you are getting onto [my] wavelength! This is exactly the sort of think I would like to develop. Sure; it's a toy computer; but it teaches *real* computer principles. And, it would make things like writing programs and developing circuits easy and fun. > Another issue is expectations. Turn[ing] on a LED isn't exciting > anymore. Ok; then turn on his room light. Same problem; just a different scale. Maybe your toy computer outputs X-10 codes, and the usual sensors (little $10 boxes that plug in between an AC outlet and some load) turn things on/off. > The power of visual feedback as encouragement is pretty large. > Seeing it on a 19" LCD is a lot more impressive than a LED. ...and seeing it in the form of a robot running around is even more impressive. > Perhaps the word I'm looking for is "jaded". Kids are jaded towards > expecting the big and shiny, and I don't think you can give them > to that with a little trainder kit. It's not the kids that are jaded -- it's the adults! I teach courses for 4th-6th grade students to build electric cars (see www.bestoutreach.org). Most kids come in with essentially ZERO tool-using skills; they have never used a hammer, saw, or screwdriver. They have never built anything "real"; just played with legos or virtual stuff on a computer. You would not believe how excited the kids get. They are DESPERATE to play with something real! Use real tools to build real things, that really work! We start them off designing small model cars. There are no plans, no kits, no supplied materials -- they have to invent it themselves, and scrounge the materials, and get them to work. When they get the models working, they then scale it up to build a go-kart sized vehicle that they can get in and drive! We have about a dozen schools participating, and run a couple hundred kids through the program each year. > Perhaps it's unfortunate that there aren't as many modern readily > produced components that kids can be introduced to (SMT vs. DIP, etc), > but that's the price of the technology curve in ANY field. I would say rather that it is a conscious decision our society has made. We treat fantasy as more important than science, [and] technology as the same as magic. There is no need to understand anything, or fix anything -- just let someone else do it all. When it breaks, throw it away and buy a new one.