Post by m***@gmail.comThe original modula-2 compiler of course came from ETH and Wirth himself. But the key thing missing from the system was not a text editor - but the most important tool of all - the debugger. Logitech of all companies bought the "Multiscope" compiler and debugger, which was a fantastic product. The post mortem debugger meant when your program crashed you could load it back into the debugger and look at all the variables. A breakthrough feature at the time, along with the ability to peruse record structures.
It was a remarkable product for the time with mainframe debugging
technology on a PC. There was also a runtime debugger although it didn't
work too well on larger projects and a partially syntax directed editor
ISTR called MOD.EXE in the later versions.
The PMD made it possible to determine the cause of most in service on
site failures from the PMD file and then eliminate the root cause.
Post by m***@gmail.comWe built a lot of good stuff with that product. But eventually it was surpassed by the WIndows product from Stony Brook. The StonyBrook IDE came with a somewhat crude editor, an automatic dependency calculating builder (no manual make files), an unbelievable compiler, and a decent debugger, and a linker. They didn't like the MS linker so they wrote their own. Boy is that a tough thing to do. Not 1000 people on the planet know how linking really works. I wrote hundreds of thousands of lines of modula-2 with the stonybrook system, which has been released as open source. The quality of the emitted code was outstanding and products you made ran super fast. You can compiile my over 100,000 lines of code for my Discus product in seconds. C's precompiled headers are no match for the DEF and MOD file separation. Modula-2 has an inherent advantage over C in that you can more conveniently modularize your code, and by sharing reduce the overall number of lines of code. The many run time che
cks such as array bounds and nil pointer checking eliminate a lot of errors that in C are a nightmare to detect and fix.
We moved to JPI M2 partly because we moved to the ill fated but
otherwise excellent OS/2 at about the same time and their code generator
could run rings around Logitechs aging product.
Its PMD facility was much less complete but also produced miniscule
crash dumps that were more like tracebacks - good enough to point the
cursor at the offending line of code.
Post by m***@gmail.comAnyway the multiscope product is long gone.
Wirth tried to simplify modula-2 even further with Oberon, but when he eliminated enumerated types in Oberon, he unwittingly created a language evolution path that could not permit conversion forward from his previous languages of Pascal and Modula-2, and Oberon was DOA. In computer languages, you either accomodate the past (like the abominable C++ did), or jump into clean space ignoring the past like Python and Ruby have done, both of which are fairly successful languages.
It's too bad that Wirth is retired! we desperately need a new simple language for multi-core programming. How on earth can anyone program these 16 core CPU's?
Modula 2 was a clean minimalist language that for a while held its own
in various mission critical and educational niches. Sadly industry
favoured the crash and burn hack it together and fix all the bugs later
approach of C and the rest is history. We still pay the price of that
decision today every time the canonical buffer overrun exploits occur.
--
Regards,
Martin Brown