Spring — внедрение Lua в качестве макроязыка

Здесь обсуждается всё, что касается макросов.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Spring — внедрение Lua в качестве макроязыка

Post by AleXH »

@Shmuel
Поздравляю с начинанием. Но на мой взгляд проекту не хватает описания ради чего это делается. Нет ответов на вопросы:
1. Сравнение возможностей Lua и макроязыка.
2. Плюсы и минусы замены макроязыка на Lua.
3. Сравнение быстродействия одной и той же задачи, написанной на lua и макроязыке.

Возможно это обсуждалось в теме lua и luafar, но тогда желательно сделать копипэст текста, либо ссылок основных положений.

Примечание модератора:
Связанная тема: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring

Post by Shmuel »

AleXH wrote:Shmuel
Поздравляю с начинанием. Но на мой взгляд проекту не хватает описания ради чего это делается. Нет ответов на вопросы:
1. Сравнение возможностей Lua и макроязыка.
2. Плюсы и минусы замены макроязыка на Lua.
3. Сравнение быстродействия одной и той же задачи, написанной на lua и макроязыке.
Спасибо за поздравление (кстати, авторов двое - см. файл LICENSE).
Ради чего делается - расширение возможностей, улучшение поддержки и модификации макросов.

1. Макроязык в Энциклопедии Фара описан как "примитивный макроязык", тогда как Lua является полноценным скриптовым языком. Разница очень велика, вот только некоторые из различий:
Макроязык:
  • Только базовые типы данных, нет контейнеров. В Lua есть тип "таблица", легко использующийся как массив, словарь, стек, очередь и т.д.
  • Нет определения функций пользователя.
  • Нет наследования, нет переопределения операций (метатаблицы в Lua)
  • Не расширяем дополнительными библиотеками.


2. Плюсы замены - см. выше. Минусы замены: макроязык прошёл большой путь вместе с Фаром, заточен на него, баги в основном вычищены, многие проблемы решены. В то время как Spring находится в начале пути и на данный момент даже не покрывает функциональности макроязыка (нет многих нужных функций). Но я надеюсь, что преодоление этого отставания - вопрос ближайших нескольких месяцев (а может и ещё быстрее).

3. Это очень сильно зависит от задачи. До сих пор в Фаре у меня не было проблем с торможением из-за Lua.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring

Post by Max Rusov »

Хотелось бы понять какое преимущество имеет использование Spring вместо комбинации "Classic" Far + LuaFar ?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring

Post by Shmuel »

Max Rusov wrote:Хотелось бы понять какое преимущество имеет использование Spring вместо комбинации "Classic" Far + LuaFar ?
Это - не взаимоисключающие опции: и то, и другое может быть в использовании на одной системе. Практика показала, что одних плагинов недостаточно, нужны и макросы, не так ли? Цель Spring'а - сделать макросы лучше.

Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит. :) А что для конкретной задачи лучше использовать - видно будет.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring

Post by Max Rusov »

Shmuel wrote:Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит. :)
Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
Yegor
Posts: 1329
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Re: Spring

Post by Yegor »

Я так понимаю, что идея Spring - это замена встроенного макроязыка на Lua
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring

Post by Shmuel »

Max Rusov wrote:Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
Видимо я не лучшим образом анонсировал Spring, если возник такой вопрос.
В Spring'e роль макроязыка играет Lua, так что - да, надо будет переписывать. (Но это будет полезным упражнением само по себе).
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring

Post by Max Rusov »

А решен ли ранее обсуждавшийся вопрос с асинхронностью far.Keys ?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring

Post by Shmuel »

Max Rusov wrote:А решен ли ранее обсуждавшийся вопрос с асинхронностью far.Keys ?
Насколько я понимаю - решён. Но сейчас уже вы можете это проверить практически (баг-репорты принимаются с благодарностью :) ).
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Spring

Post by John Doe »

Shmuel wrote:Spring находится в начале пути и на данный момент даже не покрывает функциональности макроязыка (нет многих нужных функций).
Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring

Post by Shmuel »

John Doe wrote:Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.
Да, неплохо бы, и это будет сделано. Просто всё упирается в вопрос времени (как всегда).
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring

Post by Aidar »

Max Rusov wrote: Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
Простые макросы, соответствующие только нажатиям клавиш, переделываются легко. Например, макрос "F11 e Enter" заменяется на "SendKeys(\"F11 e Enter\")" (скобки можно опустить). Для сложных макросов необходимо знать соответствие макро-функций и функций (Lua)FAR API.
Last edited by Aidar on Wed 01 Aug, 2012 15:31, edited 1 time in total.
singalen
Posts: 24
Joined: Thu 13 Apr, 2006 09:45
Location: dp.ua
Contact:

Re: Spring

Post by singalen »

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

Кстати, версию под x64 бы.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

На данный момент все идентификаторы чувствительны к регистру символов. Однако несложно сделать их и нечувствительными (за исключением глобальных идентификаторов). Хотелось бы услышать мнения по двум вопросам, а именно:

1. Что предпочтительней, чувствительность или нечувствительность к регистру символов ?
2. Если первое, то что предпочтительней: CamelCase или lowercase ?

Пример:
CamelCase: Editor.FileName
Lowercase: Editor.filename

Речь идёт только о реализации API макроязыка, API плагинов (LuaFAR) останется чувствительным к регистру в любом случае.
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by HaRT »

Лично я выступаю за НЕчувствительность к регистру, но чтобы каноническим написанием считался вариант в CamelCase.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Locked

Return to “Обсуждение макросов”