


CPUs were clocked at a few MHz (often much less for microcomputers) and had less memory than would be occupied by the HTML it takes to render this page. To understand why, you have to understand the context of the 1970s and 1980s, when BASIC grew on mini- and microcomputers.īack then, the machinery was positively scrawny by today's standards. Yes, there were numerous commercial products and other "serious" development done in BASIC. Some even went a little to the extreme: OAOO, YAGNI, TSTTCPW, pairing, refactor mercilessly, that sort of stuff. Oh, and structured programming, a little later - "by convention" again. Rigorous use of conventions also helped - you know, like "you MUST always target a GOSUB at a comment line that says what this routine does, and you SHOULD do the same for a GOTO when possible. A lot like a fork and exec, but without the fork, only better because the whole memory space was shared. A gosub on steroids (because you got more memory to use), but way slower (because it took a while for the machine to find the program on the tape, and load it in, and then rewind and find the original program and load that back.). We also used modularity - where you called a new program, ran it till it quit and returned back to the calling program. We didn't actually have that problem until micro-er, home computers showed up, with a BASIC interpreter that couldn't do renumbering by itself. Well, you had to manage your resources pretty carefully - things like line numbers - because you didn't want to run out of those real pain in the behind to have to renumber a whole section, and type it all back in, without accidentally losing a line or two of code. Oh, sorry - you meant the limitations of BASIC. And two tape drives, if possible, because automata theory aside, merge sorting on a single tape is, well, a tad slow. Well, the first thing you did was send the customer back to IBM for more memory, Because who could write anything serious in 8 KB? You simply had to have 16. Everything that wasn't raised floor was likely getting done in BASIC. Want to track iron ore from mines onto trains onto ships. Utility bills, new and used car inventory, garbage truck pickup and beverage delivery scheduling? Yup - BASIC. The 5110 followed that, with the tape drives replaced by 8" floppies.Ĭan you say general ledger, payroll, accounts payable, accounts receivable, inventory control, and invoicing? I have been there, done that - in BASIC. Originally built for scientists ( APL in ROM was also an option), but then a few accounting types discovered it, and started a craze: every small business wanted one. a 24 line screen, and a printer, all for a measly USD 10,000 - an order of magnitude cheaper than your typical mini. It had BASIC in ROM, a big cassette tape drive (or two), 8 KB of memory. Before the Altair/MITS/SWTPC/Kim/Sinclair/Pet/RadioScrap/OSI/Apple things happened, there was a delightful little machine known as the IBM 5100. Sold to several customers (not an in-house development).Not trivial, that is, reasonably large (say: at least 1500 LOC).Not a game (I know some commercial games were written in BASIC, for example, Pimania).While BASIC dialects may have promoted bad style amongst aspiring programmers, were there larger commercial projects created in such a BASIC dialect? If so, how did they manage to live with and workaround the obvious shortcomings? I'm talking about BASIC dialects before 1991, when QBASIC and Visual Basic appeared. Of course, the line-number based BASIC was prone for creating spagetti code, also because most BASIC dialects missed structural statements like WHILE, doing everything but the FOR-loop with IF, GOTO and GOSUB.

Many of us, including me, started their programming life with programs written on home computers, something like 10 PRINT "ENTER RADIUS"
