LINUX.ORG.RU

Конференция Lua in Moscow 3 марта

 


2

3

Очередная ежегодная конференция Lua in Moscow пройдёт в Москве 3 марта 2019 г.

Цель конференции — собрать вместе Lua-сообщество, чтобы его представители могли встретиться лично и обсудить язык Lua, его использование и применения. Главным гостем и докладчиком будет Роберто Иерусалимский, создатель языка Lua и профессор PUC-Rio.

Регистрационного взноса нет, но участники должны зарегистрироваться заранее, поскольку количество мест ограничено.

Рабочим языком конференции является английский. Темы докладов:

  • Why (and why not) Lua — Roberto Ierusalimschy
  • Tarantool team’s experience with Lua developer tools — Yaroslav Dynnikov
  • Processing FEA data with Lua — Vadim Zborovskii
  • Shaders and Lua — Sergey Lerg
  • Intro to dynasm from luajit — Michael Filonenko
  • Challenges of ‘pairs’ and ‘next’ JIT compilation — Maxim Bolshov
  • Resty-threadpool: Reinventing Apache in nginx — Julien Desgats
  • Tarantool usecases for rich applications — Mons Anderson
  • Making a simple platformer with Defold — Sergey Lerg

В перерывах между докладами участникам будет бесплатно предложен кофе. В обеденный перерыв будет открыта столовая, в которой можно будет пообедать за отдельную плату.

Конференция будет проводиться в офисе Mail.Ru Group по адресу: Москва, Ленинградский проспект, дом 39 корпус 79.

>>> Подробности

★★★★

Проверено: jollheef ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Ceiling_QB

Вопрос нужно переформулировать: в каких случаях удобна нумерация с 1? Я знаю, что далеким от программирования инженерам и ученым так удобнее. Но для кодера это адок, потому что весь мейнстрим нумерует с 0. Так исторически сложилось.

bread
()
Ответ на: комментарий от bread

Вопрос нужно переформулировать: в каких случаях удобна нумерация с 1?

Легче обратиться к последнему элементу. В луашном синтаксисе цикла for (for i = a, b do ... end) логична нумерация с 1. В остальном не вижу разницы. Язык ориентирован в том числе на «далёких от программирования» людей, которым обычно так понятнее.

для кодера это адок, потому что весь мейнстрим нумерует с 0

Использую и Lua и мейнстрим, вроде не адок. Разве что есть повод задуматься, с чего начинать нумерацию, когда биндишь какие-то свои массивы в Lua.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от bread

Такой продуманный, что в дистрах 4 несовместимых версии лежат.

Это потому что сишный API меняется, в Lua-коде можно без особых проблем поддерживать несколько версий

annulen ★★★★★
()
Ответ на: комментарий от Ceiling_QB

Кто-то и выделение блоков фигурными скобками считает обязательной фичей, мейнстрим же епт

annulen ★★★★★
()

Забавные хейтеры. Ничего не зная о языке за пределами «Learn x for y minutes», набегают и пытаются умничать, выставляя себя ущербными клоунами.

anonymous
()
Ответ на: комментарий от anonymous

Я кстати как-то лёрн Луа за 15 минут. И вполне себе успешно. Не уверен, что какой-то другой ему заменитель может этим похвастать. В конце концов нафиг нужен скриптовой язык со сложностью выше чем у Lua (Квака не в счёт)?

kostyarin_ ★★
()

У lua есть серьёзные недостатки, делающие более сложным его использование как самостоятельного языка по сравнению, например, с Python. И это не нумерация массивов. В паскалеподобных языках и кажется даже в фортране можно объявить массив в любом диапазоне, хоть от -100 до 100. Нумерация в си только с 0 показывает ограниченность языка си, исторически представляющий из себя расширение макроассемблера и ограниченность не силайк хейтеров, которые путают ограничения языка си с его достоинствами. To be continued.

MyLord
()
Ответ на: комментарий от MyLord

Итак, какие проблемы у lua, кроме синтаксиса? Во первых, глобальные переменные по умолчанию. Которые со времён фортрана считаются плохим стилем. Конечно, можно и нужно все переменные явно объявлять local. Но остаются проблемы с опечатками и внешними модулями. Объявление глобальной переменной неотличимо от оператора присваивания. Вероятно, было бы лучше всегда явно объявлять и глобальные и локальные переменные.

MyLord
()
Ответ на: комментарий от be_nt_all

