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

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Lua
« : Ноябрь 06, 2012, 05:38:31 pm »
Все больше присматриваюсь к этому чуду, и все больше понимаю что это тот инструмент, который мне нужен. Дико жалею, что для плотного знакомства пока не хватает времени.

Сделал тут очередное исследовательское гугление:
Lua distributions (Lua + libraries for certain platforms)
Lua libraries or libraries with a Lua binding
Utilities for use with Lua: source processors, builders, debuggers, profilers, etc
and more...

wiki: Lua Directory (top level directory of all Lua content at this wiki)

Ленивым мастайщикам сюда... :P

Редактор/дежучер LuaEdit

LÖVE - движок для разработки 2D игр на Lua
Самое известное поделие на нем Mari0

ps Lua сегодня стал тем, чем мог бы стать Oberon. Легкий мощный прикладной язык, с хорошим окружением и документацией.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Lua
« Ответ #1 : Ноябрь 06, 2012, 06:10:07 pm »
ps Lua сегодня стал тем, чем мог бы стать Oberon. Легкий мощный прикладной язык, с хорошим окружением и документацией.

Прототипное ООП (как в жабаскрипте) очень настораживает. Настолько сильно настораживает, что хочется закопать не открывая :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #2 : Ноябрь 06, 2012, 06:15:33 pm »
Да ладно, я вон в одынэсах вообще без ООП  ;D

DIzer

  • Гость
Re: Lua
« Ответ #3 : Ноябрь 06, 2012, 06:25:50 pm »


Прототипное ООП (как в жабаскрипте) очень настораживает. Настолько сильно настораживает, что хочется закопать не открывая :)
Вы многого хотите от скриптового ЯП ( я еще могу понять дули в сторону екма скрипта - там есть фундаментальная необходимость доступа к сложным обьектам браузера )... здесь же OOP скорее левая фича... а для скриптования (с точки зрения пользователя) он гораздо более удобен чем тот же тикл. хотелось бы конечно иметь строгую типизацию (пусть даже выводимую)...

DIzer

  • Гость
Re: Lua
« Ответ #4 : Ноябрь 06, 2012, 06:28:36 pm »
да ... мне очень понравилось то, что массивы там индексируются с единицы

DIzer

  • Гость
Re: Lua
« Ответ #5 : Ноябрь 06, 2012, 06:39:39 pm »
Вы многого хотите от скриптового ЯП ( я еще могу понять дули в сторону екма скрипта - там есть фундаментальная необходимость доступа к сложным обьектам браузера )
что бы быть точнее - развитие технологий потребовало исполнения от екма скрипта того, на что он первоначально не был предназначен... (например гуй браузерный приложений... который без ооп  сделать эффективно затруднительно -30 % экономии в  обьеме кода штука весомая)

DIzer

  • Гость
Re: Lua
« Ответ #6 : Ноябрь 06, 2012, 06:42:17 pm »
Да ладно, я вон в одынэсах вообще без ООП  ;D
а нахрен по большому счету он сдался... если нужно получить доступ к внешним обьектам ... это делается через шарпейное апи...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Lua
« Ответ #7 : Ноябрь 06, 2012, 06:48:40 pm »
да ... мне очень понравилось то, что массивы там индексируются с единицы

Да, мы знаем, что у тебя пунктик на идексацию массивов ;)

P.S. Тогда еще один минус, за нечеловеческую индексацию массивов. Точно закопать :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #8 : Ноябрь 06, 2012, 06:49:30 pm »
ps Lua сегодня стал тем, чем мог бы стать Oberon. Легкий мощный прикладной язык, с хорошим окружением и документацией.

Прототипное ООП (как в жабаскрипте) очень настораживает. Настолько сильно настораживает, что хочется закопать не открывая :)

Нет там прототипного ООП, и вообще ООП нет. Там, я бы сказал, ТОП (таблично ориентированное программирование). Идеалогия проста как тапок - все есть таблица (кроме примитивных типов).

Желающие могут конечно изобразить на Луа подобие того подобия ООП что есть в С++/Java/Delphi/Oberon/С#. Но я в этом смысла не вижу.
Y = λf.(λx.f (x x)) (λx.f (x x))

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Lua
« Ответ #9 : Ноябрь 06, 2012, 06:53:39 pm »
Вы многого хотите от скриптового ЯП ( я еще могу понять дули в сторону екма скрипта - там есть фундаментальная необходимость доступа к сложным обьектам браузера )... здесь же OOP скорее левая фича... а для скриптования (с точки зрения пользователя) он гораздо более удобен чем тот же тикл. хотелось бы конечно иметь строгую типизацию (пусть даже выводимую)...

