4 Comments
User's avatar
Rajiv Abraham's avatar

Would PML be an IR?

Expand full comment
Paul Tarvydas's avatar

Python, Rust, et al, are IRs for PML.

PML is cheap syntax. We should strive to create custom syntaxes for each paradigm.

[As you pointed out, Alan Kay said "In a 'real' Computer Science, the best languages of an era should serve as 'assembly code' for the next generation of expression". Around 31:50 of https://www.youtube.com/watch?v=fhOHn9TClXY&t=859s]

Expand full comment
BreddyT85's avatar

I have some perplexity about the "1970s trap" paragraph. Let me start by saying that I am an amateur programmer, so I could be wrong.

Before the C was invented, there were many programming languages in use (Fortran, Algol, PL/I, Lisp...). The C language was invented in 1973 only for writing the operating systems (Unix in that year). After 1973, these events happened:

_ programmers started to use C for writing programs outside from operating systems.

_ many new languages were invented, imitating the syntax and the behavour of the C language (C++, Objective C ...).

_ many older languages were partially or totally dropped.

I suppose this trend happened for a simple reason: linking more executables written in different programming languages, in those years, was complicated. Using C as multi-purpose language seemed a viable solution for solving this problem.

I remember an interview to Frances F. Allen:

https://www.noulakaz.net/2020/05

Here an excerpt of the interview:

Seibel: Do you think C is a reasonable language if they had restricted its use to operating-system kernels?

Allen: Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve. By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are… basically not taught much anymore in the colleges and universities.

Expand full comment
Paul Tarvydas's avatar

Thanks for commenting! Modern ANSI C no longer resembles 1973 K&R C. We (the royal "we") veered off and concentrated on function-based programming, using only text which then led to the need for intense type-checking that causes syntactic pollution of programs. Additionally, compilering and function-based thinking actually don't fit well together. https://programmingsimplicity.substack.com/p/how-c-accidentally-locked-programming?r=1egdky

Expand full comment