LINUX.ORG.RU

[велосипед] Файловый менеджер: «С» или Ruby?


0

0

Доброго времени суток всем.

Исторически сложилось, что ни один из опробованных мной файловых менеджеров не понравился абсолютно и полностью, и помочь в разработке особо понравившихся я по некоторым причинам не хочу или не могу. Таким образом хочу покататься.

Писать я могу на двух языках: C и Ruby, и мне сложно решить какой из них использовать. Программа будет консольной, поэтому для интерфейса будет использована библиотека ncurses. В применении одного из вышеназванных языков, я вижу следующие достоинства и недостатки:

Ruby:

  • Пишется достаточно быстро и весьма просто(язык много делает за меня)
  • Работает уже не так быстро, но для поставленной задачи это и не критично, никаких сложных расчетов проводить не нужно
  • Программу можно легко расширять, плагины и т.п

«C»:

  • Тепло и уютно
  • Пишется уже не так быстро, как на Ruby, но, возможно, большая степень контроля чего-то стоит в данном конкретном случае
  • Работает еще как быстро, но зачем мне это?
  • Расширять немного сложнее, чем с Ruby
  • Хочу поупражняться в этом языке

Хотелось бы услышать мнения. Очень вероятно что я упустил что-то важное в своих рассуждениях, если это так - дополните пожалуйста.

Прошу не предлагать изучить некий язык Х, который для поставленной задачи лучше С и Ruby вместе взятых, потому как предвижу флейм «какой язык круче для всего-всего».


Re: [велосипед] Файловый менеджер: "С" или Ruby?

Python. Тем более, что на ЛОРе тут у тебя пара единомышлеников будет :)

...

Кстати, дурацкий вопрос - а какой консольный движок в NDN юзается? Оно, хоть и глючное, но работает в консоли намного быстрее, чем mc...

KRoN73 ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Ruby.

smh ★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Программа будет консольной, поэтому для интерфейса будет использована библиотека ncurses.

Еще один товарищ, который пытается "сделать правильно".

Каждый проект, который пытаются сделать на ncurses, сразу превращается в неюзабельное гавно, будь то MC, aptitude или еще что. Такое впечатление, что эта библиотека перехерачиват в людях представления о нормальном текстмодовом интерфейсе, и они начинают создавать какие-то фееричные поделия.

xintrea ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Блин - нечего делать - повтыкай в ядро, хоть польза сообществу.

Даже неуч-анестезиолог смог за несколько лет вкурить исходники и создать пару патчей.

А уж говнофайловых говноменеджеров и так на любой цвет.

gkrellm ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

C для маленьких утилит. Пиши тогда уж на Ruby. И лучше сначала подумай, что это такое будет и зачем, а потом пиши.

alex4 ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Моё мнение: начинание хорошее, только не хватает описания идеи. Каким вы видите идеальный файловый менеджер?

Руби не советую. Зависимость от руби для консольного fm - это очень неприятно. Обязательно посмотрите http://www.s-lang.org/

Hjorn ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Еще один товарищ, который пытается "сделать правильно".

Вполне естественное желание.

> Каждый проект, который пытаются сделать на ncurses, сразу превращается в неюзабельное гавно, будь то MC, aptitude или еще что.

Ушибленный гуём или консолью? Одно из двух.

Hjorn ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

про тепло и уютно это вы пошутили верно, после пистона и разных пёрлов Си сразу шибает сегфолтами ;]

hizel ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

На чём что-то писать вообще-то дело __исключительно__личное__. Это всё равно что спросить следующее:

Доброго времени суток всем.

Исторически сложилось, что ни одна из имевшихся у меня девушек не понравилась абсолютно и полностью, и помочь в разработке особо понравившихся я по некоторым причинам не хочу или не могу. Таким образом хочу покататься.

Выбрать я могу из двух: блондинка и брюнетка, и мне сложно решить какую из них предпочесть. В отношениях с одной из вышеназванных девушек, я вижу следующие достоинства и недостатки:

Блондинка:

⚫ бла-бла-бла

⚫ бла-бла-бла

⚫ бла-бла-бла

Брюнетка:

⚫ бла-бла-бла

⚫ бла-бла-бла

⚫ бла-бла-бла

Хотелось бы услышать мнения. Очень вероятно что я упустил что-то важное в своих рассуждениях, если это так - дополните пожалуйста.

Прошу не предлагать найти некую рыжую, которая для поставленной задачи лучше блондинки или брюнетки вместе взятых, потому как предвижу флейм "какой цвет волос круче для всего-всего".

recaptcha ()

Re: [велосипед] Файловый менеджер:

> Каждый проект, который пытаются сделать на ncurses, сразу превращается в неюзабельное гавно, будь то MC, aptitude или еще что. Такое впечатление, что эта библиотека перехерачиват в людях представления о нормальном текстмодовом интерфейсе, и они начинают создавать какие-то фееричные поделия.

