6 ms·
From time to time I find myself daydreaming about an alternative timeline where instead of C, it was the Wirth-family of languages that dominated.
by tzahola 9y ago
From time to time I find myself daydreaming about an alternative timeline where instead of C, it was the Wirth-family of languages that dominated.
- lboasso 9y agoThanks to Robert Griesemer (Phd student of Prof. Wirth), the Go programming language includes some design lessons taken from the Oberon language
- tempodox 9y agoI would be interested to know what those design lessons are. Is there a writeup of that somewhere?
- lboasso 9y agoWirth wrote many articles about the design of his programming languages, a nice starting point for Oberon/Modula-2 is: http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June....
- pjmlp 9y agoFor example Go method declarations are taken from Oberon-2. The unsafe package kind of resembles SYSTEM, just that Oberon spec leaves it open the possibility to have Assembly intrisics in SYSTEM, given its goal as systems programming language.
- PeachPlum 9y agoI think that overlooks the contribution of Rob Pike, Russ Cox and others from the Plan 9 community. Plan 9 is very much influenced by Oberon, and the Acme text editor in particular.
- seanmcdirmid 9y agoThere is also Martin Odersky of Scala fame, pretty sure his advisor was Wirth as well.
- _ph_ 9y agoThis is one of several reasons drawing me towards Go. I grew up with Pascal and worked with Modula-2 for quite some time, and have been missing those times ever since. Go seems to really drag most good things from those languages into a modern world.
- noir_lord 9y agoTypeScript gives me a Pascal-vibe at times as well. Occasionally feel like I should be typing `TButton = record`. Not that surprising I guess since Anders Hejlsberg wrote Turbo Pascal, much of Delphi, was the lead dev on C# and TypeScript. He's made a career out of writing productive environments for mortal developers. I still think Pascal was my favourite language, the old joke back then was "Pascal has one way to do everything, the right way" compared to the expressiveness of a lot of languages.
- zerr 9y agoRobert is also the only pro-generics person in the team.
- _ak 9y agoIronically, Go is a programming language where both an Oberon developer (Robert Griesemer) and the developer of the direct predecessor of C (Ken Thompson) directly took part in the language's inception.
- easytiger 9y agoAnd the result was unpleasant. Initial direction and goals abandoned
- greenhouse_gas 9y agoIn which way?
- andreasgonewild 9y agoC is primitive but powerful. Go is primitive and safe. I would classify the Wirth-family of languages as safe but powerful. It all comes down to power; Go was explicitly designed to enable armies of lesser code monkeys to work together without anyone getting hurt.
- analognoise 9y agoAt least they're producing binaries, not claiming their "abstract web hardware" is "near native" when it takes 100MB of browser to say "hello, world!". Web developers are even lower on the totem pole.
- _ph_ 9y agoI don't understand how you would not call Go as powerful. And it is far from primitive.
- andreasgonewild 9y agoBecause real languages allow creating your own abstractions to fill the gaps, Go doesn't. Witness the total lack of decent error handling and data structures; despite probably thousands of people trying their best from user code. It's the iPhone of programming languages.
- Koshkin 9y agoUnfortunately, the real alternative to C at the time (1970) was not Pascal (just published) but PL/I.
- pjmlp 9y agoAlgol was a real alternative. Burroughs, nowadays sold by Unysis as ClearCase, was developed in 1961 using ESPOL, later improved and renamed as NEWP. Both Algol variants. IBM research on RISC was done with PL/8, a PL/I variant, later used for writing IBM z firmware. IBM i (OS/400) was initially written in PL/S, another PL/I variant. Intel used PL/M extensively. Xerox PARC moved from BCPL into Mesa, where Wirth got his inspiration for Modula-2, followed by Mesa/Cedar, which again influenced Wirth to create Oberon. Mesa/Cedar designers went to DEC Olivetti, where they ended up designing Modula-2+ and Modula-3. Apple started with Assembly and Object Pascal, only moving to C++ with PowerPlant due to market pressure. During the early 80's C was just yet another systems language only available in expensive UNIX workstations. On home computers, on CP/M we only had dialects like Small-C, competing against everything else for attention.
- tomcam 9y agoStop it, you tease