Macros can be useful but I feel like we should ban certain people from touching them.
For example, imagine if someone were to use the C preprocessor to create an elaborate object orientation system for C, calling it GObject, and then create an entire graphics stack up to and including a desktop environment, called, say, GNOME.
I think that's the kind of person who should no longer be allowed to use the C preprocessor.
@jordyd hi! Why is your nick latex allergy?
@jordyd OK, because the thing that sucks with TeX and latex is the macros, although TeX and latex are awesome although built from macros. Also gobject sucks, but it's strength is that 1) it exists, and 2) the API is portable to many languages. If you want to makes portable software there is still nothing that beats c.
@wictory imo they could have accomplished all that by doing it in Objective-C and writing C bindings, which would have been a lot cleaner and a lot less work