Ways to extend a language with custom stuff that works™
- define stuff in the language to use (libraries)
- if the language lets you define custom parts of syntax (macros, plugins, etc) use the built-in methods for extending the language itself
- create an entirely separate DSL for working with solutions in this problem space and figure out how that maps to this language
Ways to extend a language with custom stuff that doesn't work™
- try to add additional syntax as a thin layer on top of a separate, growing language still under development