Originally Posted by Mrs Beanbag
The equals sign means something different in every one of these statements. The meaning of = on line 20 is responsible for so many errors made by people who learnt to program in BASIC and then graduated onto a more sensible language. But on the 30th line it is difficult to know what it means at all. I know what it does, but it is literal nonsense.
I know what you're saying here, but in my mind, the equals means the same thing in all of those cases - it means "Equals". It's the "If" that changes things in the second case there. For someone learning to program, checking the result of an assignment as If (a = 5) does in C seems crazy. Why would you ever need to check if such a simple instruction was carried out? (Yes, I know there are cases where this is useful but that's much more advanced than these examples). And the For loop is actually assigning the value to the variable, so it's the same as the first statement just as part of a larger statement. Besides, that's the same in C, even the same keyword, only with added semicolons to confuse things (are they not end of statement markers?)
String handling in more modern BASICs is much more flexible and standard than maybe you think. For your example, in Blitz the Print statement uses commas to separate arguments, just like every other statement with multiple arguments:
Print "Hello ", name$, " and welcome!"
Blit shape1, x, y
Alternatively you can join strings and use them as one argument, again, just like with any other command:
Print "Hello "+name$+" and welcome!"
a$ = "Hello "+name$+" and welcome!"
The "Let" keyword is all but extinct these days too
Anyway, I think these are all just minor things. I do believe BASIC is more instantly accessible - as a kid I always found C very intimidating - and that could be the difference between getting someone interested in programming and giving up at the first hurdle because they didn't understand what stdio.h is, and why it looks different to the other lines.