Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

4
  • any kind of code can be very difficult to maintain. And can be very easy if done the right way. Metaprogramming can increase maintainability in orders of magnitude in fact. Your python experience is, likely, irrelevant to the real metaprogramming, since Python is not very suitable for this way of thinking, with its clumsy too-deep AST. But even with Python, I used the Tempita library with high efficiency, and never had any maintainability problem, even with a team with almost no previous Python experience. Commented Aug 28, 2011 at 10:57
  • I am interested in your point about python AST. Have you used tempita for meta programming purpose? Commented Aug 28, 2011 at 16:33
  • this ( docs.python.org/library/ast.html ) is quite an ad hoc AST, and parser gives an unoptimised, overbloated tree, which makes an analysis problematic (especially with the lack of proper pattern matching in Python). Generating such an AST is not very convenient as well. I used tempita for producing both Python and C code (i.e., pure text-based metaprogramming), it worked fine for that specific task (boilerplate code generation). I also often used Python for generating C code out of some XML high level descriptions. Commented Aug 28, 2011 at 17:16
  • Can you point some papers or books which you maybe found on your method of text-based metaprogramming? I'm trying to work with the object graph which is somewhat close to AST, and don't feel I'm progressing. Commented Aug 16, 2020 at 7:18