The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В Wikipedia добавлена поддержка разработки шаблонов на языке Lua

18.03.2013 23:46

Фонд Wikimedia сообщил об активации в англоязычном сегменте Wikipedia новой системы разработки шаблонов, базирующейся на использовании языка Lua. Использование Lua позволит решить проблемы с излишней усложнённостью и низкой эффективностью действовавших ранее механизмов создания шаблонов.

Шаблоны позволяют пользователям MediaWiki автоматизировать создание типового контента, включаемого в другие страницы, и создавать инструменты для манипуляции данными, превращая wikitext в некое подобие языка программирования. До сих пор шаблоны для MediaWiki создавались с использованием дополнительной wiki-разметки и расширения ParserFunctions, что создавало существенные ограничения на функциональность и приводило к затратам значительных ресурсов при выполнении.

Такие особенности языка Lua, как изначальная ориентация на эффективное встраивание в сторонние приложения, эффективная работа с памятью, высокая производительность (применяется JIT-компиляция) и компактность, позволили существенно увеличить производительность системы шаблонов и снизить нагрузку на CPU. Поддержка шаблонов на языке Lua реализована в виде дополнения Scribunto. Код на языке Lua сохраняется на специальных страницах и определяется в виде модулей, которые затем могут быть вызваны через конструкцию {{#invoke:modulename|functionname}}".

  1. Главная ссылка к новости (https://blog.wikimedia.org/201...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/36428-lua
Ключевые слова: lua, wikipedia, mediawiki
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Serge (??), 00:44, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Хорошему языку хорошее применение. Молодцы.
     
     
  • 2.2, Аноним (-), 02:19, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Парадокс. Хороший язык без какой либо вменяемой стандартной библиотеки.
     
     
  • 3.3, Аноним (-), 03:44, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там есть стандартная библиотека, и весьма вменяемая.
     
  • 2.16, Аноним (-), 10:57, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    кто-то считает ЭТО хорошим? языком?
    lua -e "local a = 0; if a then print(42) end"

    да он упоротее даже js

     
     
  • 3.28, Michael Shigorin (ok), 13:20, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > lua -e "local a = 0; if a then print(42) end"

    Совершерно не зная lua, проверил для 0, 1 и nil.  Может, рассудите тогда C и sh? :)

     
  • 3.30, arisu (ok), 17:08, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > кто-то считает ЭТО хорошим? языком?

    да, считает. а вот некий конкретный анонимус — увы, но дурак.

     
  • 3.58, Аноним (-), 23:23, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > да он упоротее даже js

    А он позволяет юзать переменные которые не были задекларированы ранее? За одно это авторов JS следовало бы придушить. Потому что через полчаса работы программа где-то красочно осыпается. А то что это потому что в какой-то переменной было не то что задумано - так поди там разберись через полчаса работы, угу...

     
     
  • 4.63, arisu (ok), 09:22, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> да он упоротее даже js
    > А он позволяет юзать переменные которые не были задекларированы ранее?

    по умолчанию — позволено. впрочем, в стандартной поставке идёт модуль strict, который при попытке использовать необъявленную переменную орёт матом и всё роняет.

     
  • 4.64, arisu (ok), 09:23, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    p.s. с другой стороны, сделать простой инспектор кода vm — для этих же целей — пол-часа работы.
     

  • 1.4, бедный буратино (ok), 06:55, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они услышали мои молитвы.
     
     
  • 2.18, Аноним (-), 11:51, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Они услышали мои молитвы.

    Теперь там будет пых и луа. Надо еще JS погуще сдобрить и перл привинтить. Для особо тяжелых шаблонов надо сделать возмодность звать си++. А потом со всей этой фигней мы попробуем взлететь...

     
     
  • 3.21, бедный буратино (ok), 12:02, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Теперь там будет пых и луа. Надо еще JS погуще сдобрить и перл привинтить.

    И по сравнению с текущими шаблонами это будет шаг к упрощению.

     
     
  • 4.31, Аноним (-), 17:14, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > И по сравнению с текущими шаблонами это будет шаг к упрощению.

    Ну вообще да, система шаблонов там тот еще mindfuck.

     

  • 1.5, Аноним (-), 07:55, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем это надо
     
  • 1.6, noize (ok), 09:22, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Lua - интересный язык, жаль, что книг на русском языке по нему нету ((
     
     
  • 2.10, Спокойный аноним (?), 09:44, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Lua - интересный язык, жаль, что книг на русском языке по нему
    > нету ((

    lua.ru/doc

     
  • 2.15, kurokaze (ok), 10:55, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Lua - интересный язык, жаль, что книг на русском языке по нему нету ((

    Как раз не жаль - дополнительный барьер от быдлокодеров

     
  • 2.19, Аноним (-), 11:52, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Lua - интересный язык, жаль, что книг на русском языке

    Если вы не знаете английский, нормально программировать вы не научитесь вообще никогда. Примите это как данность. Исключения конечно бывают, но они редки как пингвины в пустыне Сахара.

     
     
  • 3.25, бедный буратино (ok), 12:20, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Lua - интересный язык, жаль, что книг на русском языке
    > Если вы не знаете английский, нормально программировать вы не научитесь вообще никогда.
    > Примите это как данность. Исключения конечно бывают, но они редки как
    > пингвины в пустыне Сахара.

    Для игрушек на love2d и instead или кампаний для wesnoth самое главное - это не "правильно", самое главное - это чтобы было интересно. Не думаю, что умение программировать и умение творчески делать интересные истории хоть как-то связаны, скорее даже наоборот.

     
     
  • 4.40, Аноним (-), 18:43, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поиметь систему пользователя который скачал с сервака аддон - это достаточно инт... большой текст свёрнут, показать
     
  • 4.51, Аноним (-), 20:05, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для игрушек на love2d и instead или кампаний для wesnoth самое главное
    > - это не "правильно", самое главное - это чтобы было интересно.
    > Не думаю, что умение программировать и умение творчески делать интересные истории
    > хоть как-то связаны, скорее даже наоборот.

    Дададад, так наверное в microsoft пишут. Чтобы интересно было. Такие "интересно" написанные игры потом имеют ту же ценность что и поток из /dev/random - на новой версии интерпретатора их не запустишь, а старая уже не собирается. Всё, в помойку, как обыкновенную проприетарщину. А могли бы быть вечными произведениями искусства.

     

  • 1.7, Аноним (-), 09:23, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В то время, когда даже создатель Awesome признал, что лучше бы он писал проект на питоне чем связывался Lua, некоторые слоупоки и некроманты только начинают его для себя открывать.
     
     
  • 2.8, Аноним (-), 09:30, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    А вот на это ссыль, пожалуйста. Интересно, какие преимущества в пайтоне по сравнению с lua нашёл разработчик Awesome.
     
     
  • 3.9, BratSinot (ok), 09:43, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Тем-что Lua это <censored>. Лично пытался интегрировать его с своей прогой, так и не получилось ничего вразумительного сделать. Вот с Pearl'ом проблем не возникло, ни из C->Perl, ни Perl->C
     
     
  • 4.13, Аноним (-), 10:30, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты разработчик awesome или просто решил свои пять копеек вставить?
     
  • 4.20, Аноним (-), 11:54, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Тем-что Lua это <censored>. Лично пытался интегрировать его с своей прогой,

    А вот авторы Battle for Wesnoth заменили бидон на Lua и довольны. Тем паче что бидон в принципе нельзя подпускать к запуску абы каких скриптов сгруженных с сервера: автор аддона может поиметь пользователю всю систему. С другой стороны, Lua работает в песочнице и нагадить не может. Что делает его не самым плохим выбором для загружаемых скриптов которым нет полного доверия. Не зря он все-таки Limited User Access. Для генеримого абы кем контента заливаемого фиг знает откуда - это Limited очень кстати.

     
     
  • 5.22, бедный буратино (ok), 12:03, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Тем-что Lua это <censored>. Лично пытался интегрировать его с своей прогой,
    > А вот авторы Battle for Wesnoth заменили бидон на Lua и довольны.

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

     
  • 5.33, arisu (ok), 17:26, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не зря он все-таки Limited User Access.

    с этим — в винду. а Lua — это Lua. не акроним. слово. Луна это. сюрпрайз?

     
     
  • 6.42, Аноним (-), 18:50, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > с этим — в винду.

    Тем не менее, в BfW его выбрали именно по этому критерию. Что можно очень контролируемо давать доступ этому скриптобарахлу дергать сильно некоторые севые функций игры, доступ к параметрам и прочая, но не какой либо доступ в всю остальную систему. С питоном это не вышло и были лазейки. Весьма критичные, т.к. на сервак аддонов кто угодно может заливать аддоны и как-то совсем не айс если аддон хакнет юзеру систему.

     
     
  • 7.44, arisu (ok), 18:55, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> с этим — в винду.
    > Тем не менее, в BfW его выбрали именно по этому критерию.

    да пусть себе. это не повод коверкать название.

     
  • 4.32, arisu (ok), 17:26, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Лично пытался интегрировать его с своей прогой, так
    > и не получилось ничего вразумительного сделать.

    так это не Lua виновата, это у тебя руки не туда примонтированы.

     
  • 3.29, anonymous (??), 15:51, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    http://julien.danjou.info/blog/2011/why-not-lua

    Очень хорошая статья, в которой он, в частности, сетует, что при написании Awesome, подпирая косяки Lua своими костылями он в итоге написал свою неспецифицированную, глючную и медленную реализацию Лиспа^W Питона.

     
     
  • 4.34, arisu (ok), 17:28, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > http://julien.danjou.info/blog/2011/why-not-lua

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

     
  • 4.43, Аноним (-), 18:53, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > http://julien.danjou.info/blog/2011/why-not-lua

    Какой-то высосанный из пальца ranting хз о чем.

     
     
  • 5.46, arisu (ok), 18:58, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> http://julien.danjou.info/blog/2011/why-not-lua
    > Какой-то высосанный из пальца ranting хз о чем.

    о том, что аффтар cannot into stacks. удивляюсь, как он на си пишет: там же можно указателем промазать!

    ну, оно и не удивительно, кстати, что этот авесоме у меня давно отказался собираться. к лучшему.

     
     
  • 6.57, Аноним (-), 23:17, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну там есть более-менее сносная предъява насчет того что валгриндом такая утечка не обнаружится. Надуть валгринд, чтобы он не заметил этого - это еще суметь надо. С другой стороны, если програмер начнет безбашенно шарашить себе пулями в пятки - на сях простора по прострелу пяток еще больше :). Хотя именно валгринд обдурить - не очень просто, я бы сказал.
     
     
  • 7.59, arisu (ok), 09:16, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну там есть более-менее сносная предъява насчет того что валгриндом такая утечка
    > не обнаружится.

    угу. а ещё валгринд кофе не варит, зараза.

     
  • 4.65, eoranged (?), 17:30, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Человек расписал почему конкретный язык не подходит для его конкретного проекта и признался, что он — дурак и выбрал неправильный язык под свои задачи. А вы тут из пустого места срачик разводите.
     
  • 2.11, бедный буратино (ok), 09:45, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Надо будет - появится какой-нибудь CoffeeLua :)
     

  • 1.12, Спокойный аноним (?), 09:48, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Обладая элементарным знанием о том, что:

    >> Lua не стремится сохранять обратную совместимость: например, версия 5.1 не была совместима с 5.0.

    вся эта затея будет выпилена через 3-5 года.


     
     
  • 2.14, VoDA (ok), 10:48, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Обладая элементарным знанием о том, что:
    >>> Lua не стремится сохранять обратную совместимость: например, версия 5.1 не была совместима с 5.0.
    > вся эта затея будет выпилена через 3-5 года.

    Либо запилят свой Lua с обратной совместимостью )))


     
     
  • 3.17, бедный буратино (ok), 11:00, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>>> Lua не стремится сохранять обратную совместимость: например, версия 5.1 не была совместима с 5.0.
    >> вся эта затея будет выпилена через 3-5 года.
    > Либо запилят свой Lua с обратной совместимостью )))

    Обычно в репах мирно живут и 5.0, и 5.1, и 5.2. Причём, написанное для 5.2 обычно работает и в 5.2 и в 5.1.

     
     
  • 4.45, Аноним (-), 18:57, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > написанное для 5.2 обычно работает и в 5.2 и в 5.1.

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

     
     
  • 5.48, arisu (ok), 19:01, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не скажу за Lua

    а я скажу. пятёрка весьма неплохо совместима, если в скриптах не использовали deprecated features (а именно их и выкидывают постепенно). а мажорную версию поднимают при кардинальных изменениях как в языке, так и в API (что случалось нечасто и было весьма обосновано). Lua 6 на горизонте пока не видать.

     

  • 1.23, YetAnotherOnanym (ok), 12:14, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Имел в своё время геморрой с привязкой
     
  • 1.24, YetAnotherOnanym (ok), 12:16, 19/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    чорт, всегда вместе с "й" на "tab" нажимаю
    ... с привязкой Lua к Verlihub, вынес убеждение, что для мелких поделок годится, но не более.
     
     
  • 2.35, arisu (ok), 17:29, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > для мелких поделок годится, но не более.

    руки-крюки ещё и не в таком могут убедить, да.

     
  • 2.47, Аноним (-), 18:59, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > ... с привязкой Lua к Verlihub, вынес убеждение, что для мелких поделок годится, но не более.

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

     
     
  • 3.49, arisu (ok), 19:02, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    кагбэ Lua и так офигенно быстрая. а если ещё LuaJIT затащить, то совсем офигенно быстрая. при этом мелкая и простая. из-за чего её игроделы и выбирают.
     
     
  • 4.55, Аноним (-), 23:04, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > кагбэ Lua и так офигенно быстрая.

    Быстро относительно чего? Если какого-нибудь бидона - ну да, только негуманно это - слоупочную змею пинать.

    > а если ещё LuaJIT затащить, то совсем офигенно быстрая. при этом мелкая и простая.
    > из-за чего её игроделы и выбирают.

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

     
     
  • 5.60, arisu (ok), 09:17, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> кагбэ Lua и так офигенно быстрая.
    > Быстро относительно чего?

    других скриптовых языков.

    >> а если ещё LuaJIT затащить, то совсем офигенно быстрая. при этом мелкая и простая.
    >> из-за чего её игроделы и выбирают.
    > Тем не менее, реально требовательные к скорости куски, т.е. весь движок —
    > они обычно на плюсах пишут.

    я тебе секретно скажу, что AI тоже очень требователен к скорости. ан вот скриптуют — только пыль летит.

     
  • 3.53, Green Dog (?), 21:41, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    а Lua изначально и разрабатывалась как встраиваемый в приложения язык. "Вот вам полено, какого хотите, такого буратино из него и вырезайте." (Разработчики не предпологали же, что его будут использовать как полноценный ЯП.)
    Ну и плюс: лёгкость в изучении.
     
     
  • 4.61, arisu (ok), 09:19, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > не предпологали же, что его будут использовать как полноценный ЯП

    как раз именно это — предполагали. а вот на то, чтобы использовать Lua как standalone — не затачивали.

     
  • 3.54, YetAnotherOnanym (ok), 22:57, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Его типовое применение - скрипты в игрушках всяких

    не только, но, ЧСХ, самостоятельных программ на нём, вобщем-то, нет.

     
     
  • 4.56, Аноним (-), 23:08, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > ЧСХ, самостоятельных программ на нём, вобщем-то, нет.

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

     
  • 4.62, arisu (ok), 09:19, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Его типовое применение — скрипты в игрушках всяких
    > не только, но, ЧСХ, самостоятельных программ на нём, вобщем-то, нет.

    и не надо. у Lua есть конкретное предназначение — быть встраиваемой. она с этим отлично справляется.

     
  • 4.66, eoranged (?), 17:34, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > не только, но, ЧСХ, самостоятельных программ на нём, вобщем-то, нет.

    Prosody — отличный пример.

    А вообще, на чистом Lua программы с нуля никто особо и не пишет, поскольку слишком велик соблазн интегрироваться с чем-то готовым сишным, ибо быстро и удобно.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру