Also if you like the Z80 you should try
https://en.wikipedia.org/wiki/Zilog_eZ80
Which is crazy fast not to mention the only 8-bit architecture that got extended to 24-bit addressing in a sane way with index registers. (Sorry the 65816 sucks)
Also if you like the Z80 you should try
https://en.wikipedia.org/wiki/Zilog_eZ80
Which is crazy fast not to mention the only 8-bit architecture that got extended to 24-bit addressing in a sane way with index registers. (Sorry the 65816 sucks)
They really didn't have any choice if they wanted to actually accomplish something.
The 8-bit machines of the day, CP/M running 1-2MHz 8080s, 2-4MHz Z80, with no memory, and glacial disk drives (with not a lot of capacity).
Go ahead and fire up a CP/M simulator that lets you change the clock rate, and dial it down to heritage levels (and even then it's not quite the same, the I/O is still too fast). Watching the clock tick by as you load the editor, load the file, make your changes, quit the editor, load the compiler, load the linker, test the program, then back to the editor. There is friction here, the process just drrraaagggsss.
Turbo Pascal was usable for small programs. In memory editor, compiling to memory, running from memory. Ziinng! Start writing things to disk, and you were back to square one. The best thing Turbo did was eliminate the linking step (at the cost of having to INCLUDE and recompile things every time).
It was a different time.
As someone who lived through that, we simply didn't know any better. Each generation got incrementally faster. There were few leaps in orders of magnitude.
But going back, whoo boy. Amazing anything got accomplished.
I was able to connect to BBS only during the summer internship I did, at the end of my vocational school training in computer programming.
When I afterwards arrived into the university, Gopher was still a thing.
Lots of paper based programming, and wild guessing, there was no Stack Overflow to help us out.
There was less to learn, and so you could learn it pretty thoroughly from more meager resources.
Until I got hold of Input magazines collection, I was pretty much stuck with my Timex 2068 manual, and its set of demos.
It is like learning a foreign language from a dictionary without anything else, until someone else shows the structure of the sentences.
Not super fast obviously, but still okay-ish. Just don't use emulator and debug on real device instead. Well, not that bad.
I had just read in Byte magazine that there was a good CP/M emulator that ran several times faster than any real CP/M system already in 1988 or so. So I used that software to run a CP/M environment and port the code to some BASIC variant there.
microsoft in particular did their initial development of altair basic on harvard's pdp-10, using pdp-10 assemblers and debuggers; not only did they not have an altair, nobody had an altair
but an awful lot of pc software was written on pcs. woz wrote integer basic on the apple. bds c was assembled on cp/m. probably the majority of pc developers didn't have access to a bigger computer
those who did had an advantage, but sometimes it backfired. i remember the ucsd p-system as being unbearably slow, and i suspect that part of the reason was that its authors didn't empathize enough with their users' frustration to commit the efficiency hacks used by systems like eumel and basic-80
Certainly compared to Whitesmiths C for CP/M, and not just for the $700 price vs $150 for BDS-C. Whitesmiths was real, official C, direct from P. J. Plauger and V6 Unix. But each compile went through many, many, many passes on the poor floppy (including pseudo-assembly "A-Natural" for the 8080 that then translated to real assembly). Everybody complained that while very professional, it just took too long to go through the cycle.
Contemporary BYTE recommendation was to develop & iterate on BDS-C, then at the end re-compile on Whitesmiths to squeeze the best performance.
Pity that only Visual C++ seems somehow close to Energize C++ and Visual Age for C++ v4, for that kind of incremental development experience. Live++ and ROOT aren't that widespread.
Also D has a similar approach, use dmd for development, ldc or gdc for release.