Mailing List Archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] From an enthusiast TLUG follower

On Mon, 31 Aug 2020 16:59:31 +0900
Benjamin Kowarsch <> wrote:

> On Mon, 31 Aug 2020 at 02:03, Stephen J. Turnbull <
>> wrote:
> > Benjamin Kowarsch writes:
> >
> >  > Subrange types were a Pascalian innovation. I don't know of any curly
> >  > braces language that adopted them. Do you know of any?
> >
> > I'm sure Pascal did not check subranges at compile time.
> >
> I wrote that Pascal *introduced* subrange types while C and its brethren
> did not have subrange types, nor do they have them today.

As I just wrote before, Pascal did not introduce sub-range
types. They came from ADA. Also be very careful about what
you remember about Pascal. A lot of what we consider the
origins of Pascal was the (unstandardized) extension of
Pascal by Borland in the 80s and 90s. A lot of things that
made TP/BP so great were seen by Wirth as an abomination and
did not make it into his beautiful teaching language. Ever.

There is a reason why the 1990 update of the ISO standard
follows mostly what Borland did to extend the language,
cleaning up some of their mess.

> >  > Once upon a time there were Dykstra, Hoare and Wirth preaching
> >  > type safety and their teachings had weight.
> >
> > Yup.  The programs and languages that followed their teachings were so
> > weighty they sank in the quicksand of real problems without a trace. ;-)
> >
> Is this an attempt at sarcasm?
> Dykstra, Hoare and Wirth always promoted simplicity, and the languages that
> came out of that tradition are all known to be lightweight.

I don't know about Dykstra and Hoare, but I know pretty well
how Wirth thought. And no, he wasn't for simplicity in language,
but for simplicity in implementation of the compiler. His
stubbornness to use a top-down parser, because they were simpler,
when the rest of the world went for bottom-up parser because they
could handle more syntax lead to the "simplicity" of Pascal and
Modula. Also keep in mind that Pascal and its ancestor PL/0 were
designed by Wirth to teach the basics of compiler design. They
were not intended to be languages for general use. They just
happened to become such.
> The only language one might consider within that tradition which is not
> lightweight is Ada.

You are mixing here languages of different scope. ADA was designed
by comitee to become the standard language for programms written
for the US government. As such it had to be able to do everything.

> And Tony Hoare made Ada the sole focus of his Turing
> award acceptance speech "The emperor has no clothes" in which he lambasted
> Ada precisely because it wasn't lightweight. Mind you, compared to the
> modern day egg-laying wool milk sow languages, even Ada appears rather
> moderate in weight.

Yes, but we are much better in writing parsers and compilers than
we were in the 60s when ADA was designed. Heck, a lot of parsing
theory was not finalized until the late 80s early 90s. Today we
have parser generators for context sensitive languages, a thing
that was basically impossible to do in the 60s. As far as I am
aware of, Perl is the first major language to incorporate some
form of context sensitivity in the mid 90s. And that was (and
still is) a hand written ball of yarn parser.

> And Wirth is known to be a minimalist. In his later years his minimalism
> went so far, that the vast majority of the once many fans of his languages
> Pascal and Modula-2 did who liked them precisely for their simplicity, did
> not want to follow him when he created his next language Oberon, which he
> stripped down to the bones,

Pascal and Modula-2 that we have today are not the Pascal and
Modula that Wirth envisioned. They were adapted to the needs
of modern programmers by the people who did try to put them to use.
And Oberon was not just a programming language, and an extremely
awkward and ugly one at that, but a whole computer system including
graphical interface, operating system and hardware. Yes, they
designed special computers for oberon and it only run on those
until someone wrote an emulator for linux because there weren't
enough machines go around to torture students in the late 90s.

You might call Oberon stripped down to the bones. I would call
it missing the point. Instead of giving the programmer an easier
tool to work with, Wirth concentrated on reinventing the wheel
in a way that went contrary to the wisdom of anyone else in
the world computer science and general computing. By this, he made
the CS department of the ETH, once leading in the field, completely
obsolete and struggling to stay on top of things. The running joke
at ETH was and still is, that everyone at ETH learns how to program
but the CS students. Today, over 20 years after he retired, ETH
is still struggling because of him and his students who made up
the majority of professors at ETH's CS departemnt. Only now is
new blood comming in that breaks with the past and removes the
shakles that Wirth put on the ETH. 

>  the most minimalist language until Brainfuck
> arrived on the scene. Wirth boasted that the language description fits on
> 16 A4 pages and his compiler is only 5000 lines of code. Yes, he did remove
> subrange types in Oberon, but most people would argue that this is in
> violation of the very philosophy he stands for.

If you like short language descriptions, why don't use use
Scheme? It's arguably the language with the shortest description
(a single A4 page) of any non-toy language that is still fully

> Clearly, if you call these languages "weighty", you must be joking.
> And as for sinking into the sand, the languages of this tradition were
> extremely successful and influential. Pascal and Modula-2 were amongst the
> most popular and most widely used languages in their day.

No. Pascal wasn't widely used. TP/BP was. And that diviated
wildly from what the standard was and even more from what
Wirth came up with. Modula-2, even the non-Wirth variant,
was never widly used. It was a niche programming language even
in Switzerland and even more so in the rest of the world. Most
people who used Modula-2 either moved to Delphi or C++ in the 90s.

> And C# is very much directly influenced by Pascal as its
> creator was the chief designer of Delphi, formerly known as Turbo-Pascal.

C# is basically Java done right. Not only on the language level
but also on how the libraries are designed. But again, that's not
due to Wirth but due to the work at Borland. And no C# is not
even close to being minimal. It's a very complex language, making
use of 40 years of development in parser and compiler design.

> I wouldn't call that "The programs and languages that followed their
> teachings were so weighty they sank in the quicksand of real problems
> without a trace". In fact nothing in that sentence makes any sense. They
> weren't weighty, they didn't sink, and they left plenty of traces.
> Oh, no, you don't.

Oh.. as a Pascal fanboy I can tell you that Pascal was weighty.
But most of this weight came from TP/BP being a non-optimizing
compiler. It didn't even support link time optimization with the
sole exception of the System library, but even there only on a
assmebler-file by assembler-file basis. The first commercially
successful optimizing Pascal compiler was Delphi in 1995, when
the game was already over. The only thing that made Delphi a
success was it being a RAD system (what we would call a GUI
design kit, today). But even that meant that it would eventually
die when Visual Studio would catch up a few years later.

But the main cause for Pascal's death was mostly due to not
being C and thus not being used for Unix and less often taught
in the US, where the majority of programming happened in the 80s
and 90s.

There is still, though, a quite large Pascal community in
German speaking and Scandinavian countries. Mostly around fpc.
It's rather small, compared to other languages, but it is still

			Attila Kinali

<JaberWorky>	The bad part of Zurich is where the degenerates
                throw DARK chocolate at you.

Home | Main Index | Thread Index