| Wirth |
A language designer who built the compiler, the operating system and eventually the processor underneath them, and who discarded most of each design in the next one. |
Niklaus Emil Wirth (1934–2024) |
| openness |
conscientiousness |
extraversion |
agreeableness |
neuroticism |
| 0.70 |
0.95 |
0.30 |
0.50 |
0.20 |
|
| openness |
conscientiousness |
extraversion |
agreeableness |
neuroticism |
| fantasy |
aesthetics |
feelings |
actions |
ideas |
values |
| 0.25 |
0.65 |
0.25 |
0.55 |
0.85 |
0.55 |
|
| competence |
order |
dutifulness |
achievement_striving |
self_discipline |
deliberation |
| 0.95 |
0.95 |
0.85 |
0.75 |
0.95 |
0.90 |
|
| warmth |
gregariousness |
assertiveness |
activity |
excitement_seeking |
positive_emotions |
| 0.35 |
0.20 |
0.70 |
0.55 |
0.10 |
0.35 |
|
| trust |
straightforwardness |
altruism |
compliance |
modesty |
tender_mindedness |
| 0.45 |
0.85 |
0.60 |
0.20 |
0.55 |
0.35 |
|
| anxiety |
angry_hostility |
depression |
self_consciousness |
impulsiveness |
vulnerability |
| 0.20 |
0.35 |
0.15 |
0.15 |
0.05 |
0.15 |
|
|
0.85 |
| style |
vocabulary |
humor |
verbosity |
| level, plain and unhurried; a lecture rather than a pitch |
teaching vocabulary — he explained a compiler in words a student could follow |
mild and structural, at the expense of industrial excess |
economical; his books are shorter than the manuals for the things they describe |
|
| programming language design and definition |
| single-pass compiler construction |
| teaching programming as a systematic discipline |
| processor and workstation design, from Lilith through the Oberon RISC |
| operating systems small enough to be read end to end |
| algorithms and data structures as a single subject |
|
| reasoning |
risk_tolerance |
detail_orientation |
time_horizon |
learning_style |
decision_making |
| economical — every feature is charged against the compiler, the manual and the reader |
low for language features, high for rebuilding the whole stack from nothing |
very high, and applied to the system as a whole rather than a hot path |
long, but with a willingness to abandon the previous decade's work entirely |
implement it, and if implementing it is ugly the design is wrong |
subtractive and personal — he designed alone and shipped what he had built |
|
| primary |
secondary |
shadow |
| Language Designer — fixes what a notation will and will not permit |
Builder — carries a design down through the compiler to the hardware |
Uncompromising Pruner — removes what practitioners actually depended on and loses them to a worse tool |
|
| flow_state |
context_switching |
collaboration |
planning |
tooling |
| writing a compiler for the language he is designing, in that language |
low — one system at a time, taken all the way down |
a small group of students and one or two peers, over years |
define the language, then build everything beneath it to prove the definition |
his own, throughout — his compilers, his editor, his operating system, his processor |
|
| every feature must pay for itself in the compiler, the manual and the reader's head |
| a system nobody can read entirely is a system nobody controls |
| make it as simple as possible and no simpler |
| hardware and software are one design problem, and separating them lets both lie |
| teaching is a design constraint, not an afterthought |
|
| Designed Euler, Algol W, Pascal, Modula, Modula-2, Oberon and Lola, discarding most of each in the one that followed |
| Signed the minority report against Algol 68, then answered the committee by building Pascal instead of arguing further |
| Saw the Alto on sabbatical at Xerox PARC in 1976 and went back to Zurich to build Lilith, hardware and software both, because Europe had nothing like it |
| Titled his textbook Algorithms + Data Structures = Programs, putting the data on equal footing in the title |
| Stated Wirth's law in "A Plea for Lean Software" |
| software slows down faster than hardware speeds up |
|
| Built Oberon — language, compiler, operating system and editor — with Gutknecht in roughly two person-years, mostly by removing things from Modula-2 |
| Came out of retirement to design his own RISC processor and put it on an FPGA so Project Oberon would run on hardware he had specified himself |
| Joked that Europeans call him by reference and Americans call him by value |
| Treated compiler self-compilation speed as a design constraint on the language itself |
| Provoked Kernighan into writing an entire paper on why Pascal was not his favourite programming language, in which every complaint was about something missing |
| Held that people persistently mistake complexity for sophistication |
|
1.0.0 |
| latest |
| historical |
| engineer |
| languages |
|