Quote from Jongoleur on December 13, 2011, 22:58
from the early 80s onwards, block structuring and sane looping and decision structures (all to be found in BBC BASIC) mean that modern BASICS are no better or worse than any other languages for introducing beginners to programming methodologies.
This is a fair point, and, modulo more advanced concepts like automatic iterators (which are a sin anyway) and the basics of functional programming, BASIC is reasonably well equipped with control structures. Well, it's more or less sane, anyway. However, I would argue that programming only starts with control structures and the "other 50%" is data structures.
The vast majority even of "modern" BASICs don't provide any significant data structures beyond String/Number/Array. No linked lists, no stacks, no queues, hashes, nada. Not only are these structures lacking, the fact that, in most cases, there are no user-defined structures allowed makes implementing such structures difficult (at best).
If you want to go on to do OO, you need to know about data structures, because that's a significant part of what OO is - indeed, if you look at C++'s implementation, it boils down largely to "structs and function pointers". Database manipulation - that would be data structures again. Indeed, almost any significant programming task requires (or is made significantly less complex by) a decent set of data structures.
Code and data go hand in hand. Deliberately restricting the choice of data structures to "items that can fit in one word of memory, and arrays of those items" made sense *only* when the logical "next step" was going to a language that's "close to the metal" (in 1964, that was assembler, in most cases). Most programmers these days will never touch assembler, and stay within the comfort zone where 99.9% of the useful, complex, data structures they need are built into the runtime.
You can't teach programming without teaching data structures, and you need to teach the two alongside each other.
BASIC is crippled. It doesn't "encourage bad practices", it is a bad practice in of itself. There is nothing BASIC can do that can't be done better (and usually in a manner that's more concise and readable) by other languages. Python is the first to spring to mind, but it's far from being the only one.
C'mon old boy! Let's go for a walk.
You know it makes sense.
 VB, for all its sins, does actually allow one to define structures. The syntax is unintuitive, but that's unimportant - it lets you do it. VB is probably the best of a bad lot, though it pains me to say so.
 Still with VB, this article has a piece of example code on how to do a linked list. Well, more or less. http://www.codeproject.com/KB/.....basic.aspx
 Which, the astute reader may have noticed, I'm not overly fond of.