Я думаю, что это возможно и даже желательно (я неохотно имею дело с C ++ при написании собственных модулей Node.js), но сложнее, чем с языком более высокого уровня, таким как JavaScript.
Что выЗапрашиваемая речь - это язык, который обеспечивает синтаксический сахар без ущерба для производительности или гибкости.Некоторые синтаксические сахара (скажем, синтаксический пробел или блоки def/end
в стиле Ruby вместо фигурных скобок) было бы тривиально добавить.Но, добавив что-то более сложное, вы столкнетесь с двумя основными препятствиями: статическая типизация и сборка мусора.
Например, допустим, вы хотите добавить неявные возвраты.Это кажется небольшой функцией, но подумайте об этом: чтобы эта функция была полезной, вам нужно - по крайней мере - выдать ошибку времени компиляции, когда значение последнего выражения не совпадает стип возврата функции.Это означает, что вашему компилятору необходимо проверить строку типа
a->b
и выяснить, какой это тип.В принципе это возможно, но это чертовски много работы, чем делает компилятор CoffeeScript.Это означает, что вы выделяете массив, длина которого неизвестна во время компиляции, а это значит, что вам нужно будет впоследствии освободить его самостоятельно.Таким образом, синтаксический сахар действительно может причинить вам вред.Правило «Если вы malloc
это, вы free
это» не работает, если компилятор добавляет для вас malloc
, если только он не может выяснить, куда поместить free
(что, опять же,как правило, возможно, но потребует много работы).
Итак, хотя я хотел бы, чтобы кто-то дал C ++ обработку CoffeeScript, я не ожидаю, что это произойдет в ближайшее время - если вообще когда-нибудь.Я думаю, что более вероятно, что мир в конечном итоге перейдет к чему-то вроде D или Go для программирования на системном уровне.