Чтобы обеспечить победоносное шествие языка программирования форт по всей планете предлагаю захватить вики-среду, навязав всем форт
Вводные- Вики-проекты работают на движке MediaWiki
- Работающий в движке язык шаблонов (макросы для бедных) откровенно хренов.
- В стандартную поставку MediaWiki входит скриптовый движок Lua.
- Напрямую писать скрипты для вики-сайта с помощью Lua нельзя. Те же самые макросы на Lua делаются через обвязку.
Исходя из этих вводных, предполагаем, что на вики-сайтах отсутствует вменяемый скриптовый язык. Его нишу может занять форт.
Без лишних танцев с бубном реализовать форт-машину мы можем на том же Lua. Для нас главное вывести скриптинг из закромов на уровень вики-текста.
Недостатки такого решения:
- Мы не можем использовать некоторые комбинации и специальные символы: {{ }} |
- Результат скрипта будет кэширован. Динамические свистопляски возможны только с лагом в 10-15 часов)
Встроенный скрипт на форте будет выглядеть как-то так:
Код:
{{forth|script=
'style' var? \\ передана ли в скрипт именнованная переменная с именем style
if
'style' get \\ если да, кладём на стек значение переменной
else
'font-color:green' \\ если нет, кладём на стек строку
then
value style-link \\ создаём переменную и записываем туда значение со стека
L2
if
L1
'<span style="' .. style-link .. '">' .. L2 .. '</span>'
create-link
else
`[[<span style="` .. style-link .. `">` .. L1 .. '</span>]]'
then
\\ Ниже идут переменные, которые будут использоваться в скрипте
|переменная 1
|переменная 2
}}
Этот код должен красить ссылку в вики-тексте в зелёный цвет, если не выбран какой-то другой цвет/стиль. Счас у меня это реализовано на языке шаблонов, но решение на нём хрен поменяешь и масштабируешь.
Почему именно forth?Простота реализации – создать интерпретатор форта можно на чём угодно.
Требования к реализации фортаТребование всего одно – простота понимания порождаемого кода. Без этого затея не имеет смысла. Пользователю нужны относительно простые и наглядные манипуляции с данными. Переусложнение синтаксиса превратит форт в бесполезную надстройку. Человеку нет смысла учить ещё один сложный ЯП, если можно изучить 2 базовых и сбацать что-то корректное уже на них.
Необходимость фортаПод вопросом, на самом деле. Как альтернатива языку шаблонов может сгодиться вообще что угодно. Другое дело, что форт проще всего реализовать.
Плюс, следует разузнать мнение общественности среди вики-деятелей. Возможно, овчинка не стоит выделки.
P. S.По мотивам дискуссии про помощь ИИ для форта)
Чтобы обеспечить победоносное шествие языка программирования форт по всей планете предлагаю захватить вики-среду, навязав всем форт :))
[size=150]Вводные[/size]
[list]
[*]Вики-проекты работают на движке MediaWiki
[*]Работающий в движке язык шаблонов (макросы для бедных) откровенно хренов.
[*]В стандартную поставку MediaWiki входит скриптовый движок Lua.
[*]Напрямую писать скрипты для вики-сайта с помощью Lua нельзя. Те же самые макросы на Lua делаются через обвязку.[/list]
Исходя из этих вводных, предполагаем, что на вики-сайтах отсутствует вменяемый скриптовый язык. Его нишу может занять форт.
Без лишних танцев с бубном реализовать форт-машину мы можем на том же Lua. Для нас главное вывести скриптинг из закромов на уровень вики-текста.
Недостатки такого решения:
[list]
[*]Мы не можем использовать некоторые комбинации и специальные символы: {{ }} |
[*]Результат скрипта будет кэширован. Динамические свистопляски возможны только с лагом в 10-15 часов) [/list]
Встроенный скрипт на форте будет выглядеть как-то так:
[code]
{{forth|script=
'style' var? \\ передана ли в скрипт именнованная переменная с именем style
if
'style' get \\ если да, кладём на стек значение переменной
else
'font-color:green' \\ если нет, кладём на стек строку
then
value style-link \\ создаём переменную и записываем туда значение со стека
L2
if
L1
'<span style="' .. style-link .. '">' .. L2 .. '</span>'
create-link
else
`[[<span style="` .. style-link .. `">` .. L1 .. '</span>]]'
then
\\ Ниже идут переменные, которые будут использоваться в скрипте
|переменная 1
|переменная 2
}}[/code]
Этот код должен красить ссылку в вики-тексте в зелёный цвет, если не выбран какой-то другой цвет/стиль. Счас у меня это реализовано на языке шаблонов, но решение на нём хрен поменяешь и масштабируешь.
[size=150]Почему именно forth?[/size]
Простота реализации – создать интерпретатор форта можно на чём угодно.
[size=150]Требования к реализации форта[/size]
Требование всего одно – простота понимания порождаемого кода. Без этого затея не имеет смысла. Пользователю нужны относительно простые и наглядные манипуляции с данными. Переусложнение синтаксиса превратит форт в бесполезную надстройку. Человеку нет смысла учить ещё один сложный ЯП, если можно изучить 2 базовых и сбацать что-то корректное уже на них.
[size=150]Необходимость форта[/size]
Под вопросом, на самом деле. Как альтернатива языку шаблонов может сгодиться вообще что угодно. Другое дело, что форт проще всего реализовать.
Плюс, следует разузнать мнение общественности среди вики-деятелей. Возможно, овчинка не стоит выделки.
[size=150]P. S.[/size]
По мотивам дискуссии про помощь ИИ для форта)