August 13th, 2024

You should make a new programming language

Creating a programming language enhances understanding of design and execution, fosters creativity, and provides valuable insights. Implementing existing languages and choosing different implementation languages can deepen learning experiences.

Read original articleLink Icon
You should make a new programming language

Creating a new programming language can be a valuable learning experience for software engineers, despite the fact that most tasks can be accomplished using existing languages. The author reflects on their journey of developing languages, starting with a humorous premise that led to unexpected insights. Building a programming language allows engineers to gain a deeper understanding of language design, parsing, and runtime execution. The process involves making critical decisions about the language's structure, such as its syntax and type system, which enhances comprehension of existing languages. The author emphasizes that the resulting language may not be perfect, but it can still serve specific purposes and provide a fun learning experience. They encourage programmers to start by implementing existing languages through guided resources, which can demystify the process. The author suggests that choosing a different implementation language than the one used in tutorials can deepen understanding. Ultimately, the act of creating a language fosters creativity and innovation, contributing to the evolution of programming.

- Developing a programming language enhances understanding of language design and execution.

- The process can be freeing, as the resulting language doesn't need to be perfect.

- Implementing existing languages can provide valuable insights and foundational knowledge.

- Choosing a different implementation language can deepen learning.

- Creating a language encourages creativity and innovation in programming.

Link Icon 2 comments
By @nilirl - 5 months
Just as some constructive dissent:

I think it's a waste of time unless you're doing it out of curiosity or if it's directly related to your job.

I say this because I was once a new developer who felt inadequate not being able to understand the "lower level" details of our field (from my relative perspective of a web developer or product developer). Especially posts about compilers, OS or cryptography.

I spent the hours and I read the books and I built the toys. I found some joy in it at the time but otherwise I don't remember or use most of what I learned. Its lasting effects on my value as a developer or individual has been minimal.

This is not to say you shouldn't spend time learning things like this. I'm just saying I don't think you should make a programming language because posts on HN say so.