Comments 28
Выглядит, как что-то очень крутое. Однозначный плюс — это удачное, по всей видимости, сочетание метапрограммирования, системного программирования и интерпретатора. Минус — недостаточно знать только C — нужно знать еще и Lua.
И не до конца понятно, правда, где это предлагается использовать. Вместо чистой Lua? В качестве самостоятельного системного языка?
Скорее, вместо С++ и не в системном программировании а максимум в околосистемном прикладном.
По-моему, там, где пишут на С, подобные "расширения" синтаксиса вряд ли будут востребованы, там наоборот ценится прозрачность и отсутствие лишней многослойности.
Ну и то, что синтаксис очень не похож на основной язык, тоже скажется не в пользу его использования.
Вот даже не знаю… С одной стороны, при написании на C++ порой возникает мысль, что вместо метапрограммирования на темплейтах иногда лучше было бы написать кодогенерацию на нормальном ЯВУ.
А с другой — при такой свободе слишком легко написать неподдерживаемый код.
В общем, запомню этот проект, буду наблюдать.
… при условии очень жёсткой дисциплины написания кода.
Или ваше "в данном случае" это подразумевает?
Упс, коммент не туда ушёл почему-то… Был ответ на "Использование полноценного ЯВУ в данном случае, по моему мнению, имеет больше плюсов, чем минусов".
Функции-шаблону MakeArray не хватает мемоизации...
Lua служит заменой шаблонов C++ [3] и макросов препроцессора C (X-Macro) [4], имея при этои лучший синтаксис и лучшие свойства в плане гигиены [5].
Это, похоже, макросы из Лиспа?
Единственное, немного опасаюсь за судьбу языка из-за выбранной комбинации технологий. В который раз у меня возникает вопрос: почему Lua? Несколько раз сталкивался с этим языком в разработке, и не могу сказать что получал удовольствие от программирования на нём. Я даже знаю людей, которые перешли с Torch на Tensorflow только из-за Lua. А потом сами разработчики Torch сделали PyTorch!
Скорее всего у авторов были причины использовать именно Lua (а не Python, например). Полагаю, решение с Lua более «легковесное» и его легче менеджить. Интересно, как это решение повлияет на судьбу проекта.
Язык Terra — низкоуровневый партнёр Lua