и ты наверно можешь привести что-то близкое к mc ?

xpahos ★★★★★ ()
Ответ на: Re: [велосипед] Файловый менеджер: от xpahos

Re: [велосипед] Файловый менеджер:

>и ты наверно можешь привести что-то близкое к mc ?

Если в плане интерфейса, а не функционала, то NDN делает mc по всем статьям :) Жалко, что пока неюзабелен совсем.

KRoN73 ★★★★★ ()
Ответ на: Re: [велосипед] Файловый менеджер: от KRoN73

Re: [велосипед] Файловый менеджер:

> Если в плане интерфейса, а не функционала, то NDN делает mc по всем статьям :) Жалко, что пока неюзабелен совсем.

и зачем его тогда упоминать ?

xpahos ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

напиши на руби прототип, за вечер-два. хватит чтобы понять что этот тоже не то что ты искал, установить emacs и использовать dired, расширяя его в случае чего на elisp.

если таки не разочаруешься - дописывай медленные места на C. или перепиши на сях с нуля, когда будешь уверен, что рабочий прототип - то что тебя действительно устраивает и он будет стоить потраченных сил. много времени сэкономишь.

volh ★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Я бы не стал писать на C немаленький, в перспективе, проект. Вот уж где можно велосипедов нагородить.

mipt_student ()
Ответ на: Re: [велосипед] Файловый менеджер: от KRoN73

Re: [велосипед] Файловый менеджер:

> Если в плане интерфейса, а не функционала, то NDN делает mc по всем статьям :) Жалко, что пока неюзабелен совсем.

Походу Некромансер написан на паскале, полагаю и оконная либа у него своя.
Вообще DN был написан на борланд паскале с использованием Turbo Vision. Но в то время RitLab'овцы ее сильно перелопатили и получили весьма юзабельный файловый менеджер. А когда они его сделали фриварным, то вообще стало чудесно.
Правла в это время Евгений Рошал уже выпустил первую версию FAR...

p.s. Argus (тоже от RitLab) - фидошная "мыльница" была весьма приятной штукой. Хотя T-Mail был весьма хорош.

andreyu ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?


заведомо не C
скорее, C++
впрочем, выбор руби - вопрос конечно интересный. может быть, что-то в этом и есть.

// wbr

klalafuda ★☆☆ ()
Ответ на: Re: [велосипед] Файловый менеджер: от andreyu

Re: [велосипед] Файловый менеджер:

> p.s. Argus (тоже от RitLab) - фидошная "мыльница" была весьма приятной штукой. Хотя T-Mail был весьма хорош.

тмыл рвал его как Тузик грелку.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

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

Хотя, пилю это пока громко сказано. Как там выше было сказанно, навигатор рулил за счет возможностей Turbo Vision, а адекватных консольных аналогов под линуксом я не нашел (есть биндинги к борландовскому tv, но это не то) и следовательно прежде чем начать писать сам файловый менеджер стоит задача написать клон турбо вижна. На этой задаче и застрял, похоже, надолго. Поскольку задачка та еще.

YogSagot ★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Хотя, пилю это пока громко сказано. Как там выше было сказанно, навигатор рулил за счет возможностей Turbo Vision, а адекватных консольных аналогов под линуксом я не нашел (есть биндинги к борландовскому tv, но это не то) и следовательно прежде чем начать писать сам файловый менеджер стоит задача написать клон турбо вижна. На этой задаче и застрял, похоже, надолго. Поскольку задачка та еще.

ну есть порт TV под *NIX. в принципе, вполне юзабельный. там конечно нужно подпилить по мелочам, но последний раз, когда я его смотрел (года 3 назад) он вполне собирался и даже работал. естественно без биндингов к питону, но, думаю, это далеко не такой чтобы сложный вопрос. на бакенде были AFAIR SLang и, опционально, ncurses.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> ну есть порт TV под *NIX. в принципе, вполне юзабельный. там конечно нужно подпилить по мелочам, но последний раз, когда я его смотрел (года 3 назад) он вполне собирался и даже работал. естественно без биндингов к питону, но, думаю, это далеко не такой чтобы сложный вопрос. на бакенде были AFAIR SLang и, опционально, ncurses.

впрочем, IMHO, было бы правильнее просто написать свой нативный a'la TV. благо, там делов не так чтобы много. главное, аккуратно разобраться с артефактами бакенда, чтобы не получилась очередная кособокая обвязка как у mc. но тут уж селяви, это не проблемы ни tv ни языка, это проблемы криворуких курсов :-/

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

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

Поддерживаю. Однако не будет ли сей лисапед лишним? Что-то никто не вспоминает это: http://wiki.freepascal.org/Free_Vision

За сим предлагаю забить на C и Руби и писать на старом добром паскале.

