Assume the compiler works perfectly

Assume the compiler works perfectly

BackerLeader ●1 ●5 ●28
calendar_today ago • schedule2 min read

When developers look at a new programming language, they usually test it by running the compiler. That makes sense, since the compiler is the only part you can actually run. But it hides a distinction that matters a lot for an early stage language: the language and its compiler are two totally different things

A programming language is a design. It's a set of rules for what programs look like, what they mean, and what the language refuses to allow. It covers the abstractions, the defaults, and the tradeoffs.

A compiler is a program that implements that design. It turns source text into something that runs. It has bugs, missing features, slow spots, and confusing error messages. Those can all be fixed without changing the language.

For an established language, the difference is mostly academic. But, for a new language, the distinction is incredibly important.

A new compiler is always rough. It will have gaps, odd edge cases, and diagnostics that need work. Feedback about those is real and welcome, but it answers: does this implementation work yet?

The important question: is this language worth building a compiler for, at all? A turd can't be polished into being, not a turd.

Language feedback judges the design, regardless of compiler functionality.

When I ask what people think of scrml, this second kind of feedback is what I'm after. Compiler bug reports help and I'll keep fixing what they find. But the question that decides whether scrml should exist is a language question:

Assume the compiler works perfectly. Is this a language you'd want to write?

"No, because…" is just as valuable as "yes," as long as the reason is about the design and not the current compiler build.

But, by far, the most valuable feedback is: "I think this feature is implemented incorrectly, and I have an idea to fix it."

The value of this last statement is not in the 1 idea of 1 feature of the language. It is that a second human being has actual interest in building this thing with me!

I am not special. I am not a beautiful, unique snowflake. I am the same "all singing, all dancing crap of the world" as everyone else. I am not especially capable of designing a programming language.

What I do have, that does qualify me, to at least submit my opinion on the matter; is a genuine and abiding love of programming. It is a thing that I care about deeply. It is a thing that I want to nurture and improve, if I can.

If you feel similarly, join me. Our ideas will certainly be better than my ideas.

2 Comments

1 vote
1
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

I am Jack's `<engine>`

Bryan MacLeeverified - Sep 15

An honest question

Bryan MacLeeverified - Sep 12

I am Jack's `match`

Bryan MacLeeverified - Sep 8

I am Jack's `<program>`

Bryan MacLeeverified - Sep 8

If You Give a Dev an Enum, then

Bryan MacLeeverified - Aug 31
chevron_left
2.7k Points • 34 Badges
Vernal UT • scrml.dev
10Posts
14Comments
26Connections
I am a truck drive specializing in the oil and gas industry, who happens to love coding.
i have been... Show more

Related Jobs

View all jobs →

Commenters (This Week)

2 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!