All the cool kids were using CP/M with the modules swapped out for ones rewritten for Z80. (Or CP/M-86.)
Okay, I want that Grace Hopper painting on a votive candle now.
I imagine someone makes one… or you could always make yourself one!
A list very similar to mine, with some notable difference, in chronological order:
- IBM360 assembler. I never really run a program, but I’d got a full shelf of documentation as an 11 y.o. and read it front to back - learned a lot.
- 6502
assemblernay, machine language, 0s and 1s on self built HW - FORTH, a self written interpreter on that HW!
- BASIC, school bought an Apple ][e at last!
- Fortran, at uni. A good, solid language, especially in its modern incarnations.
- APL, It all made sense, and so much fun! But now my brains are old and scrambled.
- Pascal at uni and used for my master dissertation.
- occam: the dissertation was an occam compiler for X86!
- lisp, well, if you are an Emacs addict, you’ll sooner or later get your hands dirty.
- C and I never looked back! I might be able to recite ample portions of the ISO standard by heart, just select the version!
- Poplog - a quite obscure language, we used it for an expert system embedded in a FORTRAN simulation!
- C++, that kid has grown so much since I first met it! but we lost contacts a long time ago.
- a smidgen of Erlang, though it never “clicked” for me.
- Python, a handy tool when my DM42 is not enough.
- Arm assembler, sporadically, usually embedded in C.
- Rust - studying, learning, cursing. Great potential, steep learning curve.
Nowadays my programming is mostly C on MCUs - I like the complicated simplicity of having a space and speed constrained machine to tame, and the intricacies of writing HW drivers.
/emote runs away screaming in horror.
(I will not take away from your nostalgia for it, but I also refuse to go back to it! No, you can’t make me!)
javascript’s kind of fun, because it doesn’t have to be too complicated, and it can run in any browser. ( and there are, of course, just about a million different game engines to play with these days. and minecraft! )
I never saw her speak in person, but as part of my US Air Force technical training (MOS 491X1, Communications / Computer System Operator) we watched a recording of one of her lectures, including a segment of her handing out nanoseconds. There were at least a few in the training group who had never actually had the concept adequately explained to them – that was such a perfect aid in conveying it!
(And then there were the picoseconds … ← Because pepper isn’t part of the emoji set here.)
I knew enough of it to make some changes to scripts for the web and for some of the variable print stuff at work, but we changed software in the back end, and don’t use it now.
LOL!
It was either that or resort to cold-bloodedly writing Smalltalk.
BALR R14,R15
For the algo, yes, that’s a complete sentence / command.
Do you also remember Creative Computing magazine? It had BASIC programs, mostly games, IIRC, printed inside which you had to dutifully type into a computer.
Yup. Puts the address of the following instruction into register 14, and then branches to the address in register 15. The classic sequence for setting up a memory base register was:
BALR 12,0
USING *,12
The BALR put the address of the next instruction into R12, and then didn’t branch because the second operand was register 0. The USING statement was a promise to the assembler that register 12 would contain the current address at runtime, and the BALR fulfilled that promise at runtime.
I always liked the fact that you set up the base register by using a branch instruction that didn’t branch.
Ugh, APL. I was self-taught BASIC but as a college Freshman in 1976, I had to learn APL. It was so very different. I kept wanting to make IF/Then loops.
About the only thing I remember was how to add-up all the numbers from, say 1-100, like this very compact example of APL:
+/ρ\100
Plus slash rho compression 100
I learned BASIC when I was a high school senior in 1976.
We had a student teacher in Physics who let me use her account on our local college’s DEC PDP-11 which used DECWriter II dot matrix paper terminals. There was also one CRT terminal which everyone coveted.
I used that time to self-teach BASIC, mostly from typing-in the code for simple games printed in Creative Computing magazine, which they had at the computer center.
After the student teacher graduated, I kept going quite frequently as the computer center was dead in summer. This arrangement ended that August when the head of the computer center suggested it was time for me to stop coming.
Late to the party, but…
I made a career of, and built a company from, making a CNC drilling machine using MS QB4.5 and their “Professional Development System” (I think also referred to as “Basic 7.0”). 1991 or so.
Not all the way down to the motion control functions. Just a part program interpreter, the “PLC” to handle the various I/O, and a user interface. I just fed motion commands into to a multi-axis motion controller, usually Galil. 400-series in a IBM PC-XT, then their 600, and eventually 1000-series controllers.
Eventually replaced the PC with proper CNC controllers (usually Fanuc, a few Siemens and Heidenhain). No BASIC in them, but they each have “macro” interpreters that are BASIC-ish. But worse. For instance, no variables names… everything is just a number in #1234 format. No GOSUB. But I wrote some amazing solutions anyway!
BASIC naysayers: it’s possible to write crap code in (almost?) any language. BASIC is good enough for 90% of what most people need(ed). Back in the day, at least.
But give me a chance to reload and I’ll aim more carefully this time.
maybe this will help?
Me, I’d say Interfaces, Abstract Classes and Reflection enabled me to isolate more of my code from some of the more questionable system dependencies. As well as just directly writing small byte code for testing. If hell is other programmers but there isn’t much avoiding it in any language, at least some languages give you better tools to manage it. Did I horrify any functional language programmers? 0_o