4 ms·
I still have fond memories of the various BASICs. I first used BBC basic at school (unofficially), and it seemed like magic. I had an Atari ST and a got a copy
by jimnotgym 8y ago
I still have fond memories of the various BASICs. I first used BBC basic at school (unofficially), and it seemed like magic. I had an Atari ST and a got a copy of STOS at home.
Whilst BASIC encourages all kinds of spaghetti, I'm still convinced it is a better language than Python to start on. Control flow is so obvious to non-programmers when it has line numbers.
- jacquesm 8y agoNot all BASIC dialects have line numbers, there are some very elegant version of basic out there. GFA basic for instance and BBC Basic. Both have named functions and do not use line numbers.
- jimnotgym 8y agoI know, and they (like Python) all make excellent second steps. The line numbers are bad for structure, but good for stage 1 learning is what I am saying. In fact, letting people find the limitations of line numbers and GOTO statements is an excellent way to show them why you would want something more structured, rather than just telling them.
- jacquesm 8y agoI do not know about that. Teaching people something bad first only to show them a better way later still wastes their time and ingrains bad habits. Personally I prefer teaching the better way right from the beginning (assuming I know what the better way is).
- jimnotgym 8y agoSo we should skip Scratch for kids and go straight to Java? Static types and Object Oriented Programming are better ways, I think most of us will agree? I want to give noobs a taste of the magic of programming immediately 10 Print "hello" 20 GOTO 10 Is something anyone who can read could understand. Even the relatively simple while True: print("Hello") Has several concepts to explain before you can understand it.
- jacquesm 8y agoI do not think the Scratch vs Java comparison is a fair one here. There is nothing wrong with Scratch. But bad Scratch vs good Scratch or bad Java vs good Java would be a fair comparison and in those cases I would advocate for teaching the right thing from the start.
- protomyth 8y ago> Static types and Object Oriented Programming are better ways, I think most of us will agree? I'm pretty sure you won't find near universal agreement on either.
- reificator 8y ago> Static types and Object Oriented Programming are better ways, I think most of us will agree? No.... I'm with you on static typing but disagree with OO. I know other developers I strongly respect with every permutation. Personally, I probably wouldn't object to OO so much if Java weren't such a commonly taught first language, which gets right back to the discussion at hand.
- stevekemp 8y agoAfter I got the tokenizer working the first thing I did was implement "PRINT" and "GOTO". Specifically so that I could write: 10 PRINT "STEVE IS AWESOME!" 20 GOTO 10 Everything else was added after that, which is why the PRINT function is the oldest and worst code (until this evening).
- dragonwriter 8y agoProgramming without language-level support for structure isn't “something bad”, and in practice it resulted in learning how structure is implemented at a low level. Plus, mandatory line numbers is what enables having a REPL that's also a program editor, which is a big win.
- opless 8y agoNot sure which BBC basic you used, but it certainly DID have line numbers when I used it. (BBC Model B) However there were user defined functions and procedures as I recall.
- jacquesm 8y agoYes your are 100% right, the line numbers were there in BBC Basic, but mainly for editing rather than control purposes (though you could use the dreaded GOTO statement if you absolutely had to). Keep in mind that this was just before the days of the full screen editor embedded in your favorite programming language. GFA did away with them entirely. The BBC had an odd editor, it was partly line and partly screen based, allowing you to move a secondary cursor across the screen with the arrow keys, and then a ´copy´ key to copy whatever character was under the second cursor to the input cursor as though that key had been pressed. It sounds terrible but it was actually quite quick in actual use.
- laumars 8y agoWhat you’re describing there was pretty standard across all of the 8bit micro computers. A few machines had the copy feature (eg the CPC464) and the control flow in the BBC BASIC wasn’t anything that couldn’t be done in pretty much every other dialect from that era (be it Microsoft BASIC, Locomotive or whatever). Personally I think it’s a bit of a stretch to say line numbers were mainly there for editing. Even if you ignore GOTOs the most common method of running pseudo-functions on the BBC Micro was GOSUB.
- jacquesm 8y ago> Even if you ignore GOTOs the most common method of running pseudo-functions on the BBC Micro was GOSUB. I don't even recall a single time when I used that, the usual control structure for that was DEF PROCprocedurename(parameters) ENDPROC See: http://www.bbcbasic.co.uk/bbcwin/tutorial/chapter16.html http://www.bbcbasic.co.uk/bbcwin/tutorial/chapter16.html Ditto 'proper' functions using DEF FN with parameters and a return value using the '=' sign.
- vram22 8y agoYes, I read that there were some more structured-programming-oriented BASICs that came out some time after the structured programming movement started [1]. IIRC, one such BASIC was by a company founded by John Kemeny [2], one of creators of the first BASIC. It might have been called TrueBASIC or PureBASIC or some such name. Think I read about it in some computer magazine. [1] https://en.wikipedia.org/wiki/Structured_programming https://en.wikipedia.org/wiki/Structured_programming Aside: Just looked up Kemeny in Google. [2] https://en.wikipedia.org/wiki/John_G._Kemeny https://en.wikipedia.org/wiki/John_G._Kemeny Interesting snippet from his Wikipedia page: [ Kemeny's family settled in New York City where he attended George Washington High School. He graduated with the best results in his class three years later.[2] In 1943[1] Kemeny entered Princeton University where he studied mathematics and philosophy, but he took a year off during his studies to work on the Manhattan Project in Los Alamos National Laboratory. His boss there was Richard Feynman. He also worked there with John von Neumann. Returning to Princeton, Kemeny graduated with his BA in 1947, then worked for his Doctorate under Alonzo Church, also at Princeton. He worked as Albert Einstein's mathematical assistant during graduate school.[1] ] And the company and BASIC dialect he created later were both called True BASIC: https://en.wikipedia.org/wiki/True_BASIC https://en.wikipedia.org/wiki/True_BASIC That was a lot of other eminent people he was associated with :)
- EvanAnderson 8y agoKemeny was a really interesting guy. His obituary[1] gives some good background on him. I read his 1972 book, "Man and the Computer"[2], in the early 90s. Some of his predictions about how computers would be used in the future (ubiquitous networking, online shopping, etc) were spot-on. His idea of "mainframes" providing centralized services seemed backwards to me in the early 90s, when I was just getting my PC onto the Internet for the first time, but it appears that he got that one right too. [1] http://www.columbia.edu/~jrh29/kemeny.html http://www.columbia.edu/~jrh29/kemeny.html [2] https://archive.org/details/mancomputer00keme https://archive.org/details/mancomputer00keme
- vram22 8y agoThanks for the info. I read his obituary that you linked to. It really is interesting, as you said. He had great vision. And did a lot practically too, of course.
- pjmlp 8y agoBASIC dialects with support for structured programming without line numbers, and compilation to native code, were already available on CP/M.
- jimnotgym 8y agoGreat, and I'm saying that was worse for beginners than line numbers (like the BASIC in the linked article) Letting people crawl is a great way to teach them the advantages of walking.
- pjmlp 8y agoWhat I meant is that people were able to crawl, walk and run without switching toolchain.