tgoop.com/metaprogramming/131
Last Update:
Языки программирования для разработки игр (3/3)
Итак, шорт-лист победителей
A. D. Из названия ясно, что люди хотели сделать "как C/С++, только всё чтобы было лучше". У них это получилось. Доступ к низкоуровневым операциям, более-менее беспроблемная интеграция C (и даже C++) кода, в то же время человеческий синтаксис, хорошая стандартная библиотека, автоматическое управление памятью (отключаемое).
B. Nim. На что был бы похож язык, сделанный без оглядки на внешний вид всех предыдущих, но с использованием наработанного человечеством опыта разработки компиляторов? Да вот на Nim. Есть некоторые очевидные сомнительные моменты в синтаксисе, на тему которых идут вечные холивары, но не буду их даже перечислять из-за ничтожной значимости. В целом взято лучшее из всех миров: управление памятью на гибридной модели (подсчёт ссылок + сборка мусора для циклически связанных объектов; обещают вскоре что-то ещё более интересное выкатить), богатый синтаксис (с адекватным метапрограммированием), хорошая стандартная библиотека. Программисты на современных языках быстро освоятся.
Выбор между двумя вариантами сложный и вот какими соображениями определяется.
– С одной стороны, синтаксис D ограниченно совместим с синтаксисом C (некоторые фрагменты кода можно по сути копи-пастить). Дополнительно, режим ImportC позволяет напрямую использовать сишные хедеры (ну, почти напрямую, поковырять немного придётся, но писать полноценные биндинги, как во всех других языках кроме собственно C и C++, не обязательно).
– С другой стороны, Nim в целом более передовой и перспективный. На нём код получается более лаконичный, выразительный и легко поддерживаемый (на D в целом-то тоже норм, но всё же не дотягивает). Идеология "структур с методами, принимающими структуру или указатель на неё" вместо "классов" (хорошее место в Go, кстати) здесь вполне работает, удобней в обращении чем классический ООП D.
– В установке под Windows проще D. Компилятор Nim работает без нареканий, но процесс развёртывания неприятный.
И там, и там довольно развитое сообщество: форумы, чаты, энтузиасты выкладывающие библиотеки на GitHub и всё такое. У меня сложилось (может быть ошибочное, т.к. знакомство было коротким) впечатление, что в D расклад менее перспективный: пожилого создателя языка уже в каком-то неочевидном направлении начинает тянуть, а среди молодёжи повышенная концентрация, как бы сказать, странных людей.
В Nim создателем-руководителем является молодой рациональный мужик, люди вокруг без особенностей, развито русскоязычное коммьюнити (вплоть до того, что пишут плагины для компиляции под Эльбрус).
В целом фактор сообщества малозначимый, но, пожалуй, на фоне общего паритета добавляет гирьку, склоняющую чашу весов в сторону Nim.
А вообще лучше забыть про все подобные списки и писать на том, что нравится – это первейшее и главнейшее соображение.
#programming
BY Metaprogramming
Share with your friend now:
tgoop.com/metaprogramming/131