There's a book in Russian, German Noskin, First computers (literally board digital computing machines) for space applications (Герман Носкин, Первые БЦВМ космического применения), ISBN 978-5-91918-093-7.
The author himself participated in many early projects (mostly in hardware) and according to him analog hardware was in favor for a long time, he mentions that space rendezvous tasks didn't use digital computers until the late 70's. Due to this policy many digital computers were really proofs of concept although used in other areas of soviet economics. The first computer according to him used on-board was the Argon-11S (Аргон-11С) on the unmanned missions to the Moon closer to Apollo-8 in time. Also Noskin briefly says that the on-board computer Salut-4 was compatible with general-purpose computers ES used in Soviet economics so it was possible to develop software in PL-1 and Fortran.
There are several mentions of Buran program languages on Russian websites. According to Vladimir Parondjanov, an engineer from the program (Russian Post) three languages using Russian as a base were developed: PROL2 (ПРОЛ2) for onboard programs, Dipol (Диполь) for earth tests, and Laks (Лакс) for modelling. All of them were intended for use not only by professional programmers but also engineers from other areas.
When the Buran program was closed they were merged into a new language Drakon (Дракон, Russian word for "Dragon") that is claimed to be be a "graphical" language having 2-dimensional descriptions of the programs and using arbitrary well-known languages for code generation. This language was also intended for use by non-programmers. The language probably does not have and international community and isn't even well-known within Russia although heavily promoted by its author, Vladimir Parondjanov (the Russian Wikipedia article article is very long and was even deleted once for not following Wikipedia rules). Drakon was first used for programming for the Sea Launch missions and has been used in other Russian space programs since.
Sure. Before the Altair/MITS/SWTPC/Kim/Sinclair/Pet/RadioScrap/OSI/Apple things happened, there was a delightful little machine known as the IBM 5100. It had BASIC in ROM, a big cassette tape drive (or two), 8 KB of memory. a 24 line screen, and a printer, all for a measly USD 10,000 -- an order of magnitude cheaper than your typical mini. 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. With custom software, of course. The 5110 followed that, with the tape drives replaced by 8" floppies.
Any commercial software? Galoons.
Can you say general ledger, payroll, accounts payable, accounts receivable, inventory control, and invoicing? I have been there, done that -- in BASIC. Utility bills, new and used car inventory, garbage truck pickup and beverage delivery scheduling? Yup -- BASIC. Want to track iron ore from mines onto trains onto ships... BASIC. Everything that wasn't raised floor was likely getting done in BASIC. Commercially, I mean. (Because RPG II doesn't count ;-).
How did one work around the limitations?
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. And two tape drives, if possible, because automata theory aside, merge sorting on a single tape is, well, a tad slow.
Oh, sorry - you meant the limitations of BASIC.
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.
Nah - just kidding. 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.
We also used modularity - where you called a new program, ran it till it quit and returned back to the calling program. 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...). A lot like a fork and exec, but without the fork, only better because the whole memory space was shared.
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. Stuff like that. Oh, and structured programming, a little later -- "by convention" again.
Some even went a little to the extreme: OAOO, YAGNI, TSTTCPW, pairing, refactor mercilessly, that sort of stuff. Not by those names, of course. (See also: Ecclesiastes ;-)
The glory days.
Best Answer
Time-sharing, multi-user, systems were invented in the late fifties, but they were comparatively rare through all through the 60s. Most computers ran in batch mode, running a single program at a time, with no facilities for interacting with users other than the card reader, the line printer, and maybe a separate teletype for the console operator. Terminals you say? Up until the late 60s, electronic terminals with video displays were exotic, fabulously expensive gadgets limited to research facilities and specialized jobs like air traffic control, and national defense. Those computers that did support interactive sessions generally used teletypes. Entering a program on a teletype was just as unpleasant as punching it onto cards.
Let me expand a little bit on the problem of batch processing since it is so foreign to the way most people use computers now. It would certainly have been possible even in the 50's to write an interactive editing program that would have worked with a teletype. However, because of batch processing, the editing program would have completely monopolized the computer the entire time you were sitting at the teletype editing your program. Since several hundred to several thousand other people would have been waiting their turn to run their programs, you would have been a very unpopular person. You would also have been charged several dollars a minutes while your editor was running. It was much more cost-effective to write your program out in long hand, hand the final draft to a key punch operator, and let them transcribe your program onto punch cards or paper tape. That avoided wasting the CPU's precious milliseconds waiting for you to type 'GOSUB'.
Hard disk drives were also invented in the late fifties, but they were small (around 1mb), rare and expensive, not something you gave users casual access to. Obviously users did need some sort of long term storage. The choices were paper tape, punch cards and magnetic tape. Magnetic tape was new and expensive. Paper tape was used by some systems, but punch cards were an established technology used in non-computer business machines like tabulators and sorters since 1928, so a lot of businesses already had a major investment in punch card machinery and storage.