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