Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Разработка Far.
Post Reply
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

Skirda wrote:А чё мы хотим? Предоставить функциональную оболочку для...
И чё у нас есть?
У нас есть две возможности:
1. плагины (некоторые поддерживают скрипты)
2. макросы (которые, кроме всего прочего имеют доступ к интимным подробностям, которые в плагины не выносяться)

И причем тут Lua?
Это не предложение, но... Lua мог бы полностью заменить существующий макроязык Фара. То-есть, каждый макрос являлся бы скриптом Lua. Плюсы - очевидны. Минусы - наверное есть какие-то, пока в голову не приходит.

Примечание модератора
Связанная тема: Spring — внедрение Lua в качестве макроязыка
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by zg »

Shmuel wrote:Минусы - наверное есть какие-то, пока в голову не приходит.
макросы это ещё и последовательность нажатий клавишь в фаре.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by NightRoman »

zg wrote:
Shmuel wrote:Минусы - наверное есть какие-то, пока в голову не приходит.
макросы это ещё и последовательность нажатий клавишь в фаре.
Это-то точно не препятствие. Макросы записываются как скрипт, который имеет единственный вызов соответствующей ф-ии, где параметр - то, что сейчас является последовательностью клавиш.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by NightRoman »

Мне кажется, что любой пристойный из бесплатных скриптовых языков (полностью встраиваемых, PowerShell точно не годится, хоть я и адепт оного) был бы лучше, чем развитие существующего макро-скриптового языка. Lua - наверняка хороший кандидат. Еще хороший кандидат JavaScript с движком SpiderMonkey, например. Но это порядочная работа встроить грамотно. Тут макросы уже вторичны, а первична автоматизация самого Фара из скриптов. Макросы - это уже семечки были бы.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by zg »

NightRoman wrote:Это-то точно не препятствие. Макросы записываются как скрипт, который имеет единственный вызов соответствующей ф-ии, где параметр - то, что сейчас является последовательностью клавиш.
это очевидно. но каких-то концептуальных отличий от того, что есть сейчас я не вижу. чуть-чуть меняется механика и всё.
NightRoman wrote:Мне кажется, что любой пристойный из бесплатных скриптовых языков (полностью встраиваемых, PowerShell точно не годится, хоть я и адепт оного) был бы лучше, чем развитие существующего макро-скриптового языка.
складывается впечатление, что куча людей с этим не согласна.
Lua - наверняка хороший кандидат. Еще хороший кандидат JavaScript с движком SpiderMonkey, например. Но это порядочная работа встроить грамотно. Тут макросы уже вторичны, а первична автоматизация самого Фара из скриптов. Макросы - это уже семечки были бы.
JavaScript сильно тяжелее. при этом какого-то заметного выигрыша перед луа я не вижу.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: О целесообразности экстенсивного развития макроязыка

Post by Shmuel »

zg wrote:
Shmuel wrote:Минусы - наверное есть какие-то, пока в голову не приходит.
макросы это ещё и последовательность нажатий клавишь в фаре.
Это легко решается. Один из вариантов - тот, что предложил NightRoman. Другой - модификация парсера/лексера Lua для получения так называемого DSL (domain-specific language) на основе Lua. Это несложно. Но варианты, не требующие DSL, лично для меня более привлекательны.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by zg »

Shmuel wrote:Это легко решается. Один из вариантов - тот, что предложил NightRoman. Другой - модификация парсера/лексера Lua для получения так называемого DSL (domain-specific language) на основе Lua. Это несложно. Но варианты, не требующие DSL, лично для меня более привлекательны.
я тоже против dsl. что-то типа far.Post("F9 c t") это конечно не очень страшно. но тоже есть нюансы.
тут как-то Centaur приводил пример чего-то, где есть отдельно последовательность кнопок и отдельно — скрипты. идея на мой взгляд здравая. особенно если карать растрелом попытки преващения просто последовательности кнопок в что-то большее.
встраивать луа непосредственно в сам фар кажется мне не очень хорошей. если делать плагином, то запустив фар с /p мы лишаемся макросов. лично я не вижу в этом ничего плохого, но не всем нравится. и тут раз уж всё равно в фаре остаётся парсер выражений типа "F9 c t", то никто не мешает разделить макросы на скрипты и последовательности клавишь. в общем есть о чем подумать и подискутировать.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by NightRoman »

