Автор Тема: Squirrel  (Прочитано 35970 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Squirrel
« : Апрель 27, 2013, 06:31:47 pm »

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #1 : Апрель 27, 2013, 06:39:08 pm »
Цитировать
Синтаксис языка ближе к C/C++

Опять.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Squirrel
« Ответ #2 : Апрель 27, 2013, 06:46:29 pm »
Ога. Я тоже не понимаю любовь к этой допотопной каке.

Желание добавить свистоперделки к Lua еще можно понять. Но поганить няшный луашный синтаксис это низачет.
« Последнее редактирование: Апрель 27, 2013, 06:48:04 pm от ilovb »

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #3 : Апрель 27, 2013, 07:12:48 pm »
Цитировать
Squirrel представляет собой язык с динамическим определением типов данных - тип переменной определяется значением, которое она хранит в данный момент времени и может меняться при присваивании нового значения.

Строгой типизации нет. Неужели сложно использовать 4 типа данных: ineger, float, boolean, string. Зато сколько ошибок можно исключить.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Squirrel
« Ответ #4 : Апрель 27, 2013, 07:13:31 pm »
Lua and Squirrel

Цитировать
When considering an embedded scripting language, the most common choice is Lua, though there are many alternatives. One of those is Squirrel, a Lua-like language with a C-like syntax. Based on its history, one might dismiss Squirrel as simply “Lua with C syntax” or assume that its inclusion of classes and other features makes it heavy compared to Lua, perhaps the work of a spiteful C++ programmer who doesn’t like Lua. In actuality, not only is Squirrel light and performant, it addresses memory performance issues in Lua as well as several inconsistencies in the language, and it supplies features that must be hand-built in Lua.
« Последнее редактирование: Апрель 27, 2013, 07:15:05 pm от ilovb »

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #5 : Апрель 27, 2013, 08:53:00 pm »
Цитировать
Squirrel представляет собой язык с динамическим определением типов данных - тип переменной определяется значением, которое она хранит в данный момент времени и может меняться при присваивании нового значения.

Строгой типизации нет. Неужели сложно использовать 4 типа данных: ineger, float, boolean, string. Зато сколько ошибок можно исключить.
Подозреваю что там строгая типизация как раз есть, а вот статической нет.
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Squirrel
« Ответ #6 : Апрель 27, 2013, 11:11:03 pm »
Строгой типизации нет. Неужели сложно использовать 4 типа данных: ineger, float, boolean, string. Зато сколько ошибок можно исключить.

Сложно сделать простой и в то же время статически типизированный язык (например, сразу хочется дженериков, а они уже ни разу не простые). Оберон только подтверждает :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #7 : Апрель 27, 2013, 11:24:41 pm »
Строгой типизации нет. Неужели сложно использовать 4 типа данных: ineger, float, boolean, string. Зато сколько ошибок можно исключить.

Сложно сделать простой и в то же время статически типизированный язык (например, сразу хочется дженериков, а они уже ни разу не простые). Оберон только подтверждает :)
Поэтому поклонники динамической типизации и смотрят до сих пор на языки со статической типизацией как на говно - на них (со статической типизацией) получается либо тонна кода на ровном месте, либо приходится эмулировать динамическую типизацию (опять центнер кода, да еще с ошибками, ибо реализуется ручками на месте), либо имеем дикую аццко-сложную систему типов, которая во время до-олгой компиляции периодически материт программиста длиннющими запутанными сообщениями о ошибках.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Squirrel
« Ответ #8 : Апрель 27, 2013, 11:49:50 pm »
Надо разрабу логотип наш предложить  ;D

ps Вроде ниче так как альтернатива Lua

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #9 : Апрель 28, 2013, 07:31:45 am »
Ещё есть Ангел скрипт
http://ru.wikipedia.org/wiki/AngelScript

Здесь язык, полный по C++. Классы, 20 типов данных и т.д И конечно скобочки.

Используется в проекте FOnline. Столько лет пилили, добавили разные плюшки в движок, 3D текстуры. Но выбор ангел скрипта в качестве скриптов, думаю было ошибкой.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #10 : Апрель 28, 2013, 10:47:20 am »
Ещё есть Ангел скрипт
http://ru.wikipedia.org/wiki/AngelScript

Здесь язык, полный по C++. Классы, 20 типов данных и т.д И конечно скобочки.

Используется в проекте FOnline. Столько лет пилили, добавили разные плюшки в движок, 3D текстуры. Но выбор ангел скрипта в качестве скриптов, думаю было ошибкой.
Что значит полный по С++? Там нет и половины возможностей C++ :-)