Пойду чтоле попинаю dyon. Белку я уже пинал, (она норм, если не считать того, что репл гавно и нету принципа everything is expression). Ангелов трогать не буду, зачем мне еще один приплюснутый.

q0tw4 ★★★★
()
Ответ на: комментарий от MyLord

Вероятно, было бы лучше всегда явно объявлять и глобальные и локальные переменные.

Теряешь возможность использовать скрипты Lua как конфиги.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

Ну, это сильно ограничивает язык. По сути, он нужен настолько, насколько нужен основной. А его нет.

С++ тоже не нужен. Это все старые ненужные языки.

AVL2 ★★★★★
()
Ответ на: комментарий от i-rinat

Всё что угодно можно использовать как конфиг. Некоторые даже хаскель так узают. Вот только с С++ такое не делают, но то уже потому что слишком низкоуровневый он, неудобно.

q0tw4 ★★★★
()
Ответ на: комментарий от MyLord

Вероятно, было бы лучше всегда явно объявлять и глобальные и локальные переменные.

Хоть бы по рукам били за необъяевленные переменные, и то было бы дело. Но в этом недоязычке даже таких элементарных удобств нет.

anonymous
()
Ответ на: комментарий от MyLord

Нумерация с 1 добавляет пачку багов на ровном месте. Просто потому что кодеры не привыкли к этому. На луа пишут не учоные-моченые, а в основном обычные сишники. Какой дебил придумал такую подлянку, я поражаюсь.

anonymous
()
Ответ на: комментарий от anonymous

Забавные хейтеры. Ничего не зная о языке за пределами «Learn x for y minutes», набегают и пытаются умничать

Чувак, достаточно узнать об упомянутых выше двух особенностях, чтобы держаться от этого недоязычка как можно дальше. Для это хватит и минуты.

anonymous
()
Ответ на: комментарий от anonymous

Как аноним говорил, забавные хейтеры. В Lua есть пара других хитрых сюрпризов, на которых действительно часто спотыкаются. Это (1) число элементов в массиве (в «массиве») и (2) что сводится к false, а что нет. На этом реально спотыкаются. А вот с нумерацией массивов и локальными/глобальными переменными проблем я у вынужденных на Lua скриптовать как-то особо и не замечал.

i-rinat ★★★★★
()
Ответ на: комментарий от q0tw4

Си - эталон дизайна языка. Да он неудачный

Скажи проще: си — эталон неудачного дизайна языка. Т.е. при создании нового языка нужно смотреть на синтаксис си и делать, в большинстве случаев, строго по-другому.

anonymous
()
Ответ на: комментарий от i-rinat

А вот с нумерацией массивов и локальными/глобальными переменными проблем я у вынужденных на Lua скриптовать как-то особо и не замечал.

Ладно, к нумерации можно приноровиться (хотя зачем), но про локалы не ври уж. Это грандиозный риф, на который напарываются даже самые опытные и внимательные. Можно конечно не заметить этот баг, и всё будет даже работать если повезет.

anonymous
()
Ответ на: комментарий от pawnhearts

Хожу на такие мероприятия есть и погреться.

Ещё можно в туалете одёжку какую-нибудь постирать и самому чуток помыться. Или ты уже забил на такие мелочи жизни?

anonymous
()
Ответ на: комментарий от anonymous

смотреть на синтаксис си и делать, в большинстве случаев, строго по-другому.

Ну зачем же строго. Вон живут же себе джавы, шарпы и прочие подобные и в ус не дуют. Я говорил о концепциях типа class { методы с неявным this и филды }, которые сами по себе вполне нормальные штуки. Хотя конечно не стоит считать С++ основоположником ООП, просто он - самая популярная основа для копирования. Так уж повелось...

q0tw4 ★★★★
()
Ответ на: комментарий от q0tw4

С++

А так ты не про C, а про C++.

Да, неправильно тебя понял. Я думал ты про си и про его синтаксис.

Впрочем, моя мысль остаётся прежней: сишный синтаксис — одна из худших вещей, случавшихся с IT-индустрией за всё время её существования. А то, что этот синтаксис бездумно потащили в жабу, перл, и далее повсюду, так это обычный синдром утёнка.

anonymous
()
Ответ на: комментарий от anonymous

Нумерация с 1 добавляет пачку багов на ровном месте.
На луа пишут не учоные-моченые, а в основном обычные сишники.

