this post was submitted on 28 Mar 2024
17 points (90.5% liked)

Programming

17313 readers
208 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 7 months ago (3 children)

Lisp macros.

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

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago) (2 children)

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.

[–] [email protected] 1 points 7 months ago (1 children)

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.

[–] [email protected] 1 points 7 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.