On Thu, May 9, 2024, 6:10 PM Paul Koning via cctalk <cctalk(a)classiccmp.org>
wrote:
On May 9, 2024, at 7:55 PM, Fred Cisin via cctalk
<cctalk(a)classiccmp.org>
wrote:
>> ...
>> I've written code in Pascal, as well as Modula-2. Never liked
>> it--seemed to be a bit awkward for the low-level stuff that I was
doing.
On Thu, 9 May 2024, Paul Koning via cctalk wrote:
> Not surprising, since that's not what it is all about. Both, like
their predecessor ALGOL-60 as well as successors like Ada, are strongly
typed languages where doing unsafe stuff is made very hard. Contrast that
with C, which sets out to make it easy to do unsafe things and partly for
that reason has a feeble type system. So doing low level stuff like device
drivers is difficult, unless you create extensions to break out of the type
system. An example of how to do that is the Burroughs extension of ALGOL
called ESPOL, which is what they used to write the OS. Actually, Burroughs
did a number of extended versions for different purposes; there's also
DCALGOL (Data comm ALGOL) intended for writing communications software.
Why that's separate from ESPOL I don't really know; I only ever got to do
regular ALGOL programming on Burroughs mainframes. One reason for that:
those systems depend on the compilers for their security; if ordinary users
got access to ESPOL they could write dangerous code, but in ALGOL they
cannot.
One of the things that _I_ love about C is that it is easy to get it out
of the way when you want to do something lower level.
Rather than feeble type system, it could have had a requirement to
explicitly "cast" anything being used as a "wrong" type.
One of Alan Holub's books about C is titled
"Enough rope to shoot yourself in the foot"
True, and Stroustrup added that "and C++ is a cannon that blows off your
entire leg".
The other joke is that C++ lets you shoot off the 27 identical legs you
didn't know you had...
Warner
Each language has its own specialty. And you need to
find the one that
fits you best.
It used to be (and likely still is), that every computer science grad
student created a new language. A requirement (usually UNSPOKEN) was that
the compiler be able to compile itself. That the language compiler is
written (actually normally RE-written) in that language and compiled by
that compiler. That certainly seems to bias things towards languages that
are well suited for writing compilers! If you were to create a language
that was specializzed for something completely different, and poorly suited
for writing compilers, then it would not be respected.
If you don't mind the total lack of protection, FORTH is very nice: it
even more easily than C lets you do low level things, and it is also very
small. And the implementation is by definition entirely extensible. A
large FORTH program I wrote in the 1980s, on PDP-11 FORTH, starts out by
redefining the language as a 32-bit version.
I still remember a classmate of mine, who told me when we were both at DEC
that he had written an expression parser in COBOL. I think he also tried
to do one in RPG but found it was too hard.
paul