А какая тебе ещё «учоность» нужна, чтобы просто тупо прочитать мануал по языку, перед тем, как пользоваться им. Или в наше время уже обычную «функциональную грамотность» называют «учоностью»? «Обычный сишник» — это уже что-то вроде «обычный дворник»?

anonymous
()
Ответ на: комментарий от MyLord

Далее, таблицы lua, которые неявно внутри могут быть как массивами, так и хеш-таблицами. В результате никогда нельзя быть уверенным, что именно вам передали в виде параметра. Плюс возможность создавать разреженные массивы с пропусками в нумерации с которыми встроенные итераторы работают не корректно.

MyLord
()
Ответ на: комментарий от anonymous

Битьё по рукам в рантайме:

setmetatable(_G, {
  __newindex = function(self, k)
    error("Attempt to create global variable " .. k)
  end
})
Битьё по рукам во время написания кода: https://github.com/mpeterv/luacheck.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от MyLord

В виде параметра тебе передают таблицу в любом случае. Если ты используешь её как массив — внутри будет массив, снаружи ничего не меняется.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от anonymous

Это не более чем особенность, которая где-то позволяет накосячить неопытным луашникам, где-то же добавляет удобства. При использовании Luacheck даже нуб не накосячит.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от MyLord

Далее. Стандартная библиотека очень куцая. Это приводит большой фрагментации. Есть с десяток модулей, реализующих ооп, многозадачность, RPC, не совместимых друг с другом. И несколько сборок lua 'с батарейками', разной степени заброшенности - lua for windows, luadist, lua power. Я в последнее время пользуюсь Scilua/ulua.

MyLord
()
Ответ на: комментарий от MyLord

Стандартная библиотека очень куцая.

Правильно, потому что это компактный встраиваемый язык без кучи зависимостей. Если нужно что-то вроде Python — ну наверное есть смысл взять Python?

Why (and why not) Lua

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от MyLord

Я знаю про метатаблицы, читал programming in lua и всю wiki.luausers.org. Сам пользуюсь lua c версии 4.0. Как замена awk скриптам в сотню строк сгодится. Для чего-то большего, хотя бы уровня питоновской стандартной библиотеки не вырастет никогда.

MyLord
()
Ответ на: комментарий от MyLord

Для чего-то большего, хотя бы уровня питоновской стандартной библиотеки не вырастет никогда.

Такого плана никогда и не было.

Как замена awk скриптам в сотню строк сгодится.

Как язык для высокоуровневой логики в несколько сотен тысяч строк — тоже сгодится, только не надо выбирать Lua для того, чтобы написать всё большое приложение целиком. Это неправильное использование, это поедание кактуса.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от MyLord

Да, единственное применение, где луа вне конкуренции - быстро встроить в своё приложение, сделать интерфейс к внутренним функциям и дергать их из скрипта. Проблема в том, что если это не опенсорс, то это вендор лок. Пример - qlua в брокерском терминале quik. В 2015 было много энтузиастов, пытавшихся торговых роботов на нем писать. Через год-два профильные форумы заглохли. Основная причина - разработчики кроме стандартной библиотеки ничего не поддерживают.

MyLord
()
Ответ на: комментарий от MyLord

Да, ещё одна багофича. При обращении к несуществующей переменной/ полю таблицы возвращается nil. Поэтому неразличимы ситуации возврата nil из-за опечатки в имени переменной и действительном её значении nil. В своём коде можно придерживаться соглашения - возврат или присваивание nil всегда считать ошибкой. Или делать как в Эрланге - возвращать из функции пару значений- результат и сообщение об ошибке, одно из которых должно быть не nil.

MyLord
()
Ответ на: комментарий от MyLord

быстро встроить в своё приложение, сделать интерфейс к внутренним функциям и дергать их из скрипта.

Ну в наше время наплодилось немало встраиваемых языков. Другое дело, что большинство были вдохновлены успехом луа, но реально луа вне конкуренции только в играх аля ВОВ, в которых разрабы просто не дают выбора и больше нигде.

q0tw4 ★★★★
()
Ответ на: комментарий от Ceiling_QB

В случае, если вы не разработчик приложения, единственный способ - писать всё на lua. В общем, можно на луа писать, если от этого кода не зависит здоровье и финансы.

MyLord
()
Ответ на: комментарий от q0tw4

Ну во многих играх встроенная логика на lua. В общем embedded scripting для девелопера, и тех кто может дать ему волшебного пенделя.

