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

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

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

Post by AleXH » Tue 17 Jul, 2012 05:25

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

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

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

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

Re: Spring

Post by Shmuel » Tue 17 Jul, 2012 08:08

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

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


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

3. Это очень сильно зависит от задачи. До сих пор в Фаре у меня не было проблем с торможением из-за Lua.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: Spring

Post by Max Rusov » Tue 17 Jul, 2012 08:54

Хотелось бы понять какое преимущество имеет использование Spring вместо комбинации "Classic" Far + LuaFar ?

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

Re: Spring

Post by Shmuel » Tue 17 Jul, 2012 09:35

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

Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит. :) А что для конкретной задачи лучше использовать - видно будет.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: Spring

Post by Max Rusov » Tue 17 Jul, 2012 09:43

Shmuel wrote:Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит. :)
Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?

Yegor
Posts: 947
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 3 times
Been thanked: 12 times

Re: Spring

Post by Yegor » Tue 17 Jul, 2012 09:49

Я так понимаю, что идея Spring - это замена встроенного макроязыка на Lua
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

Re: Spring

Post by Shmuel » Tue 17 Jul, 2012 10:12

Max Rusov wrote:Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
Видимо я не лучшим образом анонсировал Spring, если возник такой вопрос.
В Spring'e роль макроязыка играет Lua, так что - да, надо будет переписывать. (Но это будет полезным упражнением само по себе).

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

Re: Spring

Post by Max Rusov » Tue 17 Jul, 2012 11:11

А решен ли ранее обсуждавшийся вопрос с асинхронностью far.Keys ?

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

Re: Spring

Post by Shmuel » Tue 17 Jul, 2012 11:32

Max Rusov wrote:А решен ли ранее обсуждавшийся вопрос с асинхронностью far.Keys ?
Насколько я понимаю - решён. Но сейчас уже вы можете это проверить практически (баг-репорты принимаются с благодарностью :) ).

User avatar
John Doe
Бюрократ
Posts: 12162
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 30 times
Been thanked: 159 times

Re: Spring

Post by John Doe » Tue 17 Jul, 2012 16:43

Shmuel wrote:Spring находится в начале пути и на данный момент даже не покрывает функциональности макроязыка (нет многих нужных функций).
Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

Re: Spring

Post by Shmuel » Tue 17 Jul, 2012 16:58

John Doe wrote:Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.
Да, неплохо бы, и это будет сделано. Просто всё упирается в вопрос времени (как всегда).

User avatar
Aidar
Posts: 540
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: Spring

Post by Aidar » Wed 18 Jul, 2012 08:50

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 » Wed 01 Aug, 2012 11:50

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

Кстати, версию под x64 бы.

Shmuel
Posts: 5681
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 199 times

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

Post by Shmuel » Thu 09 Aug, 2012 10:27

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

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

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

Речь идёт только о реализации API макроязыка, API плагинов (LuaFAR) останется чувствительным к регистру в любом случае.

User avatar
HaRT
Moderator
Posts: 8605
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 77 times
Been thanked: 140 times

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

Post by HaRT » Thu 09 Aug, 2012 10:57

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

User avatar
Wave
Posts: 1759
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 14 times

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

Post by Wave » Thu 09 Aug, 2012 10:59

+1
CamelCase выглядит достаточно красиво и удобно читается, но если вдруг где-то напутаешь с регистром, найти получится, может, не сразу, а время и нервы на отладку потратятся.
Пользуюсь ФАРом больше 20 лет © собирательный.

Locked

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