You don't need named subroutines for that, at all.
Original BASIC was essentially a more user-friendly 1956 FORTRAN, but timeshared, interactive BASIC terminals beat Fortran punched card decks, and BASIC was more accessible than assembly language for microprocessors but still ran in 8KB. Most importantly, it seems that for many people BASIC enkindled a love of computing (as can be seen in many HN comments.)
You're right though that large and composite programs benefit from modularity and named, multiline, reentrant functions. And BBC BASIC seems like it was an impressive system. In an alternate reality, I wonder what would have happened if BASIC and Tiny BASIC had been based on another language (e.g. Lisp, which had history at Dartmouth) and Bill Gates had implemented a version for the Altair. (Note there was later a muLISP/Microsoft LISP that ran in 20KB.)
JavaScript seems to be as ubiquitous as BASIC once was, and is a modular and scalable language used by novices and professionals alike. But there just isn't the push to programming that "boot to BASIC" systems delivered, or the pull to create your own programs or web sites, since there are millions of existing ones that you can use.
I have sometimes¹ wondered this about Forth and Occam; both of which were used by some microcomputers at the time.
But I'd still say they're an OK choice for toddlers.
I agree with you that writing anything significant (comfortably) requires more than BASIC gives and you need to move on to something more substantial pretty quickly.
In my case the beginning of my path was:
ROM basic on a Compucolor. GWBasic on a XT PC. Turbo Pascal. Quick C/Turbo C.
A bit of assembly thrown in in between (think more Debug than MASM).
Edit: added my path
BASIC - original BASIC - was designed to get people programming computers for fun and work, with little or no weight given to understanding 'computer science'. After a long career devoted to the latter, I respond 'pfooey!' to that.
Named user-defined functions is essential for any program longer than a screenful of text.
I wrote business software back when people did such things in BASIC. It was no big deal.
I remember a conversation with someone who insisted that no one should be playing songs on the guitar until they first memorized all of the scales. I’m just strongly advocating building joy and a feeling of capability before anything else.
On the other end, I really can't stand Scratch as being distant enough from real programming to make the leap difficult (as seen by my son and fellow students).
And neither are you. Why are you speaking for someone else, much less a stranger on the internet?
you presumably wrote “business software” as an older, experienced, programmer?
No, your presumption is wrong. I specified "business software" because business software of the era was typically more complex than other software, and thus required more GOTOs and other conventions that the previous commenters have stated are problematic.
> No, your presumption is wrong.
Fair enough. So it was “no big deal” for you. But functions clearly have value, since every language since that time has added them as a language feature. And I claim that, barring the occasional genius like you, most people (including myself at that time) actually need the language support in order to be able to get used to building abstractions in ever larger programs.