Как развивалась кодогенерация: от макросов до DSL и обратно