Introducing the Design Language Tools

Boilerplate is repetitive code that is nonetheless necessary to build working software. Different languages use different methods for reducing boilerplate. So when working in multiple languages, a developer may find themself writing the same thing over and over in slightly different ways.

Ideally our code should be maximally expressive -- where the meaning of each program is precisely reflected in the code for that program, with no unnecessary repetition. And experienced coders understand that every line of code is a liability -- each statement entered into one's editor introduces the potential for error.

Considering the advent of generative AI, we have a new issue with boilerplate code. First off, our AI overlords will charge us (tokens, etc.) to write it. Secondly, boilerplate code is a great vector for hallucinations and confabulations. Human reviewers are used to passing over boilerplate code quickly, without giving it too much thought. But errors in this part of the code can have an outsized impact on the applications that are built from it.

Now here's a use case for meta-programming if I've ever seen one. Wouldn't it be great to have a way to generate the boilerplate for the structure of your application? With the design language tools you can, from a simply-defined design document, implement the interfaces and other basic elements of your application.

Use LLMs for the programming work that actually requires them, and leave the structural parts of your code up to you and the designlanguage tools. These tools will always take your design and render it as correct, reliable code. And if you want too modify this code in the future you can do so by editing the design and running the generator again.

This effort is a work in progress, please check out the Design Language page as well as the designlanguage Git repository

Currently the Go target language is supported. In the future Python support will be added, as well as whatever target languages the community needs. Please take a look and contact us for more information or to get involved.