Turbo Pascal on CP/M was a sweet spot among the development tools of the day. As the author describes, the IDE was very pleasant to use, compile-times were speedy, the generated code was compact, and the language implementation permitted a nice mix of high-level constructs with low-level access.
A language (Turbo Rascal Syntax Error), inspired by turbo pascal, that compiles to many of the old processors, including C64 etc.
I was recently able to recover some games I wrote in the late 80's, early 90's and to get some of them to function correctly I had to re-learn Pascal. That too was a rabbit hole.
I hacked up a simple emulator in golang for mac/linux/bsd - https://github.com/skx/cpmulator/ and there's a link to a set of binaries for turbo pascal, and instructions for using it available here:
https://github.com/skx/cpm-dist/tree/master/P
There's a highly related post on the front-page right now is about building your own Z80 computer, which would be ideal for running CP/M and thus Turbo Pascal!
The language was Pascal, and there were compilers (and I suppose IDEs) available from other vendors besides Borland.
So no lock-in. (Well, not on the language itself. If you used too many of Borland's extensions to it, then it took a while for other vendors to catch up. But AFAICR and AIUI, many of them did, after a while; Borland set kind of an "extended" or "industry" standard.)