| Oh yeah, you had another question: why ALGOL-like languages? I chose ALGOL-like over C-like specifically rather than over every style. The reason is that ALGOL-like languages had better design decisions: 1. Be closer to English to make them easier to read. Important as software is read more than written. Also can help in reviews. 2. Generally have proper features like modules or interfaces to aid programming in the large. 3. Still efficient enough for programming close to the metal. 4. Prefer sane defaults or automated checks on issues that trip programmers up. A good implementation usually lets you turn these off for a module if needed. 5. Tradition of thorough language reports and grammars means less undefined behavior. 6. Most common stuff is still efficient once compiled. If Wirth-like, then also efficient to compile. 7. Less tied to a specific processor style with its own style being more amenable to safe, maintainable operation. See Burroughs B5000 processor vs PDP-11's. 8. IMPORTANT. Easier to develop tooling for verification, esp static or dynamic analysis. 9. Easier to verify mathematically. So, these are some things off the top of my head that various languages more ALGOL-like did better than C-like languages. I wouldn't say there was a single one that had all these traits but Modula-3 came close. A modified version of Go might as well given its predecessors were used in safe-language OS's. Hope this brainstorm gives you some idea of what things I valued vs C's style. |