Макросы – прием метапрограммирования, дающий возможность запустить код во время компиляции, который сгенерирует код для рантайма. Классная штука, потому что позволяет ускорить и разработку, и сам код.
Но есть одно НО... можно меня назвать Go-дрочером, но сука, существует второй прием метапрограммирования, который уже достаточно давно считается более предпочтительной версией макросов – кодогенерация.
Отличие в том, что код макросов появляется на моменте компиляции, а код во время "кодогенерации" появляется когда вы запускаете его отдельной командой
Утрировано, вы задаете шаблон, запускаете команду "go:gen" и ваша кодовая база расширяется нужным кодом
Из преисуществ: результат намного безопаснее, понятнее и виднее, можно кастомизировать реузльтат, позволяет из шаблонов релизовать невероятно оптимизированные алгоритмы и многое другое
JS тебе дали еще один шанс, а ты все по тем же граблям... тьфу ты блять...
Единственное, что радует: кодогенерацию еще есть шанс написать самому / найти либу, а вот макросы самому сложнее добавить к языку, поэтому считаем, что хорошо что хоть это сделали