I purchased TM-2 from Echelon in 1986. I was a minor, so I went to Echelon's office in Los Altos and paid cash for an 8" floppy.<p>TM-2 was awesome, but extremely buggy. I used it on an Altos ACS8000, a 4-user machine that originally ran MP/M and would have been $10-20k new. My dad and me got it used at a computer swap meet for maybe $500. My dad helped me to get CP/M running on the machine, and it was great because it could use some of the extra memory in the ACS8000 as a small ram disk. A few years later, I used TM-2 for all my assignments in AP Computer Science, and it sucked having to work around all the bugs.<p>I'm kind of wistful thinking about it now, because that was right around the time I began to realize that in classes I was almost always the only female in the room. It led to a lot of unwanted attention and awkward situations. Eventually it led to me changing careers.
>> Why TM-2 made such a fleeting appearance is shrouded in mystery. It was released in 1986 by Echelon under license from Borland and then quickly withdrawn.<p>I wasn't there, but dots can be drawn. Niels Jensen, Borland founder, and his team created turbo pascal, then added Philippe Kahn to the mix to head the US company. Niels and his team also wrote a Modula 2 and C compiler, but Philippe instead chose to buy Wizard C, and market that as Turbo C instead.<p>This lead to a split inside Borland, Niels and the rest leaving to form JPI which released their work as Topspeed C, and Topspeed Modula 2.<p>My speculation is that Modula 2 was killed at Borland as a direct result of the split.
Just for fun, here's the Modula-2 example converted into OCaml in a few minutes of effort:<p><pre><code> let size = 8191
let flags = Array.make size false
let prime = ref 0
let k = ref 0
let count = ref 0
let () =
print_endline "Type Return";
ignore (input_char stdin);
print_endline "10 iterations";
for iter = 1 to 10 do
count := 0;
for i = 0 to size - 1 do flags.(i) <- true done;
for i = 0 to size - 1 do
if flags.(i) then
prime := i + i + 3;
k := i + !prime;
while !k < size do
flags.(!k) <- false;
k := !k + !prime;
done;
incr count;
done;
done;
Printf.printf "%d primes\n%!" !count
</code></pre>
If one didn't look closely it could easily be mistaken for Pascal/Modula-2. OCaml lifts a lot of imperative constructs directly from that lineage while adding its own FP flavour i.e. immutability by default meaning that mutable values must be ref or array values.<p>Another aspect that OCaml lifts pretty directly from Modula-2 is the engineering of its separate compilation via its module system. By comparing the compiled interface files, a build system like dune or ReScript can figure out the least amount of recompilation needed to build a project from a dirty state.
I love reading about the history around legendary companies like this. I was an avid Turbo Pascal user starting in 1990 or so. This sent me into a rabbit hole of research.<p>I thought I knew a lot about Borland's history, but what I didn't know was that the original team left Borland in 1987 to form JPI (Jensen & Partners), headquartered in London, taking a bunch of in-progress code with them that they bought from Borland for $1.7m. JPI made a range of development tools called TopSpeed, which I remember hearing about back then. Unlike Borland's language tools, TopSpeed was a unified compiler backend with a frontend compiler for each language.<p>JPI eventually merged with Clarion, which made a "4GL" IDE with its own crude Pascal-esque programming language that at one point competed with Microsoft Access, as well as with database-focused IDEs like Microsoft's Visual Basic and Borland's own Delphi. Clarion still exists, though it's now owned by a company called SoftVelocity, and is built on .NET, and looks like it's barely on life support.<p>Of the original Borland founders, I don't know what happened to Niels Jensen, but Ole Henriksen [1] started a business that designs technology for prefab "pod" houses, and Mogens Glad [2] became a movie producer.<p>[1] <a href="https://www.linkedin.com/in/ole-henriksen-a731323a/" rel="nofollow">https://www.linkedin.com/in/ole-henriksen-a731323a/</a><p>[2] <a href="https://www.linkedin.com/in/mglad/" rel="nofollow">https://www.linkedin.com/in/mglad/</a>
Borland doesn't enough credit (or blame, depending on your opinion about C++) for popularizing C++. Turbo C++ was the first mainstream C++ compiler. All that existed before was Cfront, Stroustrup's pre-compiler which translated C++ to C.<p>C++ wasn't a popular language until Borland released Turbo C++. Because of the IDE wars of the 1990's, Microsoft answered with Visual C++, and the rest is history.<p>[1] <a href="https://cplusplus.com/info/history/" rel="nofollow">https://cplusplus.com/info/history/</a>
I dislike Modula-2's full upper-case reserved word syntax. I understand the reasoning behind it: to make language constructs consistent and stand out more, but then, upper-case is harder to read.<p>Make no mistake, I use that syntax when writing SQL, and it's very fitting there because the queries are short and I can't tolerate typos due to lack of a compilation step. But, in case of a compiled language, especially with the advent of syntax highlighting and edit-time analysis capabilities, I find it a nuisance.
Why did Turbo Modula-2 produce a binary that was 3x as fast as Pascal? Is M2 more suitable for aggressive optimization? Was the M2 compiler just better, with the tradeoff of a much longer compilation time (9x)?<p>M2 seems like a forgotten language. It was what my intro to CS course was taught in back in 1989, and I really haven't seen much mention of it since.. We used some compiler on Macs that was super flaky. I remember the Macs would sometimes lock solid when compiling M2. I also remember grumbling because Pascal seemed to compile faster on the Apple IIs back in highschool than M2 did on the Macs in college. Thankfully we switched to C on SunOS or Ultrix for the upper level classes.
If you're reading the magazines of that time period, you'll find a lot of Modula-2 exposure as some regarded it as the next step in the language's evolution (and a more standardized one than Pascal).<p>On the other hand, Ada was mentioned, too. So if Borland would've supported M-2 more, maybe that would've meant that they had supported another standardized language later on, instead of further messing with Pascal.<p>Picture the Delphi IDE with Ada95.<p>(As much as I like both Modula-3 and Oberon, I picked the more likely candidate for this alternate reality. The one where they're all beaten by Visual SAIL is further down the weirdness ladder.)
> Should I Switch From Turbo Pascal to Turbo Modula-2?<p>The million dollar question.<p>More seriously, I love Pascal and similar. My first two books were Algorithms + Data Structures = Programs (Pascal) and Algorithms and Data Structures (Modula 2), both by Nicklaus Wirth.
Even better, imo: Modula-3<p><a href="https://github.com/modula3/cm3" rel="nofollow">https://github.com/modula3/cm3</a><p>There are binaries for various architectures.<p><a href="https://github.com/modula3/cm3/releases/tag/d5.11.4" rel="nofollow">https://github.com/modula3/cm3/releases/tag/d5.11.4</a>
I don't recall ever seeing the branding "Turbo Modula-2", but I'd been a Turbo Pascal fan (even owned Turbo Pascal original 8-inch floppy for generic MS-DOS, and used it on an 3.x MHz 8086/8088 that had no PC BIOS), and used Modula-2 in school.<p>I recall there were multiple Modula-2 implementations for the PC at the time. The one I used didn't have as much PC-specific access as Turbo Pascal (at the time, I had my own libraries for video RAM direct writes, mouse, etc., and GUI I'd built atop that).<p>And the Modula-2 language felt a bit clunkier to use, since I was favoring terseness on 80x25-character screens at the time.<p>Where Modula-2 and pedagogy around interface vs. implementation in team software engineering class paid off, for me, was that I became a professional C programmer right after, and some of those practices enforced by Modula-2 were a useful perspective to bring to cross-platform Unix .c and .h files at the time.
Uncle used Module-2 to write simulators or a calculator for air venting of tunnels or something like that. I think that software was used until the late 90s, early 2000s. He was even updating it after his retirement :)
This hit me right in the nostalgia feels. I used Turbo Pascal and Turbo C heavily in high school and university. The computer science faculty at my university had their own modula-2 compiler (gpm) so many of our assignments had to be done in modula-2. I would have loved a TPM-2.<p>Additionally, my primary school had an Apple IIe, on which I would sometimes use CP/M. My Amstrad CPC464 could run CP/M, too.
I just did some googling and it turns out Borland did do a version for MS-DOS but it was sadly never released. Dare I hope it's still out there somewhere waiting to be out in a museum?