Hello all!
I’m terrified however needed to share nonetheless that I’ve been engaged on an experiment known as Go++, a superset of Go that compiles to bizarre Go; the venture remains to be in early phases and undoubtedly not prepared for manufacturing use however I hoped to get some early suggestions from the neighborhood that might assist steer it in the correct course.
I like Go and its simplicity, however through the years I’ve sometimes wished I may use some options that Go fairly intentionally avoids. Go++ is my experiment in layering a few of these capabilities on high whereas retaining Go interoperability and the present Go ecosystem.
Go++ at present provides issues like:
- Courses and polymorphism
- Generics
- A number of inheritance
- Operate and methodology overloading
- Named and default arguments
- Enums and structural data
- Extension strategies
- String interpolation
- Secure nil strolling and fallbacks
- Exceptions
- Annotations and introspection
- and extra!
The vital constraint is that Go++ compiles to bizarre Go. The intention is to retain interoperability with Go packages and the present Go ecosystem moderately than create a completely separate runtime/world.
The venture has grown past the compiler itself and now features a CLI, formatter, language server, VS Code help, testing, and a few opinionated stdlib packages for HTTP routing, serialization, ORM and extra.
You possibly can attempt it with:
go set up github.com/telgatech/gpp@newest
gpp init hey
cd hey
gpp run
Supply, examples and documentation: GitHub – telgatech/gpp: Go++ Programming Language. A sensible superset of Go together with lessons, exceptions, enums, and extra—compiled to bizarre Go. · GitHub
I’d love suggestions from Go builders who’re keen to offer it a spin—notably across the language design, Go interoperability, tooling, tough edges, and something that feels stunning or inconsistent.
When you attempt it, let me know what works, what breaks, and what you’d prefer to see subsequent.

