
Celebrating Niklaus Wirth's 80th Birthday - MaysonL
http://wirth-symposium.ethz.ch/
======
tokenrove
I feel like Wirth doesn't get enough credit these days. I have come to really
appreciate his writing, especially books like Project Oberon and Compiler
Construction. I thought Pascal (and by extension, the Modula languages) was
lame when I was younger and full of C-and-Unix machismo, but I came to have a
strong appreciation for the design of those languages (especially Modula-3,
which wasn't Wirth but derived from his work).

~~~
vidarh
Wirth is one of my biggest influences. I was just inspired by this post to
finish a short little draft I had sitting around about Wirth as an influence,
and the Oberon language report. Oberon-07 is defined in a _17 page_ document
that is simplicity itself. Of that, about 2 pages is EBNF (Wirth published the
first EBNF variation too...) for Oberon, and the rest is easily accessible
prose...

Unlike most languages, Wirth's languages have gotten simpler, but more
powerful, from generation to generation. His greatest legacy to me is his
focus on _engineering_ vs. science in programming language design. He's never
been concerned with adding the latest and greatest features, but on what is
proven, and what has a _well understood means of efficient implementation_.

This is both the beauty and elegance of his language designs, and in some ways
probably his "downfall" in terms of getting credit outside of quite small
circles:

Wirths languages are not "sexy". They're stripped down and bare. Their
implementations are not sexy - they're stripped down and bare: Simple
recursive descent parsers with direct code generation (most, or possibly all,
of his compiler implementations output code without generating an AST at all)
and minimal optimization - focusing on being easy to understand and modify,
predictable, and _fast_ , rather than on producing the fastest possible code.

But that's what makes him stand out as a beacon of programming language
_engineering_. We need the fancy, sexy languages and implementations too, but
"Wirthian" languages and compilers are an important counterpoint.

(The blog post is here:
[http://www.hokstad.com/oberon](http://www.hokstad.com/oberon))

~~~
thomaslee
The link to the PDF you're talking about on that article appears to be busted.
:(

~~~
abrowne
Based on the file name at least, this looks like it:
[http://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report...](http://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf)

------
vidarh
For someone who's "retired" he's certainly not slowed down much ... From the
section about his talk at the symposium (there appears to be papers related to
this on his personal website:
[http://www.inf.ethz.ch/personal/wirth/](http://www.inf.ethz.ch/personal/wirth/))

"It was Paul Reed, who suggested in 2010 that the book ought to be updated.
After all, the processor used became extinct. I decided to take up the
challenge and to design my own processor subsequently called RISC. I
implemented it with a small, low-cost Spartan-3 development board, building an
entire replacement for Ceres. This, however, implied the construction of a new
compiler and linker, and the rewriting of the corresponding chapters of the
book.

All this provided a welcome opportunity to further simplify and refine both
language and system. As a consequence, all parts formerly written in obscure
and unpublishable assembler code - such as garbage collector, device drivers,
and display pattern generators - are now expressed in Oberon too. Also the
entire hardware is displayed in full detail, expressed in the language
Verilog."

I really hope I'm still able to undertake projects of that kind of ambition
when I'm well into my 70's....

------
facorreia
Wirth's work was tremendously valuable to me. His book "Algorithms + Data
Structures = Programs" shaped the way I approached programming, and the Pascal
language (in its various Borland incarnations since Turbo Pascal 1.0 until
Delphi) was my primary tool for many years.

------
tjaerv
[http://en.wikipedia.org/wiki/Wirth's_law](http://en.wikipedia.org/wiki/Wirth's_law)

Wirth's law: "Software is getting slower more rapidly than hardware becomes
faster."

Sometimes paraphrased as: "Intel gives, Microsoft takes."

~~~
gphilip
The old form was: "Andy giveth, Bill taketh away."

Referring to Andy Grove [1] of Intel and Bill Gates [2] of Microsoft.

[1]
[http://en.wikipedia.org/wiki/Andrew_Grove](http://en.wikipedia.org/wiki/Andrew_Grove)

[2] No link required

~~~
tjaerv
Thanks for that, that's the best formulation.

------
dallos
[http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EW...](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html)

Finally a short story for the record. In 1968, the Communications of the ACM
published a text of mine under the title "The goto statement considered
harmful", which in later years would be most frequently referenced,
regrettably, however, often by authors who had seen no more of it than its
title, which became a cornerstone of my fame by becoming a template: we would
see all sorts of articles under the title "X considered harmful" for almost
any X, including one titled "Dijkstra considered harmful". But what had
happened? I had submitted a paper under the title "A case against the goto
statement", which, in order to speed up its publication, the editor had
changed into a "letter to the Editor", and in the process he had given it a
new title of his own invention! The editor was Niklaus Wirth.

------
Luyt
I owned the book "Algorithms + Data Structures = Programs" and I learned a lot
out of it. And while I wrote quite a few programs in Pascal, I found myself
always confined too much: I fled to C.

There are some critiques on Pascal: [http://www.lysator.liu.se/c/bwk-on-
pascal.html](http://www.lysator.liu.se/c/bwk-on-pascal.html) , 'Why Pascal is
Not My Favorite Programming Language'. A summary from the article:

 _" \- Since the size of an array is part of its type, it is not possible to
write general-purpose routines, that is, to deal with arrays of different
sizes. In particular, string handling is very difficult.

\- The lack of static variables, initialization and a way to communicate non-
hierarchically combine to destroy the ``locality'' of a program - variables
require much more scope than they ought to.

\- The one-pass nature of the language forces procedures and functions to be
presented in an unnatural order; the enforced separation of various
declarations scatters program components that logically belong together.

\- The lack of separate compilation impedes the development of large programs
and makes the use of libraries impossible.

\- The order of logical expression evaluation cannot be controlled, which
leads to convoluted code and extraneous variables.

\- The 'case' statement is emasculated because there is no default clause.

\- The standard I/O is defective. There is no sensible provision for dealing
with files or program arguments as part of the standard language, and no
extension mechanism.

\- The language lacks most of the tools needed for assembling large programs,
most notably file inclusion.

\- There is no escape. "_

Many of these were fixed in Borland's Object Pascal, by the way. Written by
Anders Heijlsberg, who also designed C#.

~~~
vidarh
Pretty much all of these were "fixed" in Modula 2 and Oberon/Oberon
2/Oberon-07 too, which Wirth designed.

Modula-2 was known from at least 1978, and pretty all commercial Pascal
implementations added features that solved all or most of the issues in
Kernighans article, so frankly it was a bit of a strawman. Indeed, plain,
original Pascal was unsuitable for large scale non-teaching use, but very few
people even had access to a Pascal implementation that implemented "just" the
original Pascal.

A very few of the issues he raises are intrinsic to Wirth's philosophy of
compilers, though. Such as one-pass compilation, which massively simplifies
his compilers and speeds up compilation. This is a _feature_ of Wirth
languages, which one may certainly disagree with. While I prefer more
flexibility, I never felt all that restricted by it, given forward
declarations support in every implementation I've seen.

~~~
cafard
Well, yes. But Kernighan was writing, as I recall, based on his experience in
creating a Pascal edition of the "Software Tools" book.

------
xuesj
Pascal is the language taught and used on the course of Data Structure When I
was in college, the book "Data structures + Algorithms = programs" is the most
favorite book during my college,and it inspired me to code better. Happy
birthday to N. Wirth.

------
mkempe
Anecdote time: with regard to the pronunciation of his name, Wirth is fond of
saying that some people call him by reference, others by value...

~~~
johkra
I was thinking about this, too, when I read his name.

 _Whereas Europeans generally pronounce his name the right way ( 'Nick-louse
Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say
that Europeans call him by name, but Americans call him by value._ [1]

[1]
[https://en.wikiquote.org/wiki/Niklaus_Wirth#Quotes_about_Nik...](https://en.wikiquote.org/wiki/Niklaus_Wirth#Quotes_about_Niklaus_Wirth)