dizza ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>впрочем, IMHO, было бы правильнее просто написать свой нативный a'la TV. благо, там делов не так чтобы много. главное, аккуратно разобраться с артефактами бакенда, чтобы не получилась очередная кособокая обвязка как у mc. но тут уж селяви, это не проблемы ни tv ни языка, это проблемы криворуких курсов :-/

Имненно об этом и идет речь. Именно по этому я и искал альтернативу ncurses, в сторону которого даже смотреть не желаю. В S-Lang не въехал, для вывода пока-что думаю использовать termbox, для ввода - libgii (хотя у меня есть сомнения, не слишком ли монстроузна эта связка при всех ее преимуществах).

YogSagot ★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>За сим предлагаю забить на C и Руби и писать на старом добром паскале.

Зачем нам второй NDN? Хочешь писать на паскале - лучше в их проект код закоммить (хотя стой, у них там опенсорс?).

YogSagot ★★ ()
Ответ на: Re: [велосипед] Файловый менеджер: от klalafuda

Re: [велосипед] Файловый менеджер:

> > p.s. Argus (тоже от RitLab) - фидошная "мыльница" была весьма приятной штукой. Хотя T-Mail был весьма хорош.
> тмыл рвал его как Тузик грелку.


Не припомню, когда это они выходили на ринг.

andreyu ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Тут на лоре пробегал один чувак, который тоже хотел делать свой двухпанельный файловый менеджер на курсах, но курсес настолько кривой кусок добра, что тот чел стал писать свою библиотеку для работы с терминалами. Тот чувак, если ты меня слышишь, снизойди в этот топик.

sobrano_bez_parity ()
Ответ на: Re: [велосипед] Файловый менеджер: "С" или Ruby? от sobrano_bez_parity

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>Тот чувак, если ты меня слышишь, снизойди в этот топик.

http://www.linux.org.ru/whois.jsp?nick=nsf

termbox, про который я говорил, как раз таки его творение. Довольно приятное на первый взгляд.

YogSagot ★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> termbox, про который я говорил, как раз таки его творение. Довольно приятное на первый взгляд.

ну это на первый. его ещё пилить пилить и пилить. по крайней мере через putty он выдаёт весьма неадекватный результат. например, Ctrl+1 == CTRL+7, CTRL+/, CTRL+_. Alt+foo вообще не работает, даже голые F1..F4 выдаются как CTRL+2, CTRL+~. вывод только в UTF8. ну и так далее. в общем, курсы, сланг & K - это конечно какашка, но ему до них ещё расти и расти.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Не-а. NDN закрытый. Иначе бы коммьюнити давно уже поддержку UTF-8 сделало :)

Как это? Сорцы же DN были открыты, следовательно и Некромансер должен быт открытым. Просто оно на паскале написано, вот никому и не нужно. Тем более, что точили его под ФС от Майкрософт.

andreyu ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>Сорцы же DN были открыты, следовательно и Некромансер должен быт открытым.

http://ndn.muxe.com/

Не нашёл там ни слова про сорцы. И Linux-версия у них идёт уже готовым бинарником.

KRoN73 ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Не-а. NDN закрытый. Иначе бы коммьюнити давно уже поддержку UTF-8 сделало :)

http://www.dnosp.com/e_index.php
http://www.ritlabs.com/en/products/dn/ в целом

ps: как там с UTF8 я не в курсе.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>http://www.dnosp.com/e_index.php

Это - только DOS и OS/2.

http://www.ritlabs.com/en/products/dn/

Только DOS.

...

Это, видимо, сорцы оригинала. Под Linux их никто, в отличии от NDN не портировал...

KRoN73 ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Это, видимо, сорцы оригинала. Под Linux их никто, в отличии от NDN не портировал...

мне почему то кажется, что дешевле написать новый с нуля нежели портировать far или dn. другой вопрос, что бакенды в линуксе - полное дерьмо и копаться в этом очень мало кому охота. иначе бы клонов и аналогов mc было более чем достаточно. причём юзабельных. не особо навороченный двухпанельник - это отнюдь не бог весть какой сложности проект.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>мне почему то кажется, что дешевле написать новый с нуля

Именно.

И я за Python :)

>другой вопрос, что бакенды в линуксе - полное дерьмо

Угу. Нашёл бы я консольную либу уровня того, что в VirtualPascal в NDN используется - занялся бы двухпанельником сам уже год тому назад. Но все мои потуги заткнулись именно на этом. ncurses - это ужас на крыльях ночи. Не по работе с ним, это бы можно б было обёртку написать, а по некомфортности. Даже в mc оно не особо приятно, но хоть терпимо. В Питоне же - кранты. Отрисовка тормозная...

>не особо навороченный двухпанельник - это отнюдь не бог весть какой сложности проект.

