The thing is though, as most people here know, the Beeb has 16k bytes for BASIC and 15k bytes for the OS. Most 8 bit CPU systems around that time frame had 16k bytes (or less) upto about 24k bytes of ROM in total for the OS and language (normally BASIC). Some of these were not very extensive or very sophisticated. But some did have some nice features. For me, there are three things I like about the version of BASIC in the ZX Spectrum: the inclusion of spaces in the keyword tokens so that it is easier to read listings, the I/O channels (so you can use PRINT #n; to send data to any valid open I/O channel etc...) and the string slicing system, for example B$=A$(5 TO 10).
There were a few machines that only had a simple command line tool instead of a language. You had to load in a language from mass storage. Due to the language loading into RAM, these could include features that may not have made it into a ROM version. But of course, if it was a tape based system, you had to load BASIC, then load the BASIC program... which kept you waiting for what seemed like an eternity
Things that l loved about programming the Beeb in BASIC back in 1982 include: procedures, renumber, nice keyboard, abbreviated keyword entry, and disk drives (well, at school anyway).
Mark