Почему Far так сильно завязан на WinAPI

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
progreCCor
Posts: 84
Joined: Wed 09 Jan, 2008 17:45

Почему Far так сильно завязан на WinAPI

Post by progreCCor »

Собственно вопрос для тех, кто заходит сюда не слишком часто, но ооооочень любит Far и ждет новой версии.
Итак - в чем же коренные отличия far 3.0 и что нам от него ждать?
spa
Posts: 22
Joined: Mon 25 Apr, 2011 17:04

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by spa »

Меня больше всего волнует вопрос будет ли по прежнему сильная завязка на WinApi ,просто хотелось бы уйти от нее, сделать "прослойку" для совместимости со старыми плагинами, но при этом сделать архитектуру как можно более гибкой, да я хочу увидеть far3 на linux, чтобы везде можно было пользоваться одним инструментом, а не привыкать к разным.

PS вообще бы переписал far на python (исправил опечатку) =) производительности хватит с головой, зато переносимость из коробки. И да я понимаю что будут системные особенности. но их можно вынести в плагины.
Last edited by spa on Sat 26 Nov, 2011 13:48, edited 1 time in total.
2useven10
Posts: 4184
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 204 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by 2useven10 »

spa
Posts: 22
Joined: Mon 25 Apr, 2011 17:04

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by spa »

я хочу именно far =) ну да не важно, а что по поводу WinApi, где кроме исходных кодов можно почитать, что думаю активные авторы по этому поводу.
UJvu
Posts: 156
Joined: Tue 03 May, 2005 15:38
Location: Севастополь
Contact:

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by UJvu »

spa wrote:PS вообще бы переписал far на puthon =)
Python?
spa
Posts: 22
Joined: Mon 25 Apr, 2011 17:04

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by spa »

да, сори опечатка. но это не важно, меня интересует останется ли нелепая ( по моему мнению ) жесткая привязка к winapi, те даже в плагин апи юзаются структуры из windows.h
User avatar
DrKnS
Posts: 5781
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 10 times
Been thanked: 329 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by DrKnS »

spa wrote:я хочу именно far =) ну да не важно, а что по поводу WinApi, где кроме исходных кодов можно почитать, что думаю активные авторы по этому поводу.
Если кому-то вдруг неочевидно - создать хороший файловый менеджер без глубокой интеграции с целевой платформой невозможно.

В свете этого авторам не интересна идея кроссплатформенного фара даже на С++, не говоря уже о питоне, пхп или жаваскрипте.
User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

В чем основные отличия Far 3.0 от Far 2.0?

Post by techie »

2useven10 wrote:
По-поводу lfm - он GPL'ный и потому не так привлекателен, как хотелось бы. Плюс curses под винду + Python не портирован. Так что UNIX-only.
spa
Posts: 22
Joined: Mon 25 Apr, 2011 17:04

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by spa »

DrKnS wrote:
spa wrote:я хочу именно far =) ну да не важно, а что по поводу WinApi, где кроме исходных кодов можно почитать, что думаю активные авторы по этому поводу.
Если кому-то вдруг неочевидно - создать хороший файловый менеджер без глубокой интеграции с целевой платформой невозможно.

В свете этого авторам не интересна идея кроссплатформенного фара даже на С++, не говоря уже о питоне, пхп или жаваскрипте.
Не вижу логики, зачем завязывать PluginAPI на WinApi структурах. грубо говоря я не говорю о кросплатформенности в чистом виде, достаточно просто платформазавизимые вещи отделить от всего остального и все, в данный момет я вижу только одну проблему это завязка PluginAPI на вин WinApi , с ней не как не справиться. Пускай бы он даже осталась эта завязка, но только для совместимости. Чем фар становиться лучше если завязывается на WinAPi? Ну да ладно, я получил свой ответ
User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 4 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by techie »

