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 articleCreating 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.
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Crafting Interpreters
The book "Crafting Interpreters" by Robert Nystrom is a detailed guide on creating programming languages. It covers parsing, semantics, bytecode, and more. Nystrom provides free online access and additional resources.
Driving Compilers
The article outlines the author's journey learning C and C++, focusing on the compilation process often overlooked in programming literature. It introduces a series to clarify executable creation in a Linux environment.
Objective-C is like Jimi Hendrix (2014)
The author compares Jimi Hendrix's influence on guitar music to Objective-C's impact on programming, noting how perceptions of its features have evolved as newer languages emerged, reflecting on programming history.
How to Compile Your Language – Guide to implement a modern compiler for language
This guide introduces programming language design and modern compiler implementation, emphasizing language purpose, syntax familiarity, and compiler components, while focusing on frontend development using LLVM, with source code available on GitHub.
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.
Related
I Probably Hate Writing Code in Your Favorite Language
The author critiques popular programming languages like Python and Java, favoring Elixir and Haskell for immutability and functional programming benefits. They emphasize personal language preferences for hobby projects, not sparking conflict.
Crafting Interpreters
The book "Crafting Interpreters" by Robert Nystrom is a detailed guide on creating programming languages. It covers parsing, semantics, bytecode, and more. Nystrom provides free online access and additional resources.
Driving Compilers
The article outlines the author's journey learning C and C++, focusing on the compilation process often overlooked in programming literature. It introduces a series to clarify executable creation in a Linux environment.
Objective-C is like Jimi Hendrix (2014)
The author compares Jimi Hendrix's influence on guitar music to Objective-C's impact on programming, noting how perceptions of its features have evolved as newer languages emerged, reflecting on programming history.
How to Compile Your Language – Guide to implement a modern compiler for language
This guide introduces programming language design and modern compiler implementation, emphasizing language purpose, syntax familiarity, and compiler components, while focusing on frontend development using LLVM, with source code available on GitHub.