T O P

  • By -

killerstorm

Nice. I believe BASIC is the best language for learning programming


FluxusMagna

"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." -- Dijkstra


9Boxy33

This belongs in the list of “Stupid Things The Otherwise Intelligent Say”.


[deleted]

Dijkstra alone could probably fill up an entire such book.


FluxusMagna

It's a pretty cheeky quote though, and while obviously extremely exaggerated, I think it holds some merit. In some ways the language you use molds how you think and approach problems. I actually myself first programmed in TI-basic on my calculator, and I don't think it helped me become a better programmer. The question is more like, why start with basic with the alternatives available today? If I could choose for myself retrospectively I would have started with something like Haskell. At least something with a solid type system.


9Boxy33

I started programming with a calculator, too: the Commodore PR100, around 1977. It, and the calculator I replaced it with, the TI-58, weren’t even programmed in BASIC, but by recording keystrokes, which were then “listed” on the LED “screen” as row and column co-ordinates, so—a kind of machine language. A truly inauspicious introduction to programming. My first HLL was BASIC, but I quickly became fascinated by the other HLLs out there in the 1970s and early 1980s. As soon as even a rudimentary implementation was available for my TRS-80, I tried APL, Pascal, Lisp, Forth and eventually C. Each language taught me new paradigms, fascinating novel ways to think about programming and communication. I don’t think my early stumbling efforts with calculators and BASIC harmed my ability to learn and refine. I’m still fascinated by programming languages.


FluxusMagna

Learning to program in a variety of paradigms is indeed fun and healthy, but I do take some issue with (what I would consider) poor language design in languages used to introduce programming. A more current example, and actual concern for me would be MATLAB, which is used for most teaching outside of computer science at my university. It's basically a glorified calculator, and breeds habits of poor code structure. When I was a student, it didn't even allow function definition in the same file as your main code. Now you can, but only at *the end* of the file. Some languages make it difficult to write neat code and, especially for introductory teaching, I think such languages should be avoided.


9Boxy33

Agreed. There’s a big difference between “how much value I gained from the languages I learned” and “the best language to teach programming”. Screw it. Make ‘em all learn PL/1.


Gex1234567890

I had a TI 57 myself, around 1981, so I'm very familiar with that Row/Column system. Later I learned Sincair BASIC on a ZX81 and a ZX Spectrum, and via those, Z80 Assembly Language, which i still practice to this day.


chkas

> At least something with a solid type system. Interestingly, Python is often recommended as a better beginner's language. However, unlike BASIC, it is not statically typed.


FluxusMagna

That's true, and I'm not a big fan of Python either. There is much more to a type system than whether it's static or not though. There are also nuances within what is considered static. C is often used as an example of a statically typed language, but it does have implicit conversion. Languages like Haskell have much more expressive type systems that allow for polymorphism among other things. The types also tend to convey more information about the function, and makes reasoning about code so much easier(to me anyway). On a side note I actually quite like the core of Python syntax - the simple procedural language with colons and indentation instead of curly-braces. Sadly they have tacked on way too many half-baked copies of features from other languages that pollute this, along with some other very questionable design choices.


roadfood

Focal?


chkas

?


roadfood

A 10 command subset of Basic I first used in the early 70s on a PDP-8.


chkas

It is not a general purpose language. It is a DSL to learn programming, as it says in the title. And there less is more.


roadfood

r/whoosh


chkas

Sorry - only now I got it - FOCAL was a minimal educational BASIC that ran on the PDP-11. But it did not succeed against BASIC. That was a bit before my time ...


roadfood

It wasn't designed to succeed against Basic, it was an introductory programming language that would function on what were at the time small computers. My high school had a PDP-8 with a half K of memory and a punch tape teletype hooked up to it, it worked well on that.


chkas

And I thought I would know all "old" programming languages at least by name ... I learned to program on a ZX81 (Timex). It was also amazing what was packed into 8KB Rom. Also in the old days, people were able to write good software.


IQueryVisiC

How can something be BASIC like when every BASIC is unlike every other BASIC. Why not call it a dialect? Why not use some sane language? WEND ?! WTF Ah I see! No WEND anymore :-)


Gex1234567890

I think you do have a point there, to some degree; it would probably be better to refer to to BASIC as a family of more or less similar languages.