/metago

A metaprogramming language for Golang

Primary LanguageGoMIT LicenseMIT

Note: this is experimental, pre-alpha software

metago - A metaprogramming language for Golang

Metago isn't really a whole language, it's more like a framework for writing "code mods" and code generators in Go's template language ("text/template").

Rationale

One of Go's strengths is its simplicity. For most code this simplicity is very beneficial. However there's a certain kind of code where Go's simplicity can start to get in the way. Examples of this include the sort package and other cases where one would traditionally use generics. Other examples include boilerplate code such as the code generated by stringer. The goal of metago is to help keep Go simple by adressing the (very few) downsides of simplicity.

Examples

TODO

Planned Features

  • More robust support for introspecting Go Code
  • Support for importing plugins written in Go