I found this quote by Edsger W. Dijkstra on the BASIC Wikipedia page.

Dijkstra wrote:
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

Edsger W. Dijkstra is a pioneer in computer science and has done a lot of stuff with creating algorithms and theory of computer science. He is certainly qualified to comment on the matter, so why do you think he made this statement? The Wikipedia page does not elaborate on it at all.

Also, do you agree with him that BASIC potentially ruins a programmer when they try to learn different languages?
I think "mentally mutilates" is a bit strong.

Kerninghan had a similar quote with Scratch:
Scratch is like trying to get to the moon by climbing a tree. For the first 10-20 feet it's really easy, but then your're stuck, you can't go anywhere!
I can see why he said that, bit I really don't think so. It could be used as a stepping stone to more powerful languages, like how ICE helps get to C
I agree with _iPhoenix_, it may not be the best language, however I haven't found it to be a hindrance at all while I learn other languages like HP BASIC, C#, and Java. In fact, sometimes it has given me an edge over my classmates.

I completely agree with his statement on Scratch though. Laughing
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence."


"The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity."


"Projects promoting programming in 'natural language' are intrinsically doomed to fail."

And the line he used to kick off this whole section of his rant:

"Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."

That all sheds a little extra light on the point I think he was trying to make. He might have witnessed the formal, concise, symbolic descriptions of algorithms as he knew them—in what was initially a mathematician's pursuit—fall away to a watered-down, lazy, everyman variety. His dismay might be comparable to that of the turntable disc jockey's taking notice of hundreds (or maybe thousands) of laypeople hooking up their iPods to loudspeakers at nightclubs -- and getting PAID to do it! (It will surely make pure programming/turntabling into a lost art!) Right or wrong, I think the guy just needed to exercise the pedantry that had hitherto held his field together, and vent his concern about the subfield running away from it all.
I don't want to get into an argument, but I think both Scratch and BASIC have been very important in my development as a programmer. Although I've only started the journey, and haven't learned any real programming languages yet, these tools started me on this programming journey by helping me visualize how to get from a to b with programming, and by helping me work with the tools I have. I can say from experience that having a deep understanding of the pen in Scratch has given me a direct advantage when designing the look of programs in ICE, because I know how to get where I want to go. I think the point these people are trying to make is that perhaps the syntax of these languages can be a stumbling block when trying to learn other languages, but the concepts and mindset they taught me will be invaluable as I continue to learn and grow.
Scratch is like trying to get to the moon by climbing a tree. For the first 10-20 feet it's really easy, but then your're stuck, you can't go anywhere!

I do have to disagree with this statement, as Scratch is not meant to be used to "get to the moon" Scratch was not designed to make extremely complex programs, it was designed to help new programmers visualize the way a program works. Scratch is more like trying to get to the top of a tree by climbing a tree. You may not get very far, but it the view from the top of that metaphorical tree will help you to expand your programming horizons.
I hope that that is not a terrible metaphor Smile
Well, what about learning JavaScript at first, but then you realise it's a drawing-based JS Library that means nothing? I learnt that the hard way.

Also, learning TI-Basic is a step to learning Ice, which can (as said earlier) help with learning C.

Learning to program is a step-by-step basis.
Weregoose put it really well.

I think people get overly attached to their programming language of choice and are extremely, extremely defensive about them.

This is kinda understandable, but I think it's pretty harmful.
Having started out with basic, I can honestly say that the basics were there. By the time I got around to learning Java, VBS, C#, etc. I already had a lot of concepts (like the different kinds of loops, some arithmetic manipulation, data types...) that made it easier. That's not to say that the wonky techniques like this one were very helpful though Laughing .
Also, regarding COBOL/IBM-RPG/FORTRAN/Pascal/any other legacy garbage, they mostly still teach it for a few reasons:
  1. Legacy programmers are getting harder to come by, so it is in relatively high demand
  2. In a program that otherwise teaches only HLLs, it brings programmers closer to the actual hardware
  3. They just never took it out of the program

But the techniques used in those languages remind me of basic in terms of uselessness, for example compiling a DDS before compiling your program, or subdividing your program in HFDICO lines (or Identification, Environment, Data, Procedure, etc). I just feel like there is a lot of mumbo-jumbo that doesn't really have any equivalent in newer languages, and that's where a lot of students feel like it is a waste of their time.
I'd agree with what has been previously stated. I first learned on Commodore BASIC and then TI-BASIC was a logical step for me so that I could program on the go. They introduced me to a lot of important CS and programming concepts and they are what really jumpstarted my interest in mathematics in general. I haven't really moved on past those languages but I'm learning C++ right now and I'd like to learn ASM for 68k and z80 calcs as well as C for 68k calcs and ASM for the 6502.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum