I have yet to see that this is an issue with Julia. I don’t think I’ve come across any overuse.
Macros are a bit of a pain to write, but beyond that, they’re a perfectly normal feature of the language. Not that I’m opposed to applying a tag to packages that define macros, but I wouldn’t consider it a stigma at all.
If you’re right, maybe we should do this (but only in the REPL) for all macros? It seems not too hard. I mean if done unconditionally. I’m not sure what you meant by “for xyz”, to analyze the macro for complexity, and only warn when some level exceeded? Then harder and I’m not sure needed.
I only recall trying to locate a function definition, and not finding it. That’s annoying. Or rather I found it but it was a macro and/or eval (I understand you sometimes want that for the convenience of the package maker, but less ideal to read for the user?). I forget the details. E.g. for Genie.jl package.
P.S. Can someone make a macro for that Clippy advice…? And I’m sort of serious, maybe some warnings should be that obvious; and not take up extra lines in the REPL.
It’s not only about convenience. Having to write a large number of similar function definitions is rather error prone. There are certainly tradeoffs with @eval loops but they shine at being consistent.
Let’s consolidate this discussion over at the simultaneous Internals & Design post that’s also about how to handle registry submissions that export macros. This is more of an internals/governance sort of thing than it is New to Julia.