Hacker News new | ask | show | jobs
by block_dagger 2083 days ago
Crystal has no metaprogramming. Lang is far less useful than Ruby imo, doesn’t deserve equal comparison.
2 comments

True, but one of the selling points of Ruby to begin with is runtime metaprogramming. Sure, it should generally be discouraged, but when it's heavily utilized by ecosystems like Rails, it becomes a primary feature that macros do not adequately address.
Are you saying it's a primary feature for Rails or for Ruby? I can't think of an example where it's a primary feature for a user of Rails but I usually avoid it in favour of better tools so I might not know of them. Perhaps you know of some?
Rails leans on meta programming for a lot of its magic (though less so than it used to in early versions). You don’t generally use it as a user of Rails, though.
Then I don't see how they're any better than macros in that situation.
It does have metaprogramming, only at compile time. Crystal metaprogramming is very advanced as well, you could even create methods dynamically from a JSON file if you wanted to.