4 ms·
I wonder, why Modula (-II) never overtook Pascal?
by galaxyLogic 6y ago
I wonder, why Modula (-II) never overtook Pascal?
- Koshkin 6y agoBecause Turbo Pascal already had modules.
- JasonFruit 6y agoNot just that Turbo Pascal had modules, but that it had enough of the market that it would have been hard for Modula-x to get a foothold, even if Wirth was a salesman, which he was not.
- pjmlp 6y agoBorland had a Modula-2 compiler, created by Martin Odersky of Scala fame. They decided to focus on Turbo Pascal instead. Turbo Pascal units are based on USCD units actually. Outside MS-DOS, Modula-2 had better chances, but since it was MS-DOS that won the 16 bit wars, it became irrelevant, as the only major alternative were UNIX clones were C and C++ ruled.
- MarcusE1W 6y agoModula 2 was quite popular on the Commodore Amiga where C compiler where a bit so so (or very expensive) for quite some time, but in the end the PC won.
- microtherion 6y agoI agree: There were several successful Pascal systems that (a) pretty much had the commercial market for such languages saturated and (b) had pragmatic solutions for areas such as I/O. I/O in the original Pascal definition was particularly unfortunate in that it both needed ad-hoc mechanisms and was not particularly expressive. Modula-2 improved on this by being capable of doing I/O without ad hoc mechanisms, but it was still not very expressive. But if you bought into the more purist Wirth vision, and especially if you tried to use the language as officially defined, Modula-2 was a much nicer language than Pascal.
- mhd 6y agoTP became popular before it had units, IIRC. It was small, fast and, well, available.
- prestonbriggs 6y agoWhen I started grad school, in 1986, I'd written a lot of Pascal and used Turbo Pascal on my PC. But the school used Sun workstations with unix, so I had to learn C pretty quickly. Nobody seemed to use Pascal. There was a Modula II compiler around, but it was a resource hog and never popular. Oberon was published about the same time. I thought it was pretty cool and worked on a compiler for it, though the language evolved out from under me. My impression is that none of the Wirth languages made much of an impression in any of the US grad schools in that era. Of course, I didn't see everything that was going on, but I saw most of the compiler work. Almost 100% in C, moving eventually to C++.
- pjmlp 6y agoWirth languages were more of a thing in Europe. Here Pascal was everywhere and C was just yet another language on MS-DOS. The PC Systems Programming Bible had samples in MASM/TASM, QuickBasic, Quick/Turbo Pascal and Borland/Microsoft C and C++ compilers.
- prestonbriggs 6y agoThinking about it a bit more, I realize I've over simplified. Things were more diverse. At the time, there were significant academic compiler projects in the US written in PL/1, SETL, and Lisp. ML (as in Standard ML of New Jersey) work was getting started. I knew older guys who were interested in Algol 68. In academia, I saw no PCs and most grad students didn't have one.
- quicksilver03 6y agoHaving loved Pascal and struggled with Modula 2, I'll go out on a limb and I'll say: for cosmetic and typing issues. Modula 2, at least in the implementation I had to use at my University, had case-sensitive keywords which were in UPPERCASE. Compared to Pascal's case-insensitive keywords, in the editors available at that time, Modula 2 stuck out like a sore thumb and made writing and reading code like a chore.
- microtherion 6y agoIt's just a matter of habit. For people coming from Pascal or Modula, writing braces around blocks looked just as awful (and I still think using = for assignment IS objectively awful).
- galaxyLogic 6y agoI agree mostly because in JavaScript you have to write '==' for comparison.
- protomyth 6y agoI remember the Modula-2 I used in 1988-1991 was a royal pain in the butt to do any I/O. It was a pain compared to Turbo Pascal and, as Koshkin stated, already had modules with a significant ecosystem.
- nine_k 6y agoFunny; TopSpeed Modula-2, available around that time, had a fine I/O library. Damn, it had coroutines! Much less ergonomic than Go's, though.
- nine_k 6y agoI'd say it is because Turbo Pascal and then Borland Pascal got popular enough, and had TurboVision and other stuff. Modula-2 was a nice language (and modern Go is built basically on its ideas, plus Oberon's), but it had a hard time competing for the same niche on the PC. It worked better in embedded space, though. On Unix, there was C, a language with many shortcomings, but one big upside: it was the language the kernel and the userland was implemented in. Its compiler was readily available as a part if any Unix installation. It seemed a natural choice over Pascal, unless you wanted drastically different features (then you had Fortran, or awk, or Tcl, or later Perl, etc.)