You should make a new programming language (ntietz.com)
from armchair_progamer@programming.dev to programming_languages@programming.dev on 13 Aug 2024 15:59
https://programming.dev/post/18081659

Even though it’s very unlikely to become popular (and if so, it will probably take a while), there’s a lot you learn from creating a programming language that applies to other areas of software development. Plus, it’s fun!

#programming_languages

threaded - newest

neidu2@feddit.nl on 13 Aug 2024 16:49 next collapse

Designing a language is easy. But the better the language is, the harder it is to make a compiler.

Gui.present(DoThatThingThatIWant(data))

ericjmorey@programming.dev on 13 Aug 2024 17:15 collapse

Let the LLM fill in the details

ericjmorey@programming.dev on 13 Aug 2024 17:14 next collapse

You should preach to the choir.

j4k3@lemmy.world on 13 Aug 2024 17:27 next collapse

I’ll likely never get to or understand enough for the proje, but I dream of knowing FORTH well enough to write a threaded interpreter for a microcontroller, or something that a LLM agent could use in an unsupervised loop.

sxan@midwest.social on 13 Aug 2024 20:00 next collapse

I did, once. While I never completed a compiler, it was an utter disaster, in that - in retrospect - it was everything I’ve subsequently learned to hate about PLs: multiple ways of solving the same problems, multiple modalities, and lots of rules. I was picking the best things I liked from many PLs and putting them all into one PL, and it was a horrible idea. I didn’t start from fundamentals, and there was no BNF.

I still have the design document, which was fairly complete in describing the syntax and operation; enough that I’m pretty sure that with some time and effort with a good LLM, I could probably get the LLM to build an interpreter or compiler. But looking back on it, man. Was that a complete waste of time.

I don’t think I learned anything from the experience. Having had a long career and deep exposure to a wide variety of languages taught me more about what I value than anything else. For example, my favorite interview question for developers became: “what aspects of language X (that we’re hiring you for) do you dislike the most, and why? What are the biggest points of pain about the language?” Anybody can learn sufficient surface knowledge about a language to hiring tests; it’s the demonstration of understanding the pitfalls that’s most valuable.

ColonelThirtyTwo@pawb.social on 13 Aug 2024 20:59 next collapse

I know I’m sidetracking the point but I despise projects - particularly game engines - that make up their own language and force you to use it.

Making a language is a good exercise and learning experience, but making a good language is hard.

juliebean@lemm.ee on 13 Aug 2024 21:15 next collapse

don’t tempt me frodo!

ericjmorey@programming.dev on 14 Aug 2024 02:05 collapse

There are some things that it is better to begin than to refuse, even though the end may be dark.

nik9000@programming.dev on 13 Aug 2024 21:45 next collapse

I work on a language for a living. It’s fun! It’s a job. But it’s fun.

I’m not super involved with the traditional language parts. The design and parsing and optimization. I spent most of my time on the runtime. We’re embedded in another big system and there’s a lot of things to make it nice.

I spent the day wiring up more profile information for the times the runtime has to go async. Then I’ll fix up some docs generation stuff. Eventually I’ll get back to fun shadowing edge case in the new syntax I’m building.

sik0fewl@lemmy.ca on 14 Aug 2024 12:21 collapse

If you want to give it a try, I highly recommend the book Crafting Interpreters. It’s also available online in HTML format.

Edit: RTFA and I see that’s what the author did as well!