MyLord
()
Ответ на: комментарий от MyLord

От енжина зависит. Обычно скриптование гвоздями прибито к енжину, а писать свой редко кому надо.

q0tw4 ★★★★
()
Ответ на: комментарий от anonymous

Это грандиозный риф, на который напарываются даже самые опытные и внимательные.

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

Возможно, у меня кривой опыт применения Lua. Я всё оборачивал в песочницы, и там нельзя было создать действительно глобальную переменную. Можно поломать свой скрипт, но всем остальным скриптам плевать.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Простейший пример - когда вы используете какой-то рецепт с wiki lua-users, например, strict.lua, которая выдает ошибку при обращении к неинициализированной глобальной переменной и берете с гитхаба библиотеку с инициализацией глобальной переменной в стиле x=x or 'default value'. Ещё веселее когда разные модули переопределяют метатаблицу для _G. Или требуют разные версии модуля типа socket, в которых поменялся порядок аргументов.

MyLord
()
Ответ на: комментарий от MyLord

Зачем использовать Lua как язык общего назначения? Это же больно.

Почему проблемы при использовании Lua как языка общего назначения как-то влияют на использование его как встраиваемого языка?

i-rinat ★★★★★
()
Ответ на: комментарий от MyLord

Это скорее всего плохие библиотеки, которые писались сто лет назад до ныне устоявшейся практики с модулями, и их не стоит использовать даже без strict.

Ceiling_QB ★★★★
() автор топика
Ответ на: комментарий от i-rinat

Язык-то везде один и тот же. Я бы разделил использование интерпретатора lua и lua, встроенный в приложения. Достаточно много проектов со встроенной lua, nginx+openresty, 2d lo:ve, awesome wm, плагины к far manager, pl/sql developer, да тот же quik. Со временем обрастаешь скриптами и библиотеками, которые можно где-то ещё применить. Пишу скорее по привычке, изначально впечатлила скорость luajit, потом было некоторое разочарование из-за отсутствия библиотек. Но сейчас с ними дела обстоят гораздо лучше чем лет 15 назад. Использую для мелкой автоматизации на работе и дома. Python и lua примерно поровну.

MyLord
()
Ответ на: комментарий от MyLord

Использую для мелкой автоматизации на работе и дома. Python и lua примерно поровну.

О, интересно было бы услышать плюсы (если есть) использования lua для мелкой автоматизации по сравнению с python'ом. Просто любопытно. За пайтон-то все топят, а вот луа мало кто для системного скриптинга использует.

anonymous
()
Ответ на: комментарий от anonymous

На луа пишут не учоные-моченые, а в основном обычные сишники.

Не-а. Геймдизы — не сишники. Нефтянники, для которых изначально язык писали — не сишники. Авторы wiki-шаблонов — тоже в основном не сишники. Ну и для упомянуых кадидатов наук наверняка всяких штук, со встроенным lua — хватает. Для true-Сишников — как бы механизм двоичных плагинов в приложении должен оставляться.

be_nt_all ★★
()
Последнее исправление: be_nt_all (всего исправлений: 1)
Ответ на: комментарий от anonymous

Маленький рантайм, быстрый запуск. Можно завернуть скрипт в exe-шник и запускать как утилиту с командной строки. Минимально необходимый набор библиотек на текущий момент достаточен, даже можно повыбирать из десятка вариантов. Регекспы есть луашный, peg, перло и питоно совместимые, аналогично с модулями для работы со строками, файлами, сетью, gui. Питон надо инсталлировать, луашные скрипты с интерпретатором проще переслать zip файлом. Я бы не сказал что луа прямо уж сильно лучше. Она меньше, быстрее, проще. Время написания простых скриптов примерно одинаковое. Но аналогов numpy, pandas в lua я не знаю.

MyLord
()
Ответ на: комментарий от i-rinat

что сводится к false, а что нет

Это да, вот на этом настоящие сишники (особенно старой школы) должны жутким матом ругаться. Но молчат. Похоже форумные lua-хейтеры ничего сложнее hello-world.lua не писали (хотя казалось бы, причём тут массивы), а то и того не писали, просто увидели синтаксис и семантику, частично навеянные паскалем (точнее модулой/обероном) и привычно воспроизводят аргументы древнего, поросшего мхом, флейма C versus Pascal. Ну или это ненастоящие сишники.

be_nt_all ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.