It’s a bit of a straw man that. It’s not an instructional language. You can use it as one if you choose.
Erm, no it's not a strawman because I never said that it was an instructional language. I merely opined that to
use it in place of an instructional language was probably not a great idea.
There's quite a body of experience from the world of education that suggests that specifically designed beginner instruction languages are a good thing
TM. It's instructive (pun unintentional, but I'll take credit for it) that Smalltalk came of the the Learning Research Group at Xerox' Palo Alto Research Labs from an effort to make a programming language that could be taught at
infant school level.
They actually succeeded in teaching 6 year olds to program using it. Remember that's about when you start to learn to read and write the language that you've grown up with, language that will be parsed with a whole human brain for syntax and semantics, not the pathetic fussy brain of a literal computer. It's
quite an achievement to have got six year old to write any code that actually works.
I mean it could have semantic braces instead like the C-like languages. That left us in the domain of non memory safety C, bonkers JavaScript, general fucking shit show PHP and industrial scale misadventure and the main reason we’ve never been visited by an alien race C++ . Those are, well someone more mired with idiosyncrasies as I think I alluded to.
l ask you a question; have you ever done a 3-way merge on 7,000 Java files? Then you’ll know why braces aren’t necessarily the best idea out there. The test suite checks semantic errors in python. In Java the compiler twangs your ball sack for an hour asking you to inject squiggles not because it needs to be told what is semantic and what isn’t.
The real problems in the world are far greater than semantic whitespace which might not be a bad idea after all.
You seem hung up on braces. Bad experience with orthodontistry?
A litany of the failures of assorted programming languages is really neither here nor there, nor is getting yourself into the situation where you even need to
contemplate the idea of doing a three-way merge of 7,000 source files**. I'd opine that
none of them are particularly good, and especially they're none of them particularly good as an introduction to programming. Far, far, too many introductory courses to programming are introductory courses to programming
in language
x rather than courses in programming
per se.
Of relevance is my own introduction to programming. It was at a one week residential summer school in 1974 as a test subject for the "
Computer Education in Schools" syllabus that ICL cooked up at the behest of the government of the day. They produced their own programming language 'CESIL*' which was 'assembler made easy' which they taught in the first half of the week, and they taught BASIC in the second half of the week. I spent the next year helping one of the math's teachers at school teach that course, taught myself FORTRAN and COBOL, and took a commercial job as a junior programmer in 1976 where I was bashing out COBOL for a software house that serviced the Merchant Banks of the day. So that approach clearly had some merit as far as the computer industry
of the time was concerned.
The question is what would make a good introductory language now? It certainly isn't assembler-lite like CESIL was, but neither is it a language like Python that throws in everything including the kitchen sink and has idiosyncrasies that make it non-representative of programming languages as a whole.
* Computer Education in Schools Introductory Language
** To paraphrase Lady Bracknell "To have to do a three-way merge of one source file is unfortunate; to have to merge 7,000 of them smacks of carelessness."