Pacifist писал(а):
Я не думаю, что использование отдельного языка для внутренних скриптов является прогрессивным подходом. Мне кажется, что цепочка игрок->билдер->кодер (заинтересованный игрок становится билдером, опытный билдер через какое-то время становится кодером движка) намного интереснее и перспективнее. Если использовать изолированный от движка язык, человек, изучающий его через какое-то время упрется в потолок и его развитие остановится.
Вывод неправильный. Использование отдельного языка наоборот является правильным подходом, если это отвечает задаче. Каждый язык, как и любой инструмент
хорош в месте своего предназначения. Использование Go как внутренний язык - пока под сомнением у меня, но не исключаю такой вариант совсем.
И кстати опять же наоборот, знание только одного языка программирования, например Go, останавливает человека в развитии. Чем больше человек знает языков, тем лучше.
Ведь сейчас на С можно написать все что угодно, зачем придумывают все новые и новые языки ? Почему решили в мадах сделать чтото DGScripts ? Пусть бы все писали
на С прямо в ядре...
Pacifist писал(а):
1. Go всегда копирует переменные во вспомогательные функции и методы из основной программы, то есть, если не давать билдеру контроля над памятью, то билдер никогда не сможет уронить сервер своими неосторожными действиями.
Если ты пишешь программу, то по сути уже получаешь доступ к памяти. Не понял что это значит, но попробую разобраться.
Pacifist писал(а):
2. Нативная поддержка UTF-8 вплоть до того, что в теле программы можно использовать названия переменных, констант и функций на кириллице. Что для билдера может быть проще и понятнее. Например, вместо малопонятного кода: "Миша нажал%actor.y% рычаг", писать что-то вроде: "Миша нажал+" /а/о" рычаг". Не надо лезть в справку, чтобы разобраться, что же значит этот actor.y.
Использование русских букв - плохая практика. Будет каша в коде скриптов. Есть пример - код для 1С бухгалтерии. По хорошему нужны определенные несложные правила
кодирования скриптов для билдеров. Этот подход позволяет исключить много проблем в будущем.
Pacifist писал(а):
3. У Go есть поддержка автоматического тестирования пакетов. То есть, движок сможет автоматически отбрасывать плохой код, который билдер попытается в него внести.
У Луа подобное тоже есть, например. Я тут тоже попробую почитать и разобраться в этом плюсе Go.
Pacifist писал(а):
4. Go простой. Я не освоился еще в нем со всякими каналами и интерфейсами, но циклы и простые функции писать на нем элементарно.
5. Go быстрый. Ниже привожу сравнительный график скорости разных языков, но он староват, теперь Go еще быстрее.
В любом языке код писать элементарно, если его знаешь ). Например Lua еще проще, чем Go, но у Lua есть свои недостатки, а у Go свои преимущества.
На мой взгляд надо танцевать от решаемой задачи, в не от языка программирования.
Главный минус против Go в задаче мад-движка - язык компилируемый. Я не смогу на лету менять нужные аспекты игры не перезагружая сервер.
По сути Go сильно улучшенный C. По сути получится точно такой же мад движок, как все движки сейчас, где для новой фишки придется останавливать
сервер, компилировать его и запускать в работу. А вот с помощью Lua можно делать изменения на лету.