Dingo: A Modern Language That Compiles to Go
Ever feel like you want the performance and ecosystem of Go, but with a more modern syntax? Maybe something a little less verbose, with a few quality-of-life features that newer languages have spoiled us with? That’s exactly the itch Dingo aims to scratch.
It’s not a framework or a library—it’s an entirely new language. But instead of building a whole new runtime, Dingo compiles down to plain, readable Go. You get a fresh syntax while keeping all the benefits of Go’s tooling, concurrency model, and deployment story.
What It Does
Dingo is a statically-typed, compiled programming language. You write code in .dingo files, run it through the Dingo compiler, and it outputs standard Go source code. This Go code can then be built and run like any other Go program. It’s essentially a frontend language for the Go compiler, offering an alternative syntax and some additional features.
Why It’s Cool
The clever part is the approach. By targeting Go source code, Dingo sidesteps the monumental task of creating a new compiler backend, garbage collector, or runtime. It leverages the entire Go ecosystem immediately.
While the project is in early stages, the vision includes some compelling ideas:
- Cleaner Syntax: Aims to reduce boilerplate common in Go.
- Enhanced Features: Exploring built-in support for concepts like optionals, more expressive error handling, and other modern language constructs.
- Full Interop: Since it compiles to Go, you can seamlessly use existing Go packages. The generated Go code is meant to be human-readable, which is a big plus for debugging.
- Go’s Strengths Intact: You still get goroutines, channels, and the fantastic standard library, just through a different syntax.
It’s a pragmatic experiment in language design. It asks: "What could Go look like with a different skin and a few more features under the hood?"
How to Try It
Ready to take a look? The project is open source on GitHub.
- Head over to the repository: github.com/paoloanzn/free-code.
- Check the README for the latest build and installation instructions. As an early-stage project, the setup might involve building from source.
- Look for examples in the repo to see the Dingo syntax and how it translates to Go.
Since it’s actively developing, the best way to try it is to clone the repo, explore the example code, and see the translation in action.
Final Thoughts
D