Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There's not DOM outright: each command is just a macro that is designed to expand to "the right thing". More or less.

More in general, I tend to hate all macro languages, like LaTeX, M4 and the C/C++ preprocessor (fortunately in the latter case the impact is usually more limited, because the C/C++ preprocessor layer is thinner than, e.g., a LaTeX document). They tend to require a lot of shenanigans even to make easy things, so the source quickly become a tangled unmaintainable mess, when each time you touch something, you make seemingly unrelated errors appear.

For a trivial example, consider in C:

    #define IDENTITY(x) x
In any reasonable language you would expect that if you see `IDENTITY(y)` you could replace it with `y`. Of course not with macro languages.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: