Spring — внедрение Lua в качестве макроязыка
Spring — внедрение Lua в качестве макроязыка
@Shmuel
Поздравляю с начинанием. Но на мой взгляд проекту не хватает описания ради чего это делается. Нет ответов на вопросы:
1. Сравнение возможностей Lua и макроязыка.
2. Плюсы и минусы замены макроязыка на Lua.
3. Сравнение быстродействия одной и той же задачи, написанной на lua и макроязыке.
Возможно это обсуждалось в теме lua и luafar, но тогда желательно сделать копипэст текста, либо ссылок основных положений.
Примечание модератора:
Связанная тема: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Поздравляю с начинанием. Но на мой взгляд проекту не хватает описания ради чего это делается. Нет ответов на вопросы:
1. Сравнение возможностей Lua и макроязыка.
2. Плюсы и минусы замены макроязыка на Lua.
3. Сравнение быстродействия одной и той же задачи, написанной на lua и макроязыке.
Возможно это обсуждалось в теме lua и luafar, но тогда желательно сделать копипэст текста, либо ссылок основных положений.
Примечание модератора:
Связанная тема: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring
Спасибо за поздравление (кстати, авторов двое - см. файл LICENSE).AleXH wrote:Shmuel
Поздравляю с начинанием. Но на мой взгляд проекту не хватает описания ради чего это делается. Нет ответов на вопросы:
1. Сравнение возможностей Lua и макроязыка.
2. Плюсы и минусы замены макроязыка на Lua.
3. Сравнение быстродействия одной и той же задачи, написанной на lua и макроязыке.
Ради чего делается - расширение возможностей, улучшение поддержки и модификации макросов.
1. Макроязык в Энциклопедии Фара описан как "примитивный макроязык", тогда как Lua является полноценным скриптовым языком. Разница очень велика, вот только некоторые из различий:
Макроязык:
- Только базовые типы данных, нет контейнеров. В Lua есть тип "таблица", легко использующийся как массив, словарь, стек, очередь и т.д.
- Нет определения функций пользователя.
- Нет наследования, нет переопределения операций (метатаблицы в Lua)
- Не расширяем дополнительными библиотеками.
2. Плюсы замены - см. выше. Минусы замены: макроязык прошёл большой путь вместе с Фаром, заточен на него, баги в основном вычищены, многие проблемы решены. В то время как Spring находится в начале пути и на данный момент даже не покрывает функциональности макроязыка (нет многих нужных функций). Но я надеюсь, что преодоление этого отставания - вопрос ближайших нескольких месяцев (а может и ещё быстрее).
3. Это очень сильно зависит от задачи. До сих пор в Фаре у меня не было проблем с торможением из-за Lua.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Spring
Хотелось бы понять какое преимущество имеет использование Spring вместо комбинации "Classic" Far + LuaFar ?
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring
Это - не взаимоисключающие опции: и то, и другое может быть в использовании на одной системе. Практика показала, что одних плагинов недостаточно, нужны и макросы, не так ли? Цель Spring'а - сделать макросы лучше.Max Rusov wrote:Хотелось бы понять какое преимущество имеет использование Spring вместо комбинации "Classic" Far + LuaFar ?
Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит. А что для конкретной задачи лучше использовать - видно будет.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Spring
Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?Shmuel wrote:Согласен, что имеет место большой перехлёст функциональности, но он как бы места не занимает и не вредит.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring
Видимо я не лучшим образом анонсировал Spring, если возник такой вопрос.Max Rusov wrote:Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
В Spring'e роль макроязыка играет Lua, так что - да, надо будет переписывать. (Но это будет полезным упражнением само по себе).
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring
Насколько я понимаю - решён. Но сейчас уже вы можете это проверить практически (баг-репорты принимаются с благодарностью ).Max Rusov wrote:А решен ли ранее обсуждавшийся вопрос с асинхронностью far.Keys ?
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: Spring
Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.Shmuel wrote:Spring находится в начале пути и на данный момент даже не покрывает функциональности макроязыка (нет многих нужных функций).
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring
Да, неплохо бы, и это будет сделано. Просто всё упирается в вопрос времени (как всегда).John Doe wrote:Для начала полезно было бы составить список соответствия функций "классического" макроязыка функциям Lua.
- Aidar
- Posts: 541
- Joined: Mon 09 Mar, 2009 22:43
- Location: Kazan
- Has thanked: 8 times
- Been thanked: 7 times
- Contact:
Re: Spring
Простые макросы, соответствующие только нажатиям клавиш, переделываются легко. Например, макрос "F11 e Enter" заменяется на "SendKeys(\"F11 e Enter\")" (скобки можно опустить). Для сложных макросов необходимо знать соответствие макро-функций и функций (Lua)FAR API.Max Rusov wrote: Я не понял один момент: в Spring обычные макросы работают? Или их все придется переписывать на Lua?
Last edited by Aidar on Wed 01 Aug, 2012 15:31, edited 1 time in total.
Re: Spring
Браво, давно пора выбросить наследие старых времён. И, наверняка, не только макроязык, но и гору опций вроде "показывать длинные имена" или "Создавать папки в апкейсе".
Для макросов можно было бы написать конвертер в Lua.
Кстати, версию под x64 бы.
Для макросов можно было бы написать конвертер в Lua.
Кстати, версию под x64 бы.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Re: Spring — внедрение Lua в качестве макроязыка
На данный момент все идентификаторы чувствительны к регистру символов. Однако несложно сделать их и нечувствительными (за исключением глобальных идентификаторов). Хотелось бы услышать мнения по двум вопросам, а именно:
1. Что предпочтительней, чувствительность или нечувствительность к регистру символов ?
2. Если первое, то что предпочтительней: CamelCase или lowercase ?
Пример:
CamelCase: Editor.FileName
Lowercase: Editor.filename
Речь идёт только о реализации API макроязыка, API плагинов (LuaFAR) останется чувствительным к регистру в любом случае.
1. Что предпочтительней, чувствительность или нечувствительность к регистру символов ?
2. Если первое, то что предпочтительней: CamelCase или lowercase ?
Пример:
CamelCase: Editor.FileName
Lowercase: Editor.filename
Речь идёт только о реализации API макроязыка, API плагинов (LuaFAR) останется чувствительным к регистру в любом случае.
- HaRT
- Moderator
- Posts: 10806
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 220 times
- Been thanked: 357 times
Re: Spring — внедрение Lua в качестве макроязыка
Лично я выступаю за НЕчувствительность к регистру, но чтобы каноническим написанием считался вариант в CamelCase.
Фар есть инструмент, а не нянька. © 2009 DrKnS