The Styx Programming Language
gitlab.com
gitlab.com
I'm aware of Rust and Zig and Nim and wish I had more time to try these out and see what's going on.
Alternatives to C/C++, especially in the embedded systems space, have some real potential.
- Vox: https://github.com/MrSmith33/vox
- Neat: https://neat-lang.github.io/
- Volt: http://www.volt-lang.org/
I wish people would stop publishing me-too languages that implement, for the umpteenth time, the same concepts we have had for 40 years or more. I mean, if you just to learn from the experience of creating a language, that's fine, but you probably won't get much from publishing it.
If one intends to publish a language, it seems to me one should focus on crafting a language that explores something new. That new concepts do not have to be very refined or complex, but your language stand a much better chance of being picked up and refined if it implements the germ of some interesting new idea.
Of the top of my head, here are some concepts [1] I'm trying to explore (cross posted from another comment of mine), which might provide inspiration for others:
- Dependent types, with no real distinction between values and types (At a certain point, Typescript’s type system begins to look like a separate Turing-complete language within a language. It’s probably time to do away with this dichotomy entirely somehow)
- JSX built-in without the need for any React-like dependency (No need to use it if you don’t like it; in the general sense, it’s just syntactic sugar for composing function invocations)
- Localizable or customizable keywords/operators, with automatic translation provided by an utility or language server (Why should programming languages be tools of cultural hegemony?)
- Generic object literals (Why should generic type inference be limited to functions?)
- Deep support for an alternative to exceptions using a Failable<TResult, TError> type
1. They may not be totally new concepts (as in some non-mainstream languages might implement them to some extent), but they are sufficiently of the beaten track that they are a rich source for exploring all kinds of interesting features.
The first paragraph of the project literally say
> Styx is a hobby project that had initially no other goal than to experiment self-hosting of a compiler
Its a hobby.
To arrive at some more objective criterium, I would strenghten your idea of "exploring something new" as follows: How does the language make something new possible, that wasn't possible before? Built-in JSX doesn't survive this test, for example, because JSX was certainly possible before.
As a business programmer, I don't want to think about whether something is stack or heap allocated. I just want explicit clones, immutability by default, the ecoysystem, the toolchain and dang I want sum types.
See lamdu IDE.
> Deep support for an alternative to exceptions using a Failable<TResult, TError> type
See Zig's solution.
It's not really a language designed to be used. I've decided to post the link today to see a bit what people think.
> - Generic object literals (Why should generic type inference be limited to functions?)
Good idea.