I made this simple language over the past year, and it's time for me to say it's "done" (for now) and focus on other projects.<p>I've struggled to answer the question "what is this language for?" other than "it's just for me" — and that's probably good enough. But I also wanted to make something "complete" that others could use if they wanted to. Writing my own language was an incredibly rewarding experience, and I'd recommend everyone trying it.<p>Let me know if you have any questions or feedback, and please share your own experience if you've also made a language.
What a great introduction: what it is, how it looks, why you might like it, what the design goals are, and how to write it - all while being short, to the point, and relatively buzzword free. I find a lot of new language offerings (which may be very good technically) fall short on how they make a first impression; other language creators should look at this as a template.
> other than "it's just for me" — and that's probably good enough<p>I love this sentiment, and I'm glad you made this! I love reading different syntaxes for programming languages. You should be proud. Writing programming languages is _hard_.<p>I made an abstract programming language in 2023 (<a href="https://visionscript.dev" rel="nofollow">https://visionscript.dev</a>). The language still needs _a lot_ of work and some bugs fixed. With that said, I had so much fun making it.
Your work is in an interesting niche, but I found your home-cooked app philosophy post more fun to read about. It made me feel optimistic about the value of creative coding projects, thank you for writing it.<p><a href="https://www.robinsloan.com/notes/home-cooked-app/" rel="nofollow">https://www.robinsloan.com/notes/home-cooked-app/</a>
You could have made the file extension ".k7" which is short for "cassette" in French.<p>Great work of course, just a fun suggestion ;)
> <i>Playful programming is writing something for the sake of writing it. It’s making a software 3D renderer or a GIF reader, even though better implementations of those already exist. It’s making generative art programs and drawing them with a pen plotter. Cassette itself is playful programming—there are certainly other scripting languages that may be better for personal projects like these, but this one is mine.</i><p>Nice hack!
I'm so impressed. I love the syntax (especially the backslash for lambdas and the colon for symbols). I don't know so many languages but it feels quite "new" to me, which is quite hard given the number of languages out there. I recently thought about building my own language just for fun and it makes me realize how all my ideas are just a copy and mix of other languages. The website is also super clean and beautiful (the font is great). How did you manage to use syntax highlighting for your own language on your website?<p>One thing: I was confused (as others stated here I think) by the link to Robins Loan's website and thought it was an other article from you about Cassette.<p>Would you consider writing a blog post about how you created it (building the lexer, parser, etc.)? I would definitely be interested.
I like the clear choices you made and that you stuck to them, even when making them optional (particularly shooting for GC-optional) might have attracted attention. Also, like the explicit implementation simplicity as a goal.<p>I’ve talked about it on Hn a few times, but I wrote the language I use for work. Like you, the language is primarily for me, but my motivation was to prove some type theory and philosophical (mathematics) points I held as true but couldn’t visibly see for myself. It was a trek to get finished, but it was a very rewarding experience.
Thanks for sharing!<p><pre><code> ; these produce an error, since `b` isn't defined when the body of `a` is compiled
let a = \x -> (b x * 3),
b = \x -> (a x / 2)
</code></pre>
It surprised me when this was called out, given that both a and b are defined in the one 'let'. Was there a specific reason you decided not to treat it as a 'letrec'?
I'm genuinely disappointed by the predictability of encountering negativity and criticism towards new programming languages, even when the cynics represent a small minority. My address is to those who tend to be critical, cynical, and skeptical. It particularly troubles me when individuals adopt an air of entitlement and phrase their questions as, "Why should I use this? Prove its value to me." I would like to propose that this approach runs counter to the hacker ethos, as it immediately puts such questions in a negative light. There are constructive and useful ways to inquire about new languages, but all too often, I witness people ridiculing and deriding the work that others have shared. If this were our reaction to every new (even experimental) endeavor within the hacker and broader community, we would miss out on exploring fascinating possibilities. Many, if not most, of the technologies we use today began as small kernels or mere experiments. Through the dedication of individuals or small groups of passionate people, they evolved into essential components of our technology stacks. So, while it's perfectly valid to inquire about the compelling features of a language or why one might choose to use it, there are ways to frame such questions without sounding cynical and derisive.
Every time I sit down to write a toy language I get stuck on two conveniences: syntax highlighting and auto-formatting. I feel like they're table stakes for a programming language in 2024, but they're _just_ annoying enough that I lose interest. Any tips?