-
-
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.
-
But these fantasy consoles are aimed largely at the classic BASIC use case of writing simple games. My interest, meanwhile, is in replacing my shell. I want a BASIC that can be a useful, productive stand-in for bash. In this sense, I'm actually more influenced by new-school shells like nushell, elvish and PowerShell.
-
Part of that inspiration was learning about parser combinators, particularly Rust's nom library. Of course, parser combinators - particularly in Rust - presented a bit of a learning curve. But this incredible post by Bodil Stokke really helped me understand how they worked, and made me feel empowered. In fact, for small DSLs, I often use parser combinators - for instance, with ts-parsec in TypeScript and parsy in Python. If you want to dip your toes in and have a head for functional programming DSLs, this is a great direction to go in.
-
But these fantasy consoles are aimed largely at the classic BASIC use case of writing simple games. My interest, meanwhile, is in replacing my shell. I want a BASIC that can be a useful, productive stand-in for bash. In this sense, I'm actually more influenced by new-school shells like nushell, elvish and PowerShell.
-
But one thing that really helped me get to the point where I felt comfortable writing a "real" language is the book Crafting Interpreters by Robert Nystrom. A lot of the classic resources are old textbooks, such as the dragon book - too dense and academic for my tiny goldfish brain. But Crafting Interpreters is very hands-on and practical, with modern techniques used in real compilers. For instance, it teaches how to write a recursive descent parser, as well as a bytecode VM. I worked through the entire book, porting jlox to TypeScript and writing my first non-trivial C program in the form of clox. It's really an incredible book, and I can't recommend it enough.
-
You can see some hints of these in fantasy consoles, such as BASIC8. BASIC8 in particular supports many modern features, such as classes and coroutines, and has fine-grained file support.