Но если говорить именно о скриптинге, то лучше альтернативы пожалуй я не вижу. Так что если это было ошибкой, то что бы ошибкой не было бы?
Y = λf.(λx.f (x x)) (λx.f (x x))

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #11 : Апрель 28, 2013, 11:25:26 am »
Ещё есть Ангел скрипт
http://ru.wikipedia.org/wiki/AngelScript

Здесь язык, полный по C++. Классы, 20 типов данных и т.д И конечно скобочки.

Используется в проекте FOnline. Столько лет пилили, добавили разные плюшки в движок, 3D текстуры. Но выбор ангел скрипта в качестве скриптов, думаю было ошибкой.
Что значит полный по С++? Там нет и половины возможностей C++ :-)

Но если говорить именно о скриптинге, то лучше альтернативы пожалуй я не вижу. Так что если это было ошибкой, то что бы ошибкой не было бы?

Полный по С++, я имею ввиду синтаксис си, со всеми скобочкаси, записью классов и т.д

Сам проект претендует на замену старого движка f2, создание своих модов без ограничений. С этим он справляется, есть и онлайн и оффлайн версии. Но если уж делать, то делать упрощённо. То есть предоставить легкий скриптовый язык на базе оберуна, с ограниченным количеством переменных, и нормальной модульностью. Естественно написать свой скриптовый язык к движку. Пусть он будет маленький, но простой. Для скриптования игры возможности ангел скрипта излишни.

Всё это лечится транслятором.

Скриптовый язык нужно, делать как можно проще, что бы в нём разобрался любой человек, который о программировании даже не слышал. А не читать матан
http://www.13d-labs.com/angelscript_manual/main.html

Это моё личное мнение.

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #12 : Апрель 28, 2013, 11:33:19 am »
Я говорю не о самом ангел скрипте, а именно о применении его для конкретной игры.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #13 : Апрель 28, 2013, 11:43:31 am »
Ещё есть Ангел скрипт
http://ru.wikipedia.org/wiki/AngelScript

Здесь язык, полный по C++. Классы, 20 типов данных и т.д И конечно скобочки.

Используется в проекте FOnline. Столько лет пилили, добавили разные плюшки в движок, 3D текстуры. Но выбор ангел скрипта в качестве скриптов, думаю было ошибкой.
Что значит полный по С++? Там нет и половины возможностей C++ :-)

Но если говорить именно о скриптинге, то лучше альтернативы пожалуй я не вижу. Так что если это было ошибкой, то что бы ошибкой не было бы?

Полный по С++, я имею ввиду синтаксис си, со всеми скобочкаси, записью классов и т.д
Ну, для начала в Си нет классов :-)
Во-вторых синтаксис Angel Script'a весьма далек от синтаксиса C++. Он скорее ближе к синтаксису урезанной java. Ну, например там нет замечательного синтаксиса указателей на функции. Нет и ничего похожего на шаблонный синтаксис. Нет макросов и так далее. Это если только про синтаксис говорить. В плане семантики же Angel Script вообще что-то существенно иное относительно C++.


Сам проект претендует на замену старого движка f2, создание своих модов без ограничений. С этим он справляется, есть и онлайн и оффлайн версии. Но если уж делать, то делать упрощённо. То есть предоставить легкий скриптовый язык на базе оберуна, с ограниченным количеством переменных, и нормальной модульностью. Естественно написать свой скриптовый язык к движку. Пусть он будет маленький, но простой. Для скриптования игры возможности ангел скрипта излишни.
А что в Обероне проще чем в Angel Script'e? Чур синтаксис в пример не приводить.

В Обероне толпа неоднозначностей и недоопределенностей. Ну и известные проблемы с отсутствием конструкторов переменных.

Возможности Angel Script'a ровно такие, чтобы на нем можно было писать дополнительные модули логики приличного размера.

Скриптовый язык нужно, делать как можно проще, что бы в нём разобрался любой человек, который о программировании даже не слышал. А не читать матан
http://www.13d-labs.com/angelscript_manual/main.html
По ссылке матана не обнаружено. Обнаружено описание языка.

Любой человек, который не слышал о программировании, мод написать не сможет, увы. На любом ЯП. Такие товарищи максимум что смогут - поправить конфиг (одну константу заменить на другую), да и то не всегда (у меня есть опыт работы с такими пользователями игры). Ну а для конфигов есть специальные действительно предельно простые языки - INI, json, xml и так далее.
Y = λf.(λx.f (x x)) (λx.f (x x))

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #14 : Апрель 28, 2013, 11:58:47 am »
В общем всё правда. Уверен что сам движок писали на С++, так как разработчикам нравится С++, взяли за основу ангел скрипт. Проще и лучше(?) взять, уже написанное, чем писать своё.

Просто мне нравится синтаксис оберуна, поэтому ругаю всё остальное, что не похоже на него. :)
Но всё же, можно было сделать общий скриптовый язык проще. :)