-
Hard agree. Even without going deep on a "serious language" there's a universe of DSLs that's mostly unexplored.
Debuggers are the outlier in your group but there's not exactly a void for those other wishes. As just one slice, building a tree-sitter [1] grammar gives the basis for good editor integration [2], formatters [3], structural diff [4] and other dev tools. Similarly if you're expressing some form of program, mapping to LLVM IR connects your creation with a fairly extensive compiler toolchain.
Language agnostic tooling exists, but there still needs to be some abstraction layer.
[1]: https://tree-sitter.github.io/
[2]: https://zed.dev/blog/syntax-aware-editing
[3]: https://topiary.tweag.io
[4]: https://difftastic.wilfred.me.uk
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
Hard agree. Even without going deep on a "serious language" there's a universe of DSLs that's mostly unexplored.
Debuggers are the outlier in your group but there's not exactly a void for those other wishes. As just one slice, building a tree-sitter [1] grammar gives the basis for good editor integration [2], formatters [3], structural diff [4] and other dev tools. Similarly if you're expressing some form of program, mapping to LLVM IR connects your creation with a fairly extensive compiler toolchain.
Language agnostic tooling exists, but there still needs to be some abstraction layer.
[1]: https://tree-sitter.github.io/
[2]: https://zed.dev/blog/syntax-aware-editing
[3]: https://topiary.tweag.io
[4]: https://difftastic.wilfred.me.uk
-
I wrote my own language last year[1], ending the year by doing Advent of Code in it, and then translated it to itself in early January (so it's now self-hosted). I wanted to see if I could learn how to write a dependent typed language, wanted it to be self hosted, and able to run in a browser.
It's perhaps not a "proper" language because I targeted Javascript. So I didn't have to write the back half of the compiler. Since it's dependent typed, I had plenty of work to do with dependent pattern matching, solving implicits, a typeclass-like mechanism, etc.
Next I may do a proper backend, or I may concentrate on the front end stuff (experiment with tighter editor integration, add LSP instead of the ad hoc extension that I currently have, or maybe turn it into a query-based compiler). Lots of directions I could go in.
At the moment, I'm looking into lambda-lifting the `where` clauses (I had punted lambda lifting to JS), and adding tail call optimization. I lost Idris' TCO when I self-hosted, so I currently have to run the self-hosted version in `bun` (JavaScriptCore does TCO).
[1]: https://github.com/dunhamsteve/newt