Hacker News new | ask | show | jobs
by breadbox 4781 days ago
s/like/know/

Algol perhaps had the disadvantage of being far more popular among academics than among actual programmers. Perhaps for that reason Algol became the lingua franca of pseudocode, while C became the lingua franca of actual code.

(I don't know if this is fair, but I've always had the impression that Algol was a bit like Ada in its time: respected by those who used it, but a bit too kitchen-sink to be popular among implementors.)

2 comments

When you look closely, C is a very academic programming language, and its academic influence can be seen in its design-level decisions.

For instance, why does C differentiate between for loops and while loops? Because mathematically there's a natural partition between the two: for loops correspond to primitive recursion, and while loops correspond to total recursion.

Here's another one: why are unions called unions? Because, if types are interpreted as sets, the C union is directly equivalent to the set theoretic union. Similarly, structures are directly equivalent to the Cartesian product (although they are not named appropriately).

K&R were geniuses, not only in practical programming, but in the egg-head understanding of the mathematical theory behind programming languages.

Algol was the first programming language I learned in college. I also used Ada professionally for years. I believe that Ada is not at all like Algol, even though Ada was nominally based on the Algol family of languages (including Pascal). I think of Ada as a monster of a language, more like PL/I than Algol, and very difficult to learn in its entirety. Algol is an elegant language, and I think you can learn enough of it to make use of its power in a fraction of the time you'd spend getting proficient with Ada.
To be clear, I was talking more about how it was perceived at the time, not about how it actually was. (And of course, what was kitchen-sink-worthy in 1960 would be seen as ultracompact today.) But in any case, I bow to someone with actual experience.