JavaScript сильно тяжелее. при этом какого-то заметного выигрыша перед луа я не вижу.
Тяжелее в каком смысле? Может, и не важен этот смысл?

Оба языка и движка имеют плюсы и минусы и разную популярность на предмет пользы вне Фара. Я не спец ни в одном из них, но кой-что читал о них. О сравнении их тоже. Все неоднозначно. Если решать за это браться, то надо всерьез все аспекты взвешивать. А выучить основы любого из этих языков не сложней, чем учить фаровский макроязык.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by zg »

NightRoman wrote:Тяжелее в каком смысле? Может, и не важен этот смысл?
1. жаваскрипт тоже кое-где развивался экстенсивно :)
2. луа изначально встраевыемый. с жаваскрипт насколько я в курсе, всё не так радужно. не скажу про спидерманки, но вот про V8 народ жаловался.
3. опять же насколько я в курсе, по производительности, по расходу памяти луа у жаваскрипта выигрывает.

и главное, для луа уже есть реализация, которую надо чуть-чуть допилить. для жаваскрипта такой реализации нет вообще.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: О целесообразности экстенсивного развития макроязыка

Post by Shmuel »

zg wrote:встраивать луа непосредственно в сам фар кажется мне не очень хорошей. если делать плагином, то запустив фар с /p мы лишаемся макросов. лично я не вижу в этом ничего плохого, но не всем нравится. и тут раз уж всё равно в фаре остаётся парсер выражений типа "F9 c t", то никто не мешает разделить макросы на скрипты и последовательности клавишь. в общем есть о чем подумать и подискутировать.
Если (опять-таки гипотетически) Lua заменит макроязык Фара, то почему бы и не встроить, ведь существующий макроязык встроен?
User avatar
DAtaMan
Posts: 262
Joined: Wed 24 Jun, 2009 10:01
Location: не отсюда

Re: О целесообразности экстенсивного развития макроязыка

Post by DAtaMan »

Squirrel тоже неплох. И к C++ близок по синтаксису. :)
Last edited by DAtaMan on Fri 13 Apr, 2012 21:19, edited 1 time in total.
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by NightRoman »

zg
Ну я вобщем по всем пунктам почти согласен. На спидерманки из того, что юзаю, управление MongoDB (одна из NoSQL баз данных) сделано. Чего там только не обсуждают, но не припоминаю, чтобы жавускрипт в нем ругали.

Да я не против луа. Но просто если это дело брать на вооружение всерьез, то пока имхо аргументов недостаточно. Опять же в Вин 8 роль жавыскрипта резко возрастет. И они уже имеют новые красивые механизмы написания ядер на нормальных языках (обычный С++ включен) и легкой автоматизации поверх жаваскриптами (и это не active script через COM, что было раньше, а что-то другое). Может оказаться выгоднее оседлать жавускрипт хотя бы из этих соображений даже.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: О целесообразности экстенсивного развития макроязыка

Post by zg »

Shmuel wrote:Если (опять-таки гипотетически) Lua заменит макроязык Фара, то почему бы и не встроить, ведь существующий макроязык встроен?
тоже вариант. заведи тему в разделе разработки, опиши свое видение, обсудим :)
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

zg wrote:
Shmuel wrote:Если (опять-таки гипотетически) Lua заменит макроязык Фара, то почему бы и не встроить, ведь существующий макроязык встроен?
тоже вариант. заведи тему в разделе разработки, опиши свое видение, обсудим :)
Видение на данный момент простое: макрос=скрипт. Существующие возможности и функции макроязыка должны быть полностью реализованы/приспособлены к новому языку в первую очередь (это хороший кусок работы, но делается один раз).
Yegor
Posts: 1328
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Yegor »

Я бы проголосовал за Active Scripting, чтобы не привязываться к конкретному языку. Жаль, что МС забила не эту технологию, хотя все еще она присутствует в винде "из коробки".
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Post Reply

Return to “Development”