TCL по сравнению с Lua - сценарии mmo сервера

Попытаться вставить вместо???.

Примечание "1". - это - числовой формат.Подробнее: здесь

9
задан Byron Whitlock 13 June 2013 в 13:44
поделиться

5 ответов

Honestly, they're both extremely well suited to the task. Both are easy to embed in an application and have a fairly simple syntax. I know for a fact that it's extremely simple to add new commands (to interact with the application) in Tcl, and I'm told Lua is very good at this type of thing, too.

My recommendation would be to play around with Lua for a while to see how you like it (since you already know Tcl)... and then pick the one that feels most comfortable to you. If you're writing much of the code, you'll wind up working with it a lot, so you'll need something you can use, too. In the end, both language choices should be fairly easy for your end users to script in.

My personal preference is Tcl, both because I don't like Lua (I've done a reasonable amount of programming in it for Warcraft addsons) and because I love Tcl (I've done a LOT of programming in it for both professional and private work).

Edit: Added the note about both being easy for end users. Got 2 down votes and couldn't think of anything else that it might be for other than not clarifying the why part of my statement.

22
ответ дан 4 December 2019 в 05:56
поделиться

Lua C API чрезвычайно легко интегрировать в приложение. С C у вас есть полный доступ к состоянию Lua и его родным типам данных. Я рекомендовал использовать Lua только для реализации хэш-таблицы, например, даже без необходимости в сценариях.

Функции Lua, написанные на C, могут быть введены как глобальные имена, собранные в таблице, как и большинство стандартных библиотечных функций, или реализованы в библиотеках DLL и динамически загружаются во время выполнения. Это позволяет приложению предоставлять стабильный API, а также поддерживать плагины, написанные на Lua или C.

Lua является удивительно мощным языком с поддержкой как функциональных, так и объектно-ориентированных стилей программирования. Кроме того, он на удивление легкий: полный комплект исходных текстов и полная документация умещаются менее чем в 1 МБ, а вся виртуальная машина, компилятор, а стандартные библиотеки в DLL составляют всего 164 КБ в Windows.

Я серьезно не изучал TCL начиная с версии 2 или около того ... Я не буду пытаться сравнивать их конкретным образом. Я считаю, что они оба были изобретены, чтобы занять одну нишу и примерно в одно время. Это, безусловно, оба зрелых языка с активными сообществами пользователей.

7
ответ дан 4 December 2019 в 05:56
поделиться

Я подозреваю, что в Tcl будет больше библиотек, которые вы сочтете необходимыми или удобными в пути.

7
ответ дан 4 December 2019 в 05:56
поделиться

Думаю, я здесь противоположность RHSeeger. Я использовал как Lua, так и TCL, встроенные в игры (кстати, онлайн-игры), и я бы не стал снова трогать TCL с 10-футовой штангой, если бы у меня был выбор. Мое очень субъективное мнение - Lua - нормальный язык, а TCL - нет. По сравнению с другими вариантами языков сценариев синтаксис TCL очень неясен для большинства людей, со всеми наборами, выражениями, знаками доллара и множеством скобок и т. Д. Единственное объективное преимущество, которое он имеет, - это простота встраивания, но Lua не сутулится этот отдел тоже.

Если этот интерфейс сценариев предназначен исключительно для вас, вы также можете перейти на TCL, потому что Lua не предложит вам ничего нового (если только объектная ориентация не ваша вещь). В руках опытного пользователя TCL - разумный инструмент. Если, однако,

16
ответ дан 4 December 2019 в 05:56
поделиться

Как утверждали другие, оба языка будут работать очень хорошо. Третий вариант, который, вероятно, также будет работать, - это JavaScript, поскольку он занимает примерно ту же нишу. Вместо того, чтобы пытаться добиться от вас одного или другого (поскольку мне очень нравятся оба языка), я постараюсь сосредоточиться на некоторых объективных различиях и указать, в чем, по моему мнению, один лучше другого.

Наиболее важной проблемой игрового сервера, вероятно, является чистая производительность. Оба языка являются зрелыми и хорошо оптимизированными, но оба также признают, что некоторые проблемы лучше всего оптимизировать, откладывая выполнение до скомпилированного кода. Оба языка используют для этого в основном один и тот же механизм. С точки зрения самих языков похоже, что Lua немного быстрее. ссылка

С точки зрения библиотек, что является следующим важным фактором. Ни один из языков не требует использования каких-либо библиотек, чтобы быть полезным; то есть оба языка очень компактны по сравнению с такими языками, как Java, для использования которых требуются большие библиотеки времени выполнения; Опять же, это следствие требований их оригинального дизайна. Оба языка имеют множество дополнительных библиотек на выбор, но мне кажется, по крайней мере, что TCL имеет несколько большее разнообразие в этой категории. tcl :( Архив расширений Tcl / Репозиторий расширений Tcl ) lua: ( LuaForge )

Еще одно различие заключается между самими языками ядра. Оба языка ценят простоту выше стиля, но на этом сходство заканчивается. Lua использует синтаксис, который может быть знаком большинству программистов, с очень простой контекстно-свободной грамматикой. Синтаксис TCL также прост, но на самом деле не имеет ничего общего с другими существующими языками, хотя внешне немного похож на язык оболочки unix. Tcl, вероятно, проще только для непрограммистов, потому что его строчно-ориентированный синтаксис команд довольно ясен, но программисты, имеющие опыт работы с другими языками, обычно возражают против его загадочного синтаксиса. Ни один из них не очень снисходителен с точки зрения генерации кода, но оба обладают мощными средствами метапрограммирования (сопоставимыми, но, возможно, не такими надежными, как макросы CLISP).

7
ответ дан 4 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: