On 7/8/2022 12:32 PM, Rugxulo wrote:
The original Pascal was stabilized and "sent off" to standardization
in 1977. They didn't add any major features, so it's almost the same
as de facto J&W. The standard (ISO 7185) was published in 1982.
"Classic" Pascal had no modularity, everything was a single file. (I
presume that many people used homegrown preprocessors [e.g. Doug
Comer's MAP] like BWK also did in _Software Tools in Pascal_.)
ISO7185 as done as much harm to Pascal as ECMA-55/ECMA-116 have done to BASIC. Nobody is really using them, they were already outdated by the time they were released. This is were the "Industry standard" has by far outplayed the academic standard.
Everybody and their brother made Pascal derivatives: Ada, Modula-2,
Modula-3, etc. While Dr. Wirth was not directly involved, there was
also a newer "Extended" Pascal standard in 1988 (ISO 10206) that also
had modules. But even Wirth kept going and started developing Oberon
in 1986. "Standard" Modula-2 (N.B. GNU GM2) came in 1996 (ISO 10514).
(So it was too many competing languages, honestly.)
Ada has nothing to do with Pascal, development wise, it just uses very general similar concepts. Modula was a still born, pretty much a UCSD Pascal with a different name and without the p-Code. Modula-2 did improve a bit, so did Modula-3. But neither one, nor Oberon where ever intended for use outside of the academic world. Their purpose was to teach programming concepts, not solve real world problems. Creating an ISO standard for Modula-2 just repeated the same problem as with the ISO standard(s) for Pascal: Too little, too late. By that time, Object Pascal was already prevalent, and neither Modula-3 nor Oberon could do anything about it. And probably never were intended to do so...
N.B. It's much slower having to reparse header files over and over
again (but many compilers already support precompiled headers).
That is a problem with the concept of the language. With Pascal's units, Modula-2's modules or Ada's packages, they allow all to include the info in one (pre-compiled) file. It also helps that all of those languages require that any object (variable, method) is defined before the first reference. And as such, the compilers are designed to accommodate this. With C(++), it's more like "let's throw everything in one big pot and then lets see what we actually need in our program". A huge advantage of Turbo/Borland Pascal, Delphi and FreePascal is that they are all capable of "smart-linking". The compiler/linker is doing a lot of the work that in the other languages is part of the responsibility of the programmer. And more and more of them don't care, that's why we have to deal with so much software bloat... (well, beside that today, too many programmers are perverting the original idea of object oriented programming)
Actually, C++20 added modules! GNU's G++ is close to being fully C++20
compliant (but by default 12.1 is only "gnu++17" by default, I think.)

45 years after UCSD Pascal! Whoohooo! All those C(++) standards have pretty much become "self-serving". They are designed to fix previous short comings in the language, to some degree, but there is hardly any improvement that actively enhances the solving of real world problems...

Ralf




_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to