Для доступа к объектам ООП как раз не надо. Глубинного понимания от автора ЯП основ ООП не требуется (хотя вот в перле, например, даже такая простая вещь выглядит ужасно).
А вот когда самому надо создавать объекты... много объектов... тогда прототипы идут лесом.

P.S. Я уже говорил - в питоне сделали человеческое ООП (при всей скриптовости и динамичности ЯП).

DIzer

  • Гость
Re: Lua
« Ответ #10 : Ноябрь 06, 2012, 06:54:06 pm »


Нет там прототипного ООП, и вообще ООП нет. Там, я бы сказал, ТОП (таблично ориентированное программирование). Идеалогия проста как тапок - все есть таблица (кроме примитивных типов).

Желающие могут конечно изобразить на Луа подобие того подобия ООП что есть в С++/Java/Delphi/Oberon/С#. Но я в этом смысла не вижу.
1.Угу.. и это создает определенные неудобства при отображении в него внешних обьектов... но у меня первокурсник справился с этим самостоятельно...
2. Ну нет... говенисто же будет

DIzer

  • Гость
Re: Lua
« Ответ #11 : Ноябрь 06, 2012, 06:55:00 pm »
Вы многого хотите от скриптового ЯП ( я еще могу понять дули в сторону екма скрипта - там есть фундаментальная необходимость доступа к сложным обьектам браузера )... здесь же OOP скорее левая фича... а для скриптования (с точки зрения пользователя) он гораздо более удобен чем тот же тикл. хотелось бы конечно иметь строгую типизацию (пусть даже выводимую)...

Для доступа к объектам ООП как раз не надо. Глубинного понимания от автора ЯП основ ООП не требуется (хотя вот в перле, например, даже такая простая вещь выглядит ужасно).
А вот когда самому надо создавать объекты... много объектов... тогда прототипы идут лесом.


P.S. Я уже говорил - в питоне сделали человеческое ООП (при всей скриптовости и динамичности ЯП).
ну, ну -- я же уточнил позицию в  сообщении ниже..

DIzer

  • Гость
Re: Lua
« Ответ #12 : Ноябрь 06, 2012, 06:58:25 pm »
да ... мне очень понравилось то, что массивы там индексируются с единицы

Да, мы знаем, что у тебя пунктик на идексацию массивов ;)

P.S. Тогда еще один минус, за нечеловеческую индексацию массивов. Точно закопать :)
НДА ,  Губанов на вас не хватает ...ФОШИСТВУЮЩИЙ вы СИшлепок  ;D

DIzer

  • Гость
Re: Lua
« Ответ #13 : Ноябрь 06, 2012, 07:05:22 pm »

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #14 : Ноябрь 06, 2012, 07:06:00 pm »
Все больше присматриваюсь к этому чуду, и все больше понимаю что это тот инструмент, который мне нужен. Дико жалею, что для плотного знакомства пока не хватает времени.

...

ps Lua сегодня стал тем, чем мог бы стать Oberon. Легкий мощный прикладной язык, с хорошим окружением и документацией.
Я, и особенно моя сестра, сие чудо весьма неплохо изучили. Если говорить о грамматике, то несмотря на краткость записи в РБНФ (оно по метрикам того же Свердлова, в плане минималистичности, рвет Оберон как тузик грелку) язык достаточно заковыристый. Одни строковые многострочные литералы чего стоят (попробуйте ка написать лексер).

В плане же конечного программиста, Луа, не подходит для масштабных проектов в силу двух причин:
1) динамическая типизация (рефакторинг == Ад).
2) ограниченные выразительные возможности языка (все есть таблица - ничем не лучше, чем все есть Объект в классическом ООП), следовательно код получается либо многословным, либо не понятным, причем ошибки неверного использования абстракций которые наворочали через таблица, из за пункта (1) не выявляются до тех пор пока программу не запустишь.

Скажем у питона мерзкий пункт (1) остается, зато вот пункта (2) уже практически нет. А у Оберона наоборот - пункта (1) нет, а пункт (2) во всей красе.

Луа отлично подходит для написания мелких и очень мелких программок льдьми которым некогда тратить время на "серьезные" ЯП. Теми же геймдизайнерами например. Порог вхождения низок, и язык ориентирован на обработку табличных данных, которые типичны для игр (внимание, таблицы не подразумевают SQL где-то рядом! равно как и реляционку тоже не подразумевают).
Y = λf.(λx.f (x x)) (λx.f (x x))