Page 1 of 1

Невыносимая лёгкость экспериментов с API

Posted: Wed 02 Sep, 2020 18:38
by citRiks
DrKnS wrote: Fri 25 Oct, 2013 07:15 В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.
DrKnS wrote: Fri 25 Oct, 2013 10:35 Так проблема в том, что если выстругать нормальный костыль, который не будет натирать, то нормальной реализации можно уже не ждать. А так всё же мотивация.
Уважаемый DrkNs, во-первых не сочтите за критику.
Во-вторых, я совершенно в курсе о вашей проделанной работе, о самых лучших ваших намерениях и планах, вашей бескорыстности, и проч.
вы справедливо не любите костыльность и кривизну реализации, совершенно верно что затрудняет жизнь развитие продукта.
Я вижу что вы делаете это не только для себя, и возможно даже не столько для себя.
Вот вы же не хотите чтобы ваша работа, и вот это все, стало напрасным и ненужным?
Если сильно тянуть с функционалом, то юзеров просто не будет, и зачем тогда ваши оптимизации и заделы на будущее?
Пока надо же просто облегчить людям строгание временных внешних костылей, и потом постепенно их заменять.
Компромис можно найти в выдаче наружу внутренней кухни, например АПИ работы с историей изменений редактора.
С оговоркой большими красными буквами что может сломаться в любой момент и никак не поддерживается.
АПИ наружу - это такая штука что переделывается относительно легко в любом случае.

Virtual string wrap

Posted: Wed 02 Sep, 2020 18:59
by HaRT
citRiks wrote: Wed 02 Sep, 2020 18:38 АПИ наружу - это такая штука что переделывается относительно легко в любом случае.
Это большое заблуждение.

Virtual string wrap

Posted: Wed 02 Sep, 2020 19:15
by citRiks
HaRT,
Ну я не имел ввиду что все внешнее АПИ и всегда легко передeлывать.
Я имел ввиду лишь некоторые, но распространенные сценарии.
Например, передачу наружу некоторой структуры.
В новом АПИ например переименовали определенное поле в структуре.
При передаче можно его просто переименовать обратно.
Или добавление полем или убирания поля - то же самое, можно или тупо удалить лишнее, либо как-то реконструировать.
В некоторых сценариях может быть невозможным или чрезмерно сложным реконструировать,
но я думаю что большинство сценариев переделки АПИ соответствуют моему мнению выше

Virtual string wrap

Posted: Wed 02 Sep, 2020 19:28
by citRiks
HaRT,
Или если расширить идею, можно добавить compatibility plugins,
которые приводят существующее новое АПИ в заданный compatibility mode.
И по крайнeй мере, значительную часть таких преобразований можно выпонять и уже сейчас в Луа.
Например, заменить нативный Editor.Open() на какую-то обработку с дополнительными параметрами в Луа.
Выглядит сложным?
В любом случае, полной поддержки этому быть не обязательно и даже не должно быть,
чтобы разрабы занимались рефакторингом, развитием, и прочими заделами на будущее

Virtual string wrap

Posted: Wed 02 Sep, 2020 19:51
by citRiks
Еще пример из жЫзни.
В ФАРе "старое" макро-АПИ и "новое" макро-АПИ очень хорошо уживаются вместе, и даже помогают друг другу.
это я не к тому что надо сделать еще миллион поддерживаемых версий макро-АПИ, совсем наооборот
A к тому что само по себе это не очень то и проблема - приспособить старое к новому.
при условии что поддержка не оказывается, и вынесено, опять же, наружу, -
кому надо сами справятся с адаптацией, а конечным пользователям вообще пофиг

Virtual string wrap

Posted: Wed 02 Sep, 2020 19:51
by DrKnS
citRiks wrote: Wed 02 Sep, 2020 18:38 Если сильно тянуть с функционалом, то юзеров просто не будет, и зачем тогда ваши оптимизации и заделы на будущее?
На этом форуме, как в Симпсонах, было уже все, в т.ч. и обсуждение этого вопроса.
АПИ наружу - это такая штука что переделывается относительно легко в любом случае.
Хорошая шутка.
можно добавить compatibility plugins, которые приводят существующее новое АПИ в заданный compatibility mode.
У нас есть достаточно много плагинов для Far 2, которые теперь не поддерживаются. Возьметесь?

Virtual string wrap

Posted: Wed 02 Sep, 2020 19:56
by citRiks
DrKnS wrote: Wed 02 Sep, 2020 19:51 У нас есть достаточно много плагинов для Far 2, которые теперь не поддерживаются. Возьметесь?
Мечтаю этим занятся, честно.
Надеюсь выйти на тот режим экспертизы который позволит решать элементарщину за минуты а не часы как сейчас.
И тогда сделаю более открытый бранч ФАРа, идей-то много.

Но что касается конкретно старых плагинов,
то в большинстве случаев их достаточно просто вставить в новый шаблон и перекомпилировать, не?

Virtual string wrap

Posted: Wed 02 Sep, 2020 20:12
by citRiks
DrKnS wrote: Wed 02 Sep, 2020 19:51 На этом форуме, как в Симпсонах, было уже все, в т.ч. и обсуждение этого вопроса.
Было конечно, но в том что я видел на вас просто предлагают навесить больше работы не предлагая ничего взамен.
Я же не предлагаю увеличивать количество работы, предлагаю нечто даже обратное.
Технически к каждой сишной штуковине можно приделать автоматический вынос наружу в Луа Макро-АПИ.
Написать скрипт который это генерит при каждом билде сам, и на этом все.
сделав например scope (в Macro-API) называемый "internal".

Это в Симпсонах было?
Можно ли посмотреть где, как и ваши разьяснения хотя бы вкратце?

Virtual string wrap

Posted: Thu 03 Sep, 2020 09:25
by John Doe
DrKnS wrote: Wed 02 Sep, 2020 19:51 У нас есть достаточно много плагинов для Far 2, которые теперь не поддерживаются. Возьметесь?
Кажется и переходник был, но пропал вместе с Maximus5.

Virtual string wrap

Posted: Sat 05 Sep, 2020 09:32
by citRiks
John Doe,
Фар3Врап в качестве бинариес лежит тут:
https://sourceforge.net/projects/conemu ... arPlugins/
Утешение слабое, так как без исходников ценности не представляет я считаю.
По поводу самих Фар2-плагинов - то же самое,
если есть исходники - надо их перекомпилировать,
если нет - то ценности не представляют, даже с наличием Фар3Врап,
будут валиться, или сейчас или в будущих версиях, авторы будут пропадать,
ничего не починишь, не добавишь и не прибавишь.

Написал в ГитХаб Максимусу запрос исходников Фар3Врап

Но, что интересно, само наличие Фар3Врап демонстрирует легитимность подхода - "один код - много (версий) внешних АПИ".
И даже что можно самостоятельно (внешне от кода ФАРа) их реализовывать,
в качестве обертки наподобие как это делает LuaMаcro, ФарНет, или Фар3Врап

PS
хотя модель "продолжать девелопить плагин как и для АПИ ФАР2",
(при условии наличия исходников как Фар3Врап так и самого плагина)
тоже может быть забавным и имеет право на существование

Невыносимая лёгкость экспериментов с API

Posted: Sun 06 Sep, 2020 06:38
by Shmuel
citRiks wrote: Sat 05 Sep, 2020 09:32 Написал в ГитХаб Максимусу запрос исходников Фар3Врап
Поиском находится легко: https://github.com/mirror/conemu/tree/master/Far3Wrap