DrKnS wrote:
spa wrote:я хочу именно far =) ну да не важно, а что по поводу WinApi, где кроме исходных кодов можно почитать, что думаю активные авторы по этому поводу.
Если кому-то вдруг неочевидно - создать хороший файловый менеджер без глубокой интеграции с целевой платформой невозможно.
Переписать не реально, но оценить проблему не помешает. Вдруг найдутся психи, которые рискнут. =) Пока прочитал (офф)топик, уже создал похожую тему http://forum.farmanager.com/viewtopic.php?f=3&t=6760

Возможно, стоит упомянуть, что уже мало кто говорит про файловый менеджер для платформы. Если инструмент для пользователя, то теперь пользователю приходится общаться со многими платформами. Поэтому хороший инструмент должен быть в первую очередь кросс-платформенным и быстрым, а уже потом быть файловым менеджером. =) Python предоставляет достаточно кроссплатформенный низкоуровневый API с которым легко играть, поэтому и первая мысль - переписать на нём. Но переписывать - это нереально. Реально только оценить масштаб, чтобы избавить себя от нереальных мыслей.

Так что я бы начал Far x.0 с того, чтобы определить, какие проблемы он решает для пользователя (что он позволяет сделать). Потом брать каждую проблему начиная с самых простых, смотреть, какой способ решения конкретной проблемы он предоставляет, и как можно этот способ (и можно ли вообще) реализовать на других платформах. С таким списком, общение на форуме будет более конструктивным.
User avatar
SUSim
Posts: 1546
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 12 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by SUSim »

spa wrote:Не вижу логики, зачем завязывать PluginAPI на WinApi структурах ...
структуры какие бы они ни были практически не зависят от платформы, да это и не важно, фар под винду - и в полной мере не может быть перенес на кросплатформенность - очень уж полезен и завязан на винду, да и некоторые плагины именно для винды и в другой ос будут бесполезны...
SimSU ··· ·· -- ··· ··-
User avatar
DrKnS
Posts: 5781
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 10 times
Been thanked: 329 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by DrKnS »

spa wrote:в данный момет я вижу только одну проблему это завязка PluginAPI на вин WinApi , с ней не как не справиться.
Лол. Т. е. если позаменять в plugin.hpp HANDLE на void*, BOOL на int, DWORD на unsigned int, а WINAPI на stdcall, то проблем не будет вообще, да?
User avatar
DrKnS
Posts: 5781
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 10 times
Been thanked: 329 times

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by DrKnS »

techie wrote:Переписать не реально, но оценить проблему не помешает. Вдруг найдутся психи, которые рискнут. =)
Рискнуть можно, чо. Только лучше помнить, что фар - это же не браузер и не doom.
Каких-то уникальных алгоритмов в нём почти нет, по большому счёту - это всего лишь такая удобная надстройка над кучей платформенных api со всякими мелкими плюшками.

Привязанность к платформе заключается отнюдь не в использовании winapi (который внутри и так для удобства практически полностью изолирован врапперами), а в самом дизайне:
- работа с атрибутами, правами доступа, именами, дисками, ссылками, потоками по определению платформозависима;
- работа с консолью (клавиатурный ввод/экранный вывод) по определению платформозависима;
- запуск процессов по определению платформозависим;
- работа с плагинами по определению платформозависима;
- и т. д.

Это как минимум половина кода, а то и больше.
Всё это нафиг не нужно на другой платформе, точно так же как бессмысленны здесь rwxrwxrwx, /, vfs и иже с ними.

Поэтому сферический кроссплатформенный файловый менеджер фактически будет не одним продуктом, а несколькими, общим у которых будет только название и некоторые абстрактные участки кода.

Как-то так.
spa
Posts: 22
Joined: Mon 25 Apr, 2011 17:04

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by spa »

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

PS хочу заметить что для винды переписывать практически нечего не надо будет, просто перераспределить код, вынести больше в плагины или модули
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Re: В чем основные отличия Far 3.0 от Far 2.0?

Post by zg »

spa wrote:PS хочу заметить что для винды переписывать практически нечего не надо будет, просто перераспределить код, вынести больше в плагины или модули
весьма утопичный взгляд.
Post Reply

Return to “Обсуждение Far Manager”