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)
The EBNF is great. I learned the Wirthian compiler engineering from a Prof. who was a former colleague of Wirth.
http://progtools.org/article.php?name=oberon§ion=compile...
Combine with the other synthetic file systems and the combination is incredibly useful. There is an email client, for instance. And my friend fgb added image viewing and now we even have a Web browser.
http://en.wikipedia.org/wiki/Acme_(text_editor)
I visited that page one day, looked at the screen shot and said "wow, that person uses Acme just like me, even using Opened" and it eventually it dawned on me that it was a screenshot of my screen I had posted elsewhere.
The way you define methods is based on Oberon-2.
Data + Algorithms = Programs
Inline image viewing and web browsing? Available in p9p? Screenshots?
Feel free to ask any questions. FGB is a nice guy so feel free to contact him directly
Brian Kernighan wrote an influential essay "Why Pascal is not my favourite programming language" that strongly influenced the perception that Pascal was suitable only for teaching and not real production work.
The important point about languages with a small, finite (and clear) syntax is that you actually feel you could fully learn the language, maybe even master it. Your code may end up a little bit more verbose (anathema to many programmers, I know) but that doesn't mean it's unreadable.
I don't mind if a language is strict about the way it's syntax is written. I'm happy if it doesn't have shortcuts either (i.e. it has just one method to perform an operation or function). This, in my view, actually makes learning the language simpler and easier.
I've longed wished that there was a simple, strongly-typed compiled language with the lineage of Pascal available for modern server side web programming. Does anything like this exist?
Turbo Pascal already offered me stronger type safety, real modules, OO, system programming capabilities. So C was meh, it only had better portability[0] going for it.
This lead me to follow Wirth's work and I became a scholar of Wirth's advocacy for safe systems programming.
I was also lucky to have access to Oberon and discover that implementing OS in GC enabled systems programming languages was feasible.
[0] whoever wrote K&R and early ANSI C code across commercial UNIX systems, knows how much "portable" C was really back then.
[0] http://www.arcscience.com/otherProducts/danceOfThePlanets.ht... [1] http://en.wikipedia.org/wiki/Anders_Hejlsberg
Maybe it's time for a Pascal resurgence. Pascal is only dead if we treat it as such. And I see there's at least one active open-source Pascal compiler (Free Pascal).
Here Pascal was actually Turbo Pascal/Delphi, as other dialects were usually ignored.
> And then I fell for the "safe languages can't be compiled" myth propagated by Java and the popular dynamic languages (Perl, Python, etc.).
This is why I sometimes tend to defend Go, even when I used to bash here some of its design decisions. Or keep bringing up Pascal family of languages or alternative commercial AOT compilers for .NET/JVM.
It is a mean for young generations to learn you don't need VMs for memory safe languages.