На встрече (http://www.mediawiki.org/wiki/Lua_scripting/Meeting_2012-01-25) разработчиков wiki-движка MediaWiki, используемого для обеспечения работы Wikipedia, принято решение (http://www.gossamer-threads.com/lists/wiki/wikitech/269254) по задействованию языка Lua (http://lua.org/) для разработки шаблонов (http://ru.wikipedia.org/wiki/%D0%92%D0%B.... Используемая в настоящее время система шаблонов не устраивает разработчиков из-за излишней усложнённости и низкой эффективности. Интеграция Lua в MediaWiki начнётся не раньше мая, после выхода релиза MediaWiki 1.19 и миграции проекта на систему управления исходными текстами Git.
Шаблоны позволяют пользователям MediaWiki автоматизировать создание типового контента, включаемого в другие страницы, и создавать инструменты для манипуляции данными, превращая wikitext в некое подобие языка программировани...URL: http://developers.slashdot.org/story/12/02/01/1429229/wikipe...
Новость: http://www.opennet.me/opennews/art.shtml?num=32964
> Используемая в настоящее время система шаблонов не устраивает разработчиков из-за излишней усложнённости и низкой эффективности.Обалдеть! Разметка - усложнённо и неэффективно, а jit-компилятор - самое то. Я, конечно, люблю Луа и пишу на нём, но, по-моему, его уже пихают куда не поподя...
> Обалдеть! Разметка - усложнённо и неэффективно, а jit-компилятор - самое то.Уж всяко лучше, чем используемый сейчас парсер, написанный на PHP и тормозящий так, что от шаблонов приходится отказываться.
> Уж всяко лучше, чем используемый сейчас парсер, написанный на PHPДа круто. Вся вики на пхп а для шаблонов нужно юзать ЛУА. 5+
Вообще как я понял тама сложность не в тормознутости пхп или еще чего а в самом синтаксисие
шаблонов. С первого вида шаблон напоминает БРАИН_ФАК какой то :(P.S. После очередного добавления туды еще одного языка для чего либо, может осилят и перепишут ВСЕ хотя бы на питон.
> осилят и перепишут ВСЕ хотя бы на питон.А это вообще ультрамегатормоз да еще с ушибленным на голову синтаксисом.
Синтаксисы Python и Lua очень похожи, так что аргумент как минимум странен
> Синтаксисы Python и Lua очень похожи, так что аргумент как минимум страненСинтаксисы Python и Lua совсем не похожи, так что аргумент как минимум странен
В PHP есть встроенный парсер темплейтов. Достаточно эффективный, написанный на С и с халявным кешированием (если установлен APC). Это сам PHP. Я не понимаю, зачем люди пишут на PHP какие-то самопальные языки для темплейтов и глючные парсеры.
> В PHP есть встроенный парсер темплейтов. Достаточно эффективный, написанный на С и
> с халявным кешированием (если установлен APC). Это сам PHP. Я не
> понимаю, зачем люди пишут на PHP какие-то самопальные языки для темплейтов
> и глючные парсеры.Перечитайте новость темплеты в понимании mediawiki мало коррелируют с темплетами для web-приложений.
Хм, по-моему это уже оверкилл - написание энкицлопедии это ... программирование?!?
Веб-программирование, не?
> Хм, по-моему это уже оверкилл - написание энкицлопедии это ... программирование?!?Да. И использование любых языков разметки, включая простейшие bb-коды, тоже можно назвать программированием.
> включая простейшие bb-коды, тоже можно назвать программированием.Нельзя: bb-коды не являются полным по Тюрингу языком программирования и на этом невозможно написать полноценную программу.
Тьюринг не жил во времена когда можно под любой бзик донейтить по 100 лямов зелени под угрозой полного закрытия проекта ;)
> Тьюринг не жил во времена когда можно под любой бзик донейтить по
> 100 лямов зелени под угрозой полного закрытия проекта ;)От вики по крайней мере польза есть, в отличие от некоторых. Почему бы и не задонейтить, спрашивается. Я вот задонейтил. Потому что мне нравится этот проект.
>Почему бы и не задонейтить, спрашивается.Если бы авторам, которые работают на правах литературных негров, хоть грош перепал, то да. А так это очередная контора типа гугла, которая за общак работает на благо США.
Вы хотели написать "во времена, когда операционка втюхивается вместо с железом без механизма возврата средств, а ФАС, которое должно за это дрючить непереставая, благославляет", но дрогнула рука...
В этой стране под властью этих людей ни ФАС, ни ЦИК, ни налоговая, ни уг.розыск, вообще никто не хочет выполнять свои обязаности и не несёт за это ответственности. Странно что прожив в ней столько лет вы до сих пор этому так искренне удивляетесь.
> лет вы до сих пор этому так искренне удивляетесь.Ну то-есть, по твоей логике, раз ты пиаришь MS то и за едро наверное должен ратовать.
> В этой стране под властью этих людей ни ФАС, ни ЦИК, ни
> налоговая, ни уг.розыск, вообще никто не хочет выполнять свои обязаности и
> не несёт за это ответственности.А в твоей стране MS не подходит под антимонопольное? с 90% рынка? Анитимонопольщики тоже давят *опами глистов? Ай-ай, как нехорошо.
> Странно что прожив в ней столько лет вы до сих пор этому так искренне удивляетесь.Я где-то тебе рассказал где и сколько я прожил? Да только везде одно и то же: монополист гребёт деньги. Деньги затыкают рот тем, кто не доволен.
>В этой стране под властью этих людей <бла-бла-бла я самый умный>В этой стране свободы намного больше, чем в некоторых. Здесь оппозиция может свободно вонять на центральных каналах, чего в светоче демократии давно нет.
не путайте написание собственно энциклопедии (содержания) с написанием софта для неё. Издательство книг тоже состоит не только в написании контента для них.
Молодцы, вместо переписывания жмущего им PHP(не рассчитанного на проекты подобного масштаба) и написания велосипедного языка с VM и JIT(как сейчас модно) они используют уже готовое апробированное решение, такое здравомыслие нынче — большая редкость.
Все бы ничего, только как я понимаю они предлагают это не своим програмерам, а _ЮЗЕРАМ_ вики!
Также Lua эффективно применяется для создания скриптов для DC-хабов...
> Также Lua эффективно применяется для создания скриптов для DC-хабов...В отличие от вики это надо полутора варезникам, у которых после принятия ACTA основным рабочим инструментом будет, видимо, бензопила. При том это будет не doom а лесоповал.
Юзерам World of Warcraft осилить Lua не составило большого труда.
> Юзерам World of Warcraft осилить Lua не составило большого труда.Интересно, это такая похвала хомякам из вовы или это такое опускание языка? А то как известно, "создайте систему которой может пользоваться даже дурак, и только дурак захочет ей пользоваься" (из законов Мерфи). По моим наблюдениям, игроки в вову интеллектом мягко говоря не блещут.
>> Юзерам World of Warcraft осилить Lua не составило большого труда.
> Интересно, это такая похвала хомякам из вовы или это такое опускание языка?
> А то как известно, "создайте систему которой может пользоваться даже дурак,
> и только дурак захочет ей пользоваься" (из законов Мерфи). По моим
> наблюдениям, игроки в вову интеллектом мягко говоря не блещут.Там скриптинг на Lua.
Вы видели код этих самых пользовательских модификаций World of Warcraft'а? А я видел и даже разгребал его.
Но, думаю, шаблонам Википедии такие ужасы не грозят. Если правильно понимаю, там всё должно быть достаточно тривиально, чтоб исключить кодо-недоразумения. Или я не прав?
Погугли перед тем как писать "умный" комментарий.
Lua уже давно используется в примерно половине игр для скриптинга всего что только можно, включая AI.
Из FOSS-игр, например, Battle for Wesnoth перешли с Python на Lua, так как sandbox на Python не была 100% надежной.
Далеко не каждый игрок в вов осваивает скриптовый язык в нем.
Это всеравно что сказать что каждый игрок в рагнароке в совершенстве владеет перлом.
Дело в том, что фонд Викимедиа не зарабатывает денег, его цель - поддерживать работу википедии МИНИМАЛЬНЫМИ средствами. В таких условиях здравомыслие очень пригождается :), они ведь не могут себе позволить разработку велосипедоязыка или оптимизирующего компилятора для Брейнфака.
Если уж использовать JIT, то тогда почему не ява? Хотя бы потому, что жабакодеров порядка на 4 больше, чем ЛУАкодеров.
> Если уж использовать JIT, то тогда почему не ява? Хотя бы потому, что жабакодеров порядка на 4 больше, чем ЛУАкодеров.
> > В итоге победил Lua, главным образом благодаря технически более простой интеграции в проект.Очевидно, в случае с жабой интеграция в проект будет технически менее простой. К тому же, луна в отличии от жабы изначально как раз для встраивания в другие приложения и разрабатывалась.
Хотя бы потому, что Java - это программный язык, а не скриптовый!
> Если уж использовать JIT, то тогда почему не ява?Лучше уж тогда JS. В оном JIT уже тоже есть, а веб-народцу он как-то привычнее, потому что так или иначе встречается в каждой дырке. Хотя превращать шаблоны в программирование - дикий изврат. Чего ради авторы энциклопедии должны становиться программистами?
<trollmode>
Зря! ИМХО это лучше NodeJS поручить. "Очень удобно писать на одном и том же языке и на сервере и на клиенте!" (тм)
</trollmode>
> "Очень удобно писать на одном и том же языке и на сервере и на клиенте!" (тм)Даешь встроенный в браузер интерпретатор пыха!
> Даешь встроенный в браузер интерпретатор пыха!Во, я и смотрю. Народу не нравится node.js в браузере - сразу пых подавай :). Так, чисто по оценкам коментов.
> Очень удобно писать на одном и том же языке и на сервере и на клиенте!А я уже давно говорю — нужно использовать в качестве языка для веб программирования Lua. Быстро! Дёшево! Качественно!
> Быстро! Дёшево! Качественно!...но в любой момент времени вы можете выбрать только 2 из этих 3... :P
Сам изучаю lua и с одной стороны - очень круто, с другой кошмарный п%%%ц типа хранения чисел в double, идиотского for и ещё нескольких странностей. Хорошо в 5.2 хотя бы привели в порядок ад с окружением...
для embedded есть патч, позволяющий (в завсимости от значения) хранить числа в integer, даёт неплохой прирост производительности на машинах без fpu.
для десктопов же с точки зрения производительности практически без разницы.или Вы про ошибки округления? да, иногда могут добавить пару седых волосков ;)
Судя по документации, не нужно никаких патчей - можно банально указать свой тип для lua_Integer.> или Вы про ошибки округления?
Разумеется, про них. У меня волосы встают дыбом когда я думаю что мне может вернуть 1 + 2 == 3.
> Судя по документации, не нужно никаких патчей - можно банально указать свой
> тип для lua_Integer.Забыл добавить что минусом это остаётся, учитывая что по умолчанию double и чтобы поменять его на long нужно бандлить и собирать lua со своим проектом.
> Сам изучаю lua и с одной стороны - очень круто, с другой
> кошмарный п%%%ц типа хранения чисел в double, идиотского for и ещё
> нескольких странностей. Хорошо в 5.2 хотяОзнакомьтесь с "Why not Lua" Жулиена Данжу, там список "фич" подлиннее.
> Ознакомьтесь с "Why not Lua" Жулиена Данжу, там список "фич" подлиннее.Да вообще какой-то извращенский язык. Смесь паскаля и яваскрипта.
> Ознакомьтесь с "Why not Lua" Жулиена Данжу, там список "фич" подлиннее.Знаком, статья вызвала только сомнение в квалификации автора. Кроме "No reference counting is a pain in the ass" все его "минусы" либо полная чушь, либо наоборот плюсы.
> чушь, либо наоборот плюсы."а это вообще не баг а фича!" (стандартная мантра любого разработчика)
Во-первых, не любого. Во-вторых, зачастую это так и есть. ВЭто про свой код, и не любого Я не разработчик Lua. В оставшихся случаях, да - бывает что разработчики используют эту отмазку для своего кода. Однако я не разработчик lua, так что ваш пост совершенно не к месту. Просто пост Жулиена за исключением одного пункта - полная чушь.
я несколько лет работал на одном проекте с xslt в качестве языка шаблонов, и скажу что после него другие движки выглядят просто несерьёзно. Да, порог вхождения там кочечно соответствующий, новичкам требуется 2-3 недели полный день штудировать язык и чужой код, пока смогут своё писать, но потом никто не жаловался. Используй его википедия, юзеры бы наверное поначалу взвыли, зато через несколько лет стал бы стандартом в вебё.
> Используй его википедия, юзеры бы наверное поначалу взвыли, зато через несколько лет...проект бы закрылся.
Толсто. XML и XSLT вообще не место в этом мире. Более того, вы видимо "языка шаблонов" в глаза не видели, потому что XSLT кроме того что уродлив, ещё и дико ограничен.
> я несколько лет работал на одном проекте с xslt в качестве языка
> шаблонов, и скажу что после него другие движки выглядят просто несерьёзно.
> Да, порог вхождения там кочечно соответствующий, новичкам требуется 2-3 недели полный
> день штудировать язык и чужой код, пока смогут своё писать, но
> потом никто не жаловался. Используй его википедия, юзеры бы наверное поначалу
> взвыли, зато через несколько лет стал бы стандартом в вебё.Мой опыт работы с xslt. (для веб-проекта, года 4 назад)
1. Лично мне не потребовалось 2-3 недели.
2. Написал 200К байт шаблонов (за месяц).
3. Понял, что сделать так, чтобы во всех шаблонах не повторялось одно и то же по 100500 раз, невозможно.
4. Понял, что чтобы вставить 1 символ, надо написать 100500 тегов xml/xslt.
5. Понял, что некоторые вещи сделать на xslt невозможно физически.
6. Понял, что скорость работы этого чуда - на уровне подсчёта кубического корня из восьмидесятой степени экспоненты на ручных счётах.
7. Выкинул 200К шаблонов и месяц работы в помойку. Переписал за неделю на "одном общеизвестном дурацком шаблонизаторе". Работает.Думаю, именно поэтому xslt нигде кроме umi cms и не используется.
И вообще xml - это очень хороший формат для обмена сообщениями (в протоколах а-ля SOAP), но совершенно не подходящий для хранения и обработки больших объёмов текстовых данных.
вероятно причина того что Вы описали как раз кроется в первом пункте. Надо думать, если я, не зная к примеру яву, заявлю что мне не потребовалось для её изучения и 2-3 недель, и возьмусь сотворить на ней 200K кода, результат будет очень похожим. Особенно скорость работы этого чуда.
> вероятно причина того что Вы описали как раз кроется в первом пункте.Я видел как на XSLT мучался полтора года целый отдел профессионалов, так что нет, не кроется. Просто XSLT - убожество.
>Просто XSLT - убожество.ах как я вас понимаю
> И вообще xml - это очень хороший формат для обмена сообщениямиАга, ЩАЗ.
1) Размер сообщения заранее неизвестен. Если кто пошел в разнос и льет портянку в гиг, о проблеме ты узнаешь не очень быстро, ага. :-)
2) Внятно валидировать то что налили можно только после полного получения.
3) Крайне пухлый протокол.
4) Тормозной в разборе и сложный.
5) Крайне неудобен для передачи _произвольных_ бинарных данных (например, как жаббер передает картинки в XML - это просто жесть).
>Лично мне не потребовалось 2-3 недели.В этом и проблема
Писали мы как-то с приятелем курсач на асме (машинку двигать), первый раз в жизни, на завтра. Тогда ещё интернетов небыло. Язык увидели первый раз в жизни. Ваш асм полное говно:
>1. Лично мне не потребовалось 2-3 недели.
>2. Написал 200К байт шаблонов (за месяц).
>3. Понял, что сделать так, чтобы во всех шаблонах не повторялось одно и то же по 100500 раз, невозможно.
>4. Понял, что чтобы вставить 1 символ, надо написать 100500 тегов xml/xslt
>5. Понял, что некоторые вещи сделать на xslt невозможно физически.
>6. Понял, что скорость работы этого чуда - на уровне подсчёта кубического корня из восьмидесятой степени экспоненты на ручных счётах.
Нечеловеческий синтаксис Wiki-разметки и отсутствие вменяемой документации на шаблоны создают высокий порог входа для новых авторов. Написание статьи превращается в поиск по имеющимся статьям кусков кода для копипаста.
>Написание статьи превращается в поиск по имеющимся статьям кусков кода для копипаста.Хорошо подмечено!