To clarify, I mean writing scripts that generate or modify classes for you instead of manually writing them every time, for example if you want to replace reflection with a ton of verbose repetitive code for performance reasons I guess?

My only experience with this is just plain old manual txt generation with something like python, and maintaining legacy t4/tt VS files but those are kind of a nightmare.

What’s a good modern way of accomplishing this, have there been any improvements in this area?

  • monomon
    link
    fedilink
    arrow-up
    5
    ·
    8 months ago

    Lisp macros.

    But I’d be curious of the possibilities of generating code with tree sitter.

    • Miaou@jlai.lu
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 months ago

      Never tried lisp, it’s always been on my “as soon as I have an excuse to learn it” list (alongside haskell). What makes it adapted to this use case?

      For this problem I’d usually go python + jinja but I cannot say I like the experience.

      • monomon
        link
        fedilink
        arrow-up
        1
        ·
        8 months ago

        Both languages you mentioned i highly recommend.

        Lisp macros are another level, because they are part of the language - you can use all language primitives to transform forms however you like.

        Haskell will give you a different view of programming. It’s beautiful and concise, and implements all sorts of academic research in languages. Ocaml is similar in many respects.

        • monomon
          link
          fedilink
          arrow-up
          1
          ·
          8 months ago

          Just thought of an example. If you want to, you can open a file at macroexpansion time, and generate code based on its contents. There are no limits, pretty much.