On 19/04/2013 19:18, Alan Adams wrote:> In message > The Natural Philosopher wrote: > >> On 19/04/13 17:07, Mark wrote: >> >> the most basic (sic!) thing is to get the idea of programming across >> quickly and easily. Basic does that. > >> Plenty of time to move on to structured approaches later when the >> deficiencies of BASIC make it perfectly clear why you should.. > > You can write good structured code in BBC BASIC. It has most of the > tools you would want. (Data structures are missing, but there are > freely available libraries which add that.)
You are joking?! BBC BASIC is just too basic to be of any use these days. It lacks objects, structures, rich types, dynamic memory and common libraries - just about everything you need from a modern language.
BBC BASIC's place was on a BBC Micro when you could write a useful text based program with a few lines of PRINTs and INPUTs to do menus, and chuck a some graphics in with MOVE and PLOT. That's when I learnt it, and it was great at the time.
But by the time we got to WIMP based systems, even those with simple APIs such as RISC OS, BASIC was inadequate. The lack of structures made every interaction with the OS a mess of indirection operators (not much better than PEEKs and POKEs), lack of dynamic memory severely limited what could be done, without going outside BASIC to implement a large swath of functionality. Anyone with any sense went the way of C and later C++.
If you use BASIC today all you'll learn is it's many failings, and wish you'd started on a modern language.
Any useful program these days is several order of magnitude larger than the BBC Micro days, it makes no sense to use a primitive language and re-invent every wheel every time, code reuse is the key. Object orientation makes for the best code reuse, and it makes sense to understand it before embarking on functional programming. Code reuse requires code, so building on top of rich set of libraries is essential, whether it is python, C++ with STL, Java, or even C# with .NET framework (mono on Linux of course).
Python on the Pi makes a lot of sense, you can start with a simple text based progams as easily as with BASIC, but it can grow with the user, with transparent dynamic memory management of arrays and list, introducing structures and objects, plus as vast set of libraries covering almost every aspect of programming you can think of.
Although it's syntax is quite different other C like languages which programmers may move on to, all the concepts learnt are readily transferable. Where as to move on from BBC BASIC, you'll be starting again from almost scratch, which is so many clinging to it despite it's unsuitability. Don't try to condemn another generation to that fate!