Простая запускалка файлов - это несколько десятков файлов. Остальное - продуманный API и механизм плагинов :) Можно делать долго, неторопливо, всем сообществом и под свои задачи.

...

Так что, похоже, нужно с низкоуровневого консольного тулкита начинать писать. Но вот этим мне заниматься уже категорически лень :)

KRoN73 ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Так что, похоже, нужно с низкоуровневого консольного тулкита начинать писать. Но вот этим мне заниматься уже категорически лень :)

ну на этом как водится и порешим :) в конце-концов, mc не такое уж и УГ. по крайней мере человек ко многому может привыкнуть. даже к mc. хотя да, после dn/ndn да что там, обычного nc это криворукое поделие выглядело просто ужасающе. лучше оно не стало за эти годы. вопрос лишь привычки. вон, пишут же что-то некоторые мазохисты в емаксе или, прости господи, виме. 'и ничего, и ничего, и ничего...' (с)..

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

>по крайней мере человек ко многому может привыкнуть. даже к mc

Это точно :)

>лучше оно не стало за эти годы

Интерфейсно-тулкитно - нет. А вот по функционалу в последний год начались большие подвижки. Правда, перенос наработок в официальную ветку больше похож на движение три шага вперёд + два шага назад, но процесс пошёл.

KRoN73 ★★★★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> Интерфейсно-тулкитно - нет. А вот по функционалу в последний год начались большие подвижки. Правда, перенос наработок в официальную ветку больше похож на движение три шага вперёд + два шага назад, но процесс пошёл.

как я уже не помню сколько лет назад начинал первый запуск mc с настройки клавиатуры под конкретный терминал, так и сегодня. все то же самое. ничего не поменялось. как небыло Alt/Shift-Fx так и нет. как.. ну и так далее. по функционалу же и обычный mc-4.6.1a-35.el5 более чем достаточно. пихать в него с текущими косяками плагины - себе дороже.

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

А что уважаемая публика скажет насчет плюсовой обязки для (n)curses: http://ndk-xx.sourceforge.net/ ? Три месяца назад я скомпилил его пример (правда 2 строки пришлось поправить) -- и окошки окошатся, менюшки менюшатся, табы табятся...

www_linux_org_ru ★★★★★ ()
Ответ на: Re: [велосипед] Файловый менеджер: "С" или Ruby? от www_linux_org_ru

Re: [велосипед] Файловый менеджер: "С" или Ruby?

> А что уважаемая публика скажет насчет плюсовой обязки для (n)curses: http://ndk-xx.sourceforge.net/ ? Три месяца назад я скомпилил его пример (правда 2 строки пришлось поправить) -- и окошки окошатся, менюшки менюшатся, табы табятся...

если на бакенде у неё все те же курсы, то их генетические болезни в полный рост будут присутствовать и в любой обвязке. дело ведь не в том, что с ними неудобно работать. дело в том, что они сами по себе криво работают :-/

// wbr

klalafuda ★☆☆ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Ruby, однозначно

Goganchic ★★ ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Java/C#/VB.NET

Deleted ()

Re: [велосипед] Файловый менеджер: "С" или Ruby?

Моё мнение: начинание хорошее, только не хватает описания идеи. Каким вы видите идеальный файловый менеджер? Руби не советую. Зависимость от руби для консольного fm - это очень неприятно. Обязательно посмотрите http://www.s-lang.org/

То что я не опубликовал описания не означает что его нет :) За s-lang спасибо, посмотрю. Действительно не хочется писать на ncurses т.к. уже приходилось применять, впечатления не очень.

C для маленьких утилит. Пиши тогда уж на Ruby. И лучше сначала подумай, что это такое будет и зачем, а потом пиши.

Ну да, например ядро Linux. Я достаточно долго обдумывал эту затею, просто поставленный вопрос не об этом.

На чём что-то писать вообще-то дело __исключительно__личное__.

В данном случае мне все равно. Просто хотелось бы себя хоть немного предостеречь от неправильного(нецелесообразного с моей точки зрения) выбора.

напиши на руби прототип, за вечер-два. хватит чтобы понять что этот тоже не то что ты искал, установить emacs и использовать dired, расширяя его в случае чего на elisp.

если таки не разочаруешься - дописывай медленные места на C. или перепиши на сях с нуля, когда будешь уверен, что рабочий прототип - то что тебя действительно устраивает и он будет стоить потраченных сил. много времени сэкономишь.

Спасибо за совет, так и попробую, за исключением прототипа: уже есть vfu, почти самое оно.

Я бы не стал писать на C немаленький, в перспективе, проект. Вот уж где можно велосипедов нагородить.

Позвольте спросить, каковы возможные варианты велосипедов?

Btw, я хочу писать что-то очень похожее на vfu ( http://cade.datamax.bg/vfu/ ).

age ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.