На чем написан total commander

Обновлено: 02.07.2024

Представляю вам давно обещанное мною на этом блоге эксклюзивное интервью с автором известной во всем мире программы Total Commander - Кристианом Гислером . Total Commander начинает свою публичную историю в Швейцарии в 1993 году и принадлежит к категории программ, которые принято называть на Западе как Orthodox File Manager (OFM), или говоря по-русски - двухпанельный файл-менеджер. Мы побеседовали с автором программы о его будущих планах и истории проекта, а также о технических подробностях его разработки, которые традиционно остаются в тени от его многочисленных пользователей, не оставив без внимания и личные малоизвестные факты, связанные с этим известным разработчиком.

Это - первое большое интервью с Кристианом на русском. Кроме того, в отличии от множества англоязычных интервью, которые были сделаны до меня, здесь он по-моему впервые достаточно откровенно делится техническими деталями своей разработки - и я считаю именно эта составляющая, - наиболее информативная и уникальная часть этого интервью для всех любопытных разработчиков, и просто для людей преданных Total Commander'у. Интервью взято специально для Softkey.info - Онлайновый журнал о мире программного обеспечения .

Приятного вам чтения!

Широко известный факт, что вы до сих пор пишете свой файл-менеджер на допотопном Delphi 2. С чем это связано?

Я являюсь обладателем лицензионных версий всех последних Delphi, поэтому я достаточно хорошо представляю себе их возможности. Но дело тут вот в чем: компиляция exe-файла в Delphi 2 дает на выходе файл ощутимо меньший по размеру, чем, например, в Delphi 7. Кроме того, тестирование показывает, что exe-шник из-под Delphi 2 работает заметно быстрее, чем его полный аналог выпущенный компилятором Delphi 7. Я сталкиваюсь с тем, что люди часто удивляются, что Total по-прежнему работает очень быстро - я собираюсь сохранить эту его особенность, и, отчасти, секрет тут в правильно выбранном компиляторе.

Добавлю, что кроме этого, Delphi 2 генерирует очень универсальный код, например, с полной поддержкой 16-битовых приложений или Windows 95/98 - у меня до сих пор хватает таких клиентов. В тоже самое время, TC прекрасно себя чувствует и в Windows 7.

Ранее многократно публично вы заявляли, что закончили первый этап портирования Total Commander на Lazarus/Free Pascal. Как сейчас продвигается эта работа? Откуда такое экзотическое желание?

Да, я веду такую работу. Самая главная причина, почему я хотел попытаться портировать TC под Lazarus, это то, что Lazarus может создавать нативные 64-битные приложения, а Delphi - нет. Разработчики Delphi уже много лет анонсируют выход 64-битовой версии среды разработки, но её до сих пор нет. В то же самое время, уже сейчас, например в Германии, 46% процентов всех компьютеров продаётся с предустановленной 64-битовой версией Windows. Я постоянно сталкиваюсь с тем, что рядовые пользователи, подобно ситуации с мегапикселями в фотокамерах, считают, что чем больше цифра чего-то - тем лучше, и поэтому 64-битовые компьютеры гораздо круче 32-битовых, и естественно - им нужна 64-битовая версия TC. Текущая 32-битовая версия TC хорошо работает и в 64-битовой среде, но большинство людей не привыкли думать рационально. Сейчас этот вопрос стоит для меня достаточно остро.

Насколько я знаю, уже существует бета-версия 64-битового компилятора Delphi, как минимум подписчикам доступна для закачки демо-версия консольной версии 64-битового компилятора, думаю, осталось ждать совсем немного (прямо сейчас на сайте-разработчике Delphi embarcadero.com написано, что " We expect the 64-bit version of Delphi to be ready in mid-2010 "):

Ну, первый раз анонс выхода 64-битовой версии компилятора появлялся на сайте разработчиков Delphi в 2009 году, потом был перенос на лето 2010, и кстати говоря, теперь уже осень 2010, но ничего нет. Короче, я поверю в это только тогда, когда сам увижу его в работе, и возможно, если он покажет себя хорошо - сверну разработку версии под Lazarus. Пока же я не намерен ждать пустых обещаний больше. По слухам, Delphi 64-бита появится лишь где-то около 2012 года, или как минимум, его более-менее рабочая версия.


Он чрезвычайно неплох для полностью бесплатного продукта, но всё же у него есть много проблем и ошибок. Самая большая для меня проблема - отсутствие хорошей документации, например, я сейчас бьюсь над попыткой понять методом проб и ошибок отличия в реализации inline-ассемблера в Delphi и его аналога в Lazarus. Также время компилирования и линковки в Lazarus намного больше, чем в Delphi. Даже в очищенном от кода отладки исполняемом файле ( stripped executable ) почему-то всё равно присутствуют данные для отладки, что замедляет выполнение приложения. Ну и конечно в самой реализации компилятора присутствуют ошибки, что требует быть постоянно начеку. Например, функция str() не помещает закрывающий 0 в строку, когда используется массив из переменных.

Есть и приятные моменты. Например, полная поддержка Unicode в TC была написана мной вручную, тогда как в Lazarus все контролы изначально поддерживают Unicode и базируются на UTF-8.

Очень долгое время ходили слухи, что вы готовите Linux-версию Total Commander'a, чем закончилась эта затея?

Да, я делал серьёзную попытку переноса TC на Delphi for Linux (Kylix) пару лет тому назад. Но я столкнулся с очень глобальными проблемами, которые лежали за пределами самой среды разработки. Хотя все визуальная часть интерфейса работала отлично, все низкоуровневые эффекты сделали перенос практически невозможным. Например, интенсивная работа с потоками в Linux (копирование в фоне, FTP и другое) окончательно доконала меня своими случайными мистическими ошибками, причины которых установить мне так и не удалось.

Интересно, какие ещё были проблемы с Kylix?

Например, другая большая проблема, что в Linux нет аналога виртуального контрола Listbox, который крайне необходим мне для отображения больших списков. В моем нынешнем Listbox'e при добавлении каждой строки вызывается callback-функция, которая сама заполняет эту строку данными. В реализации Listbox в Linux при заполнении каждой строчки каждый раз создаётся специальный объект(!), что приводит к очень медленной работе со списками. Тем более, Kylix использует Qt toolkit, в котором вообще нет никакого виртуального ListBox'a.


Очень жаль, что так всё закончилось: очень многим пользователям Linux не хватает старого-доброго Total Commander'a.

Возможный выход - использовать Wine. Я специально тестировал совместимость TC с Wine, всё должно работать нормально, хотя и с некоторыми очевидными ограничениями.

Во-первых, разработка 32-битовой версии TC останется на Delphi.

Иначе говоря, 64 бита - сейчас главная текущая цель?

Да, но это на самом деле достаточно масштабная цель. Нужно понимать, что даже если мы и выпустим успешную 64-битовую версию, это сразу порождает новые проблемы, т.к. все имеющиеся плагины - 32-битные. Все они перестанут работать как один, если только авторы плагинов оперативно не перепишут их под 64-бита. Как временный выход, я планирую загружать 32-битовые составляющие TC через скрытую отдельную программу (tcmdx32.exe), таким же способом, которым я сейчас вызываю расширения меню в 64-битовом Explorer'e.

Если не секрет, каковы маштабы проекта для текущей версии TC 7.55a?

Все *.pas-файлы проекта занимают более чем 10 мегабайтов. Всего написано более 200 000 строк кода.

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

Лично меня очень смешит, когда я регулярно получаю на свой официальный e-mail (указанный в About программы) вопрос, знаком ли я с автором Total Commander?

Вероятно, у некоторых ваших клиентов есть представление, что Total Commander, это огромная корпорация, а что на самом деле представляет из себя TC и его разработчик?

Total Commander пишется мною и моим братом. Это работа, которая сейчас занимает у нас весь рабочий день. Непосредственно для программирования у меня зарезервировано 4 утренних часа во все рабочие дни, всё остальное время я занят административными вопросами и поддержкой пользователей. Сейчас мне 40 лет, я профессионально занимаюсь только Total Commander'ом уже 17 лет.

Что стало отправной точкой, почему вы начали писать свой файл-менеджер?

Я начал писать TC во время получения образования, в свободное от учебы время по вечерам. Подобные файл менеджеры уже были для DOS, но их не было под Windows. Тогда я мечтал, что хорошо бы было создать такую программу, которая в точности исполняла бы все возможные команды пользователя, давая полный контроль, над тогда ещё достаточно экзотическим и сложным компьютером - и вот сейчас, это у меня почти получилось!

Насколько хорошо позволяет зарабатывать Total Commander? Успешна ли коммерчески эта программа?

Да, вполне. Total Commander позволяет мне поддерживать уровень жизни выше среднего в месте моего проживания.

Каков секрет успеха в области shareware, с вашей точки зрения?

Во-первых, это способность находить незанятые крупными компаниями ниши, где этим программным гигантам просто невыгодно работать. Например, клиентская ниша TC очень узка, такая компания как Symantec после долгих попыток просто вынуждена была свернуть разработку знаменитого Norton Commander'a , просто потому, что для крупных компаний это, очевидно, убыточное направление.

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

В-третьих, в коммерческой разработке важна способность уделять максимум внимания даже мелочам. Например, мой TC прекрасно работает в Windows 95, также как и в Windows 7, или даже в Wine. Только все тщательно выверенные детали делают продукт в целом совершенным, и пользователи это, поверьте, сразу чувствуют.

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

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

Какие черты и возможности в TC были наиболее сложны в реализации, и какими из них вы гордитесь само сильно?

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

Я не горжусь никакой из отдельных функций TC, но оглядываясь назад я очень рад тому, что ещё в начале развития программы я заложил возможность расширения возможностей программы через внешние плагины. Хотя в те далекие годы были определенные сомнения в целесообразности этого, сейчас - это важнейшая возможность программы, которая позволяет независимо от меня (основного разработчика) наращивать любые самые экзотические возможности и функции. Признаю, что жизнь доказала, это один из важных элементов нынешней относительной популярности моей программы. Например, я просто не мог и мечтать, что у программы будет когда-то прямой доступ к Linux-разделам ext2/ext3 или Raiser, но это было реализовано именно в плагинах уже сторонними разработчиками!

Хочу отметить, что мы поддерживаем плагины не только на уровне самой программы, но и на уровне его частей, например Lister'a. К примеру, интеграция возможностей сторонней программы IrfanView превращает Lister в чрезвычайно мощный фото-вьювер.

Сейчас я работаю над версией TC для Android, которую я пишу на Java. И хотя работа ещё в самом начале, уже сейчас для меня очевидно, что общая концепция устройства Android настолько сильно отличается от Windows, что я вынужден начинать с нуля практически во всем. Поэтому это скорее не портирование, а именно написание нового приложения в общих чертах повторяющего функциональность и интерфейс TC.

Как вы относитесь к свободным проектам и открытому исходному коду?

Я отношусь к ним положительно, я использую их в том числе в своей работе. Я также опубликовал много программ как freeware, например мой Total Commander for PocketPC, Total Commander for Windows Mobile и Windows CE, которые является моим хобби на протяжении уже многих лет. Некоторые мои программы распространяются с открытым исходным кодом, например, некоторые плагины. Считаю, что все виды программ могут прекрасно сосуществовать, при этом каждая из этих форм распространения имеет свои преимущества и недостатки, свои разные цели и предназначение.

Например, Linux-версия Total Commander требовала очень значительных временных затрат для её создания, в то время как работа над Windows-версией итак занимает почти все мое время. К тому же философия пользователей Linux такова, что они привыкли получать все бесплатно, а я не могу физически тратить столько своего времени для работы над бесплатной версией. Именно поэтому разработку Linux-версии TC принято решение отложить на неопределенный срок.


Какую версию Windows используете лично вы и почему?

На моем компьютере стоит Windows 7, мне она кажется очень удобной и я нахожу многие её функции по-настоящему удачными и прогрессивными. На моем ноутбуке, которым я также очень интенсивно пользуюсь, установлена Windows XP. Я рекомендую устанавливать Windows 7 пока только на настольные компьютеры, и то только, если у вас действительно достаточно мощный процессор и установлено много RAM (ОЗУ). Лично я очень не люблю любых задержек и подвисаний, поэтому всегда очень щепетильно слежу, чтобы мой Total оставался таким же быстрым всегда и на любом компьютере.

Над чем вы работаете прямо сейчас?

Готовится новая версия 7.56, в которую войдут исправления всех ошибок, обнаруженных со времени выхода последнего релиза 7.55a. Я думаю, это будет самая стабильная версия, и может быть, даже последняя в 7-ой ветке этой программы.

Cпециально для Softkey.info - Онлайновый журнал о мире программного обеспечения

русский total commander total commander бесплатно бесплатный total commander бесплатный total commander скачать total commander скачать бесплатно файлменеджер тотал коммандер скачать тотал коммандер скачать тотал тотал командер скачать командер скачать тотал командер windows commander total windows commander windows commander для windows 7 total commander для windows 7

Сегодня мы попробуем разобраться, почему Open Source приложениями никто не хочет пользоваться. Статья получилась довольно длинной, но не пугайтесь, будет интересно.

Предисловие. Почему я выбираю свободное ПО и какое право я имею его критиковать?

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

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

Код открыт — всё видно. Телеметрия и мутная активность не пройдет незамеченной. Кроме того, основной целью сбора данных всё-таки является заработок. СПО разрабатывается энтузиастами или НКО, принадлежит сообществу и заработать своим создателям не пытается. Ну и приятные бонусы: можно делать форки, участвовать в разработке, ничего не платить и прочее. В общем, с тех пор я действительно полюбил FOSS и перепробовал огромное количество решений, многими пользуюсь и сейчас, и потому считаю, что имею полное право хвалить и критиковать продукты, которыми пользовался сам, что и буду делать в сегодняшней статье.

Не подумайте, что это хейт. Я все ещё фанат СПО и считаю его нашим будущим, тем, что спасет мир от зверства государств и IT монополий. Я сам периодически помогаю разработчикам, как могу: открываю issues, рапортую о багах и сбоях, перевожу интерфейсы. Я пишу эту статью как раз потому, что желаю СПО развития и процветания и хочу ему в этом помочь.

Ну и дисклеймер: Все, что я пишу в этой статье — моё личное мнение, я буду рад конструктивной дискуссии в комментариях. Довольно болтать, перейдем к основной теме этой статьи.

Причем тут Total Commander?

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

Каждый вспомнил что-то свое: кто-то VIM, кто-то 7-Zip, а кто-то, как я, Total Commander.

image

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

Никто не хотел бы писать свой первый "Hello world" в VIM'е. Никто не хотел бы, чтобы на его первом ПК стоял CLI Arch Linux. Это слишком сложно, непонятно, отталкивающе для новичка. Должна быть простая, приятная глазу, интуитивно понятная и дружелюбная альтернатива. Что-то, с чего можно начать, и только потом, если захочется, переходить к чему-то более сложному.

Так в чем же проблема СПО? А в том, что среди всего многообразия свободных программ красивых, дружелюбных и интуитивно понятных — единицы. И это огромная проблема для всего FOSS движения.

Порог входа настолько высок, а UI/UX настолько уступает проприетарному ПО, что новых пользователей привлечь никак, кроме как запугиванием, невозможно.

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

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

Давайте рассмотрим примеры, и вы сами в этом убедитесь

1. Google Play VS F-Droid

F-Droid — это магазин приложений, такой же как Google Play, однако там распространяются исключительно приложения с открытым исходным кодом. Приложения также проходят модерацию и "проверку на открытость". Так, например, клиент для YouTube может получить пометку "Популяризирует несвободные сервисы". Звучит здорово, давайте посмотрим, как это выглядит.

Начнём сравнение со стартовой страницы:

image

В Google Play, едва зайдя в приложение, мы видим игры. Вверху и внизу мы видим кнопки фильтров и категорий, строку поиска. Довольно удобно. Все иконки оформлены в едином стиле (прямоугольник со скруглёнными углами). Под каждым приложением сразу виден его рейтинг. К дизайну у меня вопросов нет.

Посмотрим теперь на домашнюю страницу F-Droid:

image

Мы видим множество плиток разного размера и формы с иконками приложений, их названиями и кратким описанием. Внизу мы видим кнопки вкладок и плавающую иконку поиска (который, кстати, работает так плохо, что вы можете не найти там приложение, даже если наберете его название буква-в-букву, не говоря уже о том, чтобы, как в Google Play, набрать "редактор фотографий" и увидеть в выдаче подходящие варианты).

Сразу возникает множество вопросов. Почему плитки разных размеров? Почему все иконки разной формы? Почему какие-то иконки растянуты и потеряли четкость? Что значит "Последние"? Они недавно обновились? Разработку сворачивают и это их последний релиз? Их последними добавили на площадку? Ничего не понятно. Кстати, никаких анимаций, в отличие от Google Play, тут нет, все выглядит очень дергано и топорно. Кроме того, прежде чем сделать этот скриншот, мне пришлось подождать, пока иконки прогрузятся практически 10 секунд… При скорости соединения в 90 мбит/с! Проекту 10 лет, с финансированием ему повезло больше, чем многим другим, ну почему всё так плохо?

Тут кто-то меня перебьёт и скажет: "Какие анимации? Работает и слава богу. Какой дизайн? Ну потерпи ты 10 секунд, пока загрузится. Тебе шашечки или ехать надо?"

В этом и есть проблема. Всем кажется, что дизайн и удовольствие от пользования продуктом — излишества, на которые нет времени. Я напомню: F-Droid существует уже 10 лет, а времени все нет. Нет не времени, а понимания. Эту проблему я и пытаюсь поднять. О каком развитии Open Source можно говорить, если ворота в его мир выглядят так?

Продолжим наше сравнение. Посмотрим на страницу приложения в обоих магазинах:

image

В Google Play все четко, понятно и красиво. Вижу скриншоты, видео-презентацию, рейтинг, количество загрузок. Ниже — описание, теги и категории, отзывы пользователей, похожие приложения. Вопросов никаких, все сделано на уровне.

image

Четверть экрана занимает шапка. Хочу заметить, что я видел ее заполненной от силы 3 раза, чаще всего там просто ничего нет. Четверть экрана на выброс. Ниже у нас… Не угадали! Changelog! Зачем он мне? Я еще никогда не устанавливал это приложение, я зашёл сюда прочитать про него и решить, нужно ли оно мне. Зачем мне знать, какие баги вы недавно исправили? Ниже мы видим скриншоты. Тут у меня много претензий. Не к этому приложению в частности, а к F-Droid в целом. Разработчики магазина добавили поля для описания и скриншотов, шапки, но не сделали их заполнение обязательным. Множество девелоперов оставляет их пустыми. Что еще страннее, я регулярно нахожу в F-Droid приложения, у которых есть скриншоты, но сделаны они были… На Android 4.4 KitKat! Помните такой? Интерфейс на фото давным-давно был изменен, уже годы приложение выглядит по другому. При этом обновления выходят стабильно, там пишут изменения, но никто и не думает обновлять скриншоты. У меня это не укладывается в голове. Кстати, скриншоты, по доброй традиции, грузятся 10 секунд. Оценки или счетчик скачиваний отсутствуют в принципе. Я просто не знаю, как я должен судить о приложении до его загрузки.

2. Google Maps VS OsmAnd

Представим, что вы ищете открытую и свободную альтернативу Google Maps. На ум, естественно, приходит Open Street Map (OSM), однако OSM — это только сама карта. Для мобильного телефона нужно еще приложение-просмотрщик. Наиболее популярным является приложение OsmAnd, расширенную версию которого можно скачать в F-Droid. Давайте сравним его с популярнейшим Google Maps.

Попробуем выполнить поиск "Москва" в Google Maps:

image

Через долю секунды мы увидим Москву на карте, краткую справку о месте, фотографии, отзывы, и так далее. Приложение работает быстро и отзывчиво, не тормозит и не дергается, все изменения на экране сопровождаются приятными и плавными анимациями. Сам дизайн карты выглядит очень удобным: карта не перегружена деталями и информацией, а бледная цветовая схема позволяет сконцентрировать внимание в нужном месте.

Посмотрим на OsmAnd.

image

Цветовая схема более пестрая, чем в GMaps, но пользоваться этим можно. Шрифты легко читаются, карта как карта. Доп. информацией о месте приложение нас не балует, но бог с ним. В чем же проблема? А проблема в том, что приложение не умеет загружать карты в режиме реального времени… Совсем! Когда я набрал в поиске "Москва", мне было предложено загрузить карту региона (90 МБ) с не самых быстрых серверов OSM. На это ушло больше минуты моего времени. А жизнь ведь коротка… Помимо этого, приложение работает ну очень так себе. Тормозит, дергается, подвисает, ни о какой плавности прокрутки карты речи не идет. Не подумайте, это работает, но плохо. Да, 5-7 лет назад, не имея возможности с чем-либо сравнить, я бы сказал, что это отличное приложение, но в 2020 году, зная, как могут и должны выглядеть качественные карты для Android, пользоваться OsmAnd совсем не хочется.

Не в пользу приложения играет и сам Open Street Map. К сожалению, проект, похоже, переживает не лучшие времена. Карты обновляются очень редко и выборочно, информация, даже в крупных городах, серьезно устарела: иногда на OSM не найти целых улиц и дорог, построенных за последние 5 лет. Большая часть заведений возле моего дома, отмеченных на карте, также уже давно не работают, а новых на картах нет. Довольно грустно, ведь это практически единственный проект открытых карт такого масштаба, и другого у нас просто нет.

3. Mi-Fit VS Gadget Bridge

Gadget Bridge — это аналог проприетарным приложениям для работы с фитнес браслетами и умными часами (в нашем примере Mi-fit от Xiaomi). Без облаков, синхронизаций и отправки данных куда-либо. Идея крутая, посмотрим на реализацию.

Начнём с домашнего экрана:

image

В Mi-fit нас встречает экран со всеми основными показателями: сон, шаги, последняя тренировка, вес (для тех, кто пользуется умными весами). Отсюда же можно начать запись тренировки. Дизайн приятный глазу, хоть и пёстрый. Мне не к чему придраться.

Посмотрим на Gadget Bridge:

image

Нас встречает меню со списком подключенных гаджетов. Зачем? Я не знаю. Видимо, я один не пользуюсь пятью фитнес-трекерами одновременно, иначе я не понимаю, зачем это нужно. Из этого экрана мы можем извлечь ровным счётом ничего, кроме заряда батареи браслета. Сравните это с Mi-fit.

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

image

image

Тут я ничего плохого сказать не могу. Все просто, понятно и наглядно. Есть приятные графики, детализация измерений, даже сравнение с другим пользователями (которое, впрочем, либо очень общее и не обновляется, либо взято с потолка, потому что приложению выключен доступ в интернет уже несколько месяцев).

А сейчас будет больно, приготовьтесь. Gadget bridge:

image

image

Я не знаю, как это комментировать. Я не знаю, как это читать. Я не знаю, кому пришло в голову вставить это в релизную версию приложения. Какую информацию я могу извлечь из этих экранов, помимо того, что разработчик ясно дал понять, что ему наплевать на меня? Ну, я вижу, что, оказывается, глубокого сна у меня выдалось целых 12 минут за всю ночь. Звучит не очень убедительно. А еще у меня было 8 часов и 13 минут чего-то. Не знаю чего, надпись находится за пределами экрана. Наверное, речь о беге трусцой или занятиях кросс-фитом. Экран "Активность" я оставлю без комментариев и просто молча удалю приложение.

Есть и исключения

Но, к сожалению, их доля в общей массе исчезающе мала. Однако, эти продукты по-настоящему хороши, и с точки зрения UI/UX сделаны отлично. И потому популярны.

Приведу несколько примеров таких продуктов, которыми сам пользуюсь и получаю от этого удовольствие:

  • Рабочая среда KDE Plasma
  • Федеративная соц. сеть Mastodon (веб-клиент)
  • Менеджер паролей Bitwarden
  • Браузер Firefox от Mozilla
  • Офисный пакет LibreOffice

Наверное, есть и еще примеры, но факт остаётся фактом: качественный и продуманный интерфейс в СПО скорее исключение, чем правило, и это печально.

Почему так происходит?

Я вижу три причины:

  1. Нет понимания. Многие свободные программы пишутся энтузиастами-одиночками или маленькими группами программистов. Проблема в том, что программист — не дизайнер и в дизайн не хочет, не может, не умеет и не должен. Дизайном должен заниматься профессионал, но программисты зачастую не имеют понимания, что этого профессионала нужно к делу привлечь. В итоге делают сами, как умеют.
  2. Нет ресурсов. СПО — не коммерческий проект и разработчики, чаще всего, работают на голом энтузиазме и редких донатах. В таких условиях, конечно, никто не будет нанимать дизайнера (оплатить бы хостинг за следующий месяц).
  3. Нет мотивации. Тяжело работать, не получая никакой отдачи. Запал заканчивается, человек выгорает. Я видел десятки заброшенных проектов и проектов, которые годами ходят по рукам, их забрасывают одни, подбирают другие и так далее. Почему так случается? Я думаю, это наша вина, как пользователей. Разработчикам не донатят, в проекты не коммитят, большинство ленится даже написать хороший отзыв приложению в плей-маркете или на Alternativeto. В коммерческих проектах есть зарплаты, целые команды, менеджеры и HR'ы, занятые тем, чтобы команда была замотивирована, сплочена, и работала эффективно, потому что это приносит деньги. В сфере разработки СПО это большая редкость. Результат предсказуем: разработчики просто забивают на свои проекты, потому что не видят причин ими заниматься дальше.

Что можно с этим сделать?

Я не являюсь профессионалом, но поделюсь своими мыслями на этот счёт. Буду рад услышать ваши варианты в комментариях.

Опираясь на описанные выше проблемы, я могу предложить только одно решение — создать НКО, занимающееся дизайном и UI/UX свободного ПО. Эдакий "FOSS Design foundation". В организации должны работать несколько штатных дизайнеров на зарплате, а также волонтеры (например студенты соответствующих направлений). Организация будет финансироваться за счёт пожертвований и будет заниматься просвещением разработчиков, выпуском инструментов и материалов для них, консультациями и курированием проектов.

Если разработчики понимают, что код нужно писать по PEP8, но не понимают, что UX важен, значит им просто никто этого не объяснил. Этим и может заняться новое НКО. Также важно дать разработчикам качественные инструменты: если в распоряжении девелопера только пыльный шаблон из Android Studio, слабое понимание того, как делаются интерфейсы и желания заниматься этим на час, то результат будет соответствующий. Команда профессионалов должна заняться разработкой шаблонов, рекомендаций и готовых материалов (например палитр и шрифтов), которые будут распространяться под свободными лицензиями. Организация также могла бы консультировать, курировать, брать на себя отдельные проекты, которые покажутся ей достойными.

Возможно я чего-то и не понимаю, но, на мой взгляд, запрос на такую организацию назрел уже давно.

Вместо вывода

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

Представляем вам большое обзорное интервью с автором известной во всем мире программы Total Commander - Кристианом Гислером. Total Commander начинает свою публичную историю в Швейцарии в 1993 году и принадлежит к категории программ, которые принято называть на Западе как Orthodox File Manager (OFM), или, говоря по-русски, двухпанельный файл-менеджер. Мы побеседовали с автором программы о его будущих планах и истории развития проекта, о технических подробностях его разработки, которые обычно остаются в тени для его многочисленных пользователей, а также не оставили без внимания и личные факты, связанные с этим известным разработчиком из Швейцарии.

- Широко известный факт, что вы до сих пор пишете свой файл-менеджер на "допотопном" Delphi 2. С чем это связано?

- Я являюсь обладателем лицензионных версий всех последних Delphi, поэтому достаточно хорошо представляю себе их возможности. Но дело тут вот в чем: компиляция exe-файла в Delphi 2 дает на выходе файл ощутимо меньший по размеру, чем, например, в Delphi 7. Кроме того, тестирование показывает, что exe-шник из-под Delphi 2 работает заметно быстрее, чем его полный аналог, выпущенный компилятором Delphi 7. Я сталкиваюсь с тем, когда люди часто удивляются, что Total по-прежнему работает очень быстро - я собираюсь сохранить эту его особенность, и, отчасти, секрет тут в правильно выбранном компиляторе.

Добавлю, что кроме этого Delphi 2 генерирует очень универсальный код, например, с полной поддержкой 16-битных приложений или Windows 95/98 - у меня до сих пор хватает таких клиентов. В то же самое время TC прекрасно себя чувствует и в Windows 7.

- Ранее многократно вы публично заявляли, что закончили первый этап портирования Total Commander на Lazarus/Free Pascal. Как сейчас продвигается эта работа? Откуда такое экзотическое желание?

- Да, я веду такую работу. Самая главная причина, почему я хотел попытаться портировать TC под Lazarus, это то, что Lazarus может создавать нативные 64-битные приложения, а Delphi - нет. Разработчики Delphi уже много лет анонсируют выход 64-битной версии среды разработки, но её до сих пор нет. В то же самое время уже сейчас, например, в Германии, 46% процентов всех компьютеров продаётся с предустановленной 64-битной версией Windows. Я постоянно сталкиваюсь с тем, что рядовые пользователи, подобно ситуации с мегапикселами в фотокамерах, считают, что чем больше цифра чего-то - тем лучше, и поэтому 64-битные компьютеры гораздо круче 32-битных и, естественно, им нужна 64-битная версия TC. Текущая 32-битная версия TC хорошо работает и в 64-битной среде, но большинство людей не привыкли думать рационально. Сейчас этот вопрос стоит для меня достаточно остро.

- Насколько я знаю, уже существует бета-версия 64-битного компилятора Delphi, как минимум, подписчикам доступна для закачки демо-версия консольной версии 64-битного компилятора. Думаю, осталось ждать совсем немного (прямо сейчас на сайте embarcadero.com написано, что "We expect the 64-bit version of Delphi to be ready in mid-2010.").

- Ну, первый раз анонс выхода 64-битной версии компилятора появлялся на сайте разработчиков Delphi в 2009 году, потом был перенос на лето 2010, и, кстати говоря, уже наступил 2011-й. Короче, я поверю в это только тогда, когда сам увижу его в работе, и, возможно, если он покажет себя хорошо, сверну разработку версии под Lazarus. Пока же я не намерен больше ждать пустых обещаний. По слухам, Delphi 64-бита или, как минимум, его более-менее рабочая версия появится лишь где-то около 2012 года.

- Ну и как вам Lazarus в сравнении с Delphi?

- Он чрезвычайно неплох для полностью бесплатного продукта, но всё же содержит много проблем и ошибок. Самая большая для меня проблема - отсутствие хорошей документации. Например, я сейчас бьюсь над попыткой понять методом проб и ошибок отличия в реализации inline-ассемблера в Delphi и его аналога в Lazarus. Также время компилирования и линковки в Lazarus намного больше, чем в Delphi. Даже в очищенном от кода отладки исполняемом файле (stripped executable) почему-то всё равно присутствуют данные для отладки, что замедляет выполнение приложения. Ну и в самой реализации компилятора присутствуют ошибки, что требует быть постоянно начеку. Например, функция str() не помещает закрывающий 0 в строку, когда используется массив из переменных.

Есть и приятные моменты. Например, полная поддержка Unicode в TC была написана мной вручную, тогда как в Lazarus все контролы изначально поддерживают Unicode и базируются на UTF-8.

- Очень долгое время ходили слухи, что вы готовите Linux-версию Total Commander'a, чем закончилась эта затея?

- Да, я делал серьёзную попытку переноса TC на Delphi for Linux (Kylix) пару лет тому назад. Но столкнулся с очень глобальными проблемами, которые лежали за пределами самой среды разработки. Хотя вся визуальная часть интерфейса работала отлично, все низкоуровневые эффекты сделали перенос практически невозможным. Например, интенсивная работа с потоками в Linux (копирование в фоне, FTP и другое) окончательно доконала меня своими случайными мистическими ошибками, причины которых установить так и не удалось.

- Интересно, какие ещё были проблемы с Kylix?

- Например, другая большая проблема, что в Linux нет аналога виртуального контрола Listbox, который крайне необходим мне для отображения больших списков. В моем нынешнем Listbox'e при добавлении каждой строки вызывается callback-функция, которая сама заполняет эту строку данными. В реализации Listbox в Linux при заполнении каждой строчки всякий раз создаётся специальный объект(!), что приводит к очень медленной работе со списками. Тем более, Kylix использует Qt toolkit, в котором вообще нет никакого виртуального ListBox'a.

- Очень жаль, что так всё закончилось. очень многим пользователям Linux не хватает старого-доброго Total Commander'a.

- Возможный выход - использовать Wine. Я специально тестировал совместимость TC с Wine, всё должно работать нормально, хотя и с некоторыми очевидными ограничениями.

- Во-первых, разработка 32-битной версии TC останется на Delphi 2.

- Иначе говоря, 64 бита - сейчас главная текущая цель?

- Да, но это на самом деле достаточно масштабная цель. Нужно понимать, что даже если мы и выпустим успешную 64-битную версию, это сразу породит новые проблемы, т.к. все имеющиеся плагины - 32-битные. Все они перестанут работать как один, если только авторы плагинов сразу оперативно не перепишут их под 64-бита. Как временный выход, я планирую загружать 32-битные составляющие TC через скрытую отдельную программу (tcmdx32.exe) таким же способом, которым я сейчас вызываю расширения меню в 64-битном Explorer'e.

- Если не секрет, каковы масштабы проекта для текущей версии TC 7.55a?

- Все *.pas-файлы проекта занимают более чем 10 Мб. Всего написано более 200 тыс. строк кода.

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

- Лично меня очень смешит, когда я регулярно получаю на свой официальный e-mail (указанный в About программы) вопрос, знаком ли я с автором Total Commander? По секрету скажу, у меня даже есть заготовленный шаблон-ответ для такого случая :-)

- Вероятно, у некоторых ваших клиентов есть представление, что Total Commander - это огромная корпорация. А что на самом деле представляет собой TC и его разработчик?

- Total Commander пишется мною и моим братом. Это работа, которая сейчас занимает у нас весь рабочий день. Непосредственно для программирования у меня зарезервировано 4 утренних часа во все рабочие дни, всё остальное время я занят административными вопросами и поддержкой пользователей. Сейчас мне 40 лет, я профессионально занимаюсь только Total Commander'ом уже 17 лет.

- Что стало отправной точкой, почему вы начали писать свой файл-менеджер?

- Я начал писать TC во время получения образования, в свободное от учебы время по вечерам. Подобные файл менеджеры уже были для DOS, но их не было под Windows. Тогда я мечтал, что хорошо бы было создать такую программу, которая в точности исполняла бы все возможные команды пользователя, давая полный контроль над тогда ещё достаточно экзотическим и сложным компьютером. И вот сейчас это у меня почти получилось!

- Насколько хорошо позволяет зарабатывать Total Commander? Успешна ли коммерчески эта программа?

- Да, вполне. Total Commander позволяет мне поддерживать уровень жизни выше среднего в месте моего проживания.

- Каков секрет успеха в области shareware с вашей точки зрения?

- Во-первых, это способность находить незанятые крупными компаниями ниши, где этим программным гигантам просто невыгодно работать. Например, клиентская ниша TC очень узка, такая компания как Symantec после долгих попыток просто вынуждена была свернуть разработку знаменитого Norton Commander'a - просто потому, что для крупных компаний это, очевидно, убыточное направление.

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

В-третьих, в коммерческой разработке важна способность уделять максимум внимания даже мелочам. Например, мой TC прекрасно работает в Windows 95, также как и в Windows 7, или даже в Wine. Только все тщательно выверенные детали делают продукт в целом совершенным, и пользователи это, поверьте, сразу чувствуют. Я думаю, мало кто способен представить себе, какой гигантский труд скрывается за всеми этими "мелочами".

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

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

- Какие черты и возможности в TC были наиболее сложны в реализации, какими из них вы гордитесь больше всего?

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

Я не горжусь никакой из отдельных функций TC, но, оглядываясь назад, очень рад тому, что ещё в начале развития программы я заложил возможность расширения опций программы через внешние плагины. Хотя в те далекие годы были определенные сомнения в целесообразности такого подхода, сейчас это важнейшая возможность программы, которая позволяет независимо от меня (основного разработчика) наращивать любые самые экзотические возможности и функции. Признаю, что жизнь доказала, это один из важных элементов нынешней относительной популярности моей программы. Например, я просто не мог и мечтать, что у программы будет когда-то прямой доступ к Linux-разделам ext2/ext3 или Raiser, но это было реализовано именно в плагинах уже сторонними разработчиками.

Хочу отметить, что мы поддерживаем плагины не только на уровне самой программы, но и на уровне ее частей, например, Lister'a. Так интеграция возможностей сторонней программы IrfanView превращает Lister в чрезвычайно мощный фото-вьювер.

- Сейчас я работаю над версией TC для Android, которую пишу на Java. И хотя работа ещё в самом начале, уже сейчас для меня очевидно, что общая концепция устройства Android настолько сильно отличается от Windows, что я вынужден начинать с нуля практически во всем. Поэтому это, скорее, не портирование, а именно написание нового приложения, в общих чертах повторяющего функциональность и интерфейс TC.

- Как вы относитесь к свободным проектам и открытому исходному коду?

- Я отношусь к ним положительно, использую их в том числе в своей работе. Я также опубликовал много программ как freeware, например, мои Total Commander for PocketPC, Total Commander for Windows Mobile и Windows CE, которые являются просто хобби на протяжении уже многих лет. Некоторые мои программы распространяются с открытым исходным кодом, например, некоторые плагины. Считаю, что все эти виды программ могут прекрасно сосуществовать, при этом каждая из форм распространения имеет свои преимущества и недостатки, свои разные цели и предназначение.

Например, Linux-версия Total Commander требовала очень значительных временных затрат для её создания, в то время как работа над Windows-версией и так занимает почти все мое время. К тому же философия пользователей Linux такова, что они привыкли получать все бесплатно, а я не могу физически тратить столько своего времени для работы над бесплатной версией. Именно поэтому принято решение разработку Linux-версии TC отложить на неопределенный срок.

- Какую версию Windows используете лично вы и почему?

- На моем компьютере стоит Windows 7, мне она кажется очень удобной, и я нахожу многие её функции по-настоящему удачными и прогрессивными. На моем ноутбуке, которым я также очень интенсивно пользуюсь, установлена Windows XP. Я рекомендую устанавливать Windows 7 пока только на настольные компьютеры, и то если у вас действительно достаточно мощный процессор и установлено много RAM (ОЗУ). Лично я очень не люблю любых задержек и подвисаний, поэтому всегда очень щепетильно слежу, чтобы мой Total оставался всегда таким же быстрым и на любом компьютере.

- И в заключение, над чем вы работаете прямо сейчас?

- Готовится новая версия 7.56, в которую войдут исправления всех ошибок, обнаруженных со времени выхода последнего релиза 7.55a. Я думаю, это будет самая стабильная версия, может быть, даже последняя в 7-й ветке этой программы.

Первая публичная немецкая версия стала доступна 25 сентября 1993 года. Начиная с версии 7.5 от 16 июля 2009 года русская локализация входит в дистрибутив программы.

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

19 июня 2011 года появлется первая версия Total Commander для Android устройств, вместе с тремя дополнительными плагинами (FTP,LAN,WebDav).

Возможности программы

  • Двухпанельный многоязычный графический интерфейс пользователя;
  • Полностью настраиваемые сочетания клавиш, близкие к популярному до середины 1990-х годов файловому менеджеру Norton Commander для DOS (клавиатурные комбинации для просмотра, редактирования, копирования и удаления файлов);
  • Поддержка Drag&Drop при помощи мыши; интерфейс;
  • Настраиваемые меню и панели инструментов с кнопками для запуска внешних программ или внутренних команд меню;
  • Выделение и подсветка файлов на панели по имени, расширению, дате и времени создания файла и по многим другим условиям;
  • Встроенный FTP-клиент, с поддержкой SSL/TLS;
  • Работа с архивами так же, как с подкаталогами. Соответствующая программа-архиватор вызывается автоматически. Поддерживаются PKZIP, ARJ, LHA, RAR, UC2, ACE, TAR, gzip и tar+gzip;
  • Внутренний упаковщик для формата ZIP, с возможностью создания многотомных и самораспаковывающихся (16- и 32-битных) архивов;
  • Внутренние распаковщики для форматов ZIP, ARJ, LZH, gzip, tar, RAR и ACE;
  • Разрезание и сборка файлов большого объёма;
  • Подсчёт и проверка контрольных сумм файлов (CRC32, MD5, SHA1);
  • Групповое переименование файлов и синхронизация каталогов;
  • Сравнение файлов с возможностью редактирования, сравнение файлов с разными кодовыми страницами;
  • Расширенный поиск файлов, включая поиск текста в любых файлах, в том числе на нескольких дисках и FTP; поиск дубликатов файлов; поиск внутри архивов;
  • Встроенный просмотрщик файлов (lister) для просмотра файлов любого размера в шестнадцатеричном, двоичном или текстовом формате с использованием набора символов «DOS», «ANSI»/«Windows», Unicode, UTF-8 и других;
  • Поддерживаются регулярные выражения при поиске файлов (в именах и в содержимом) и во внутреннем просмотрщике, групповом переименовании файлов, диалоге выбора и выделения файлов и фильтрах;
  • Поддержка последовательной очереди и параллельного фонового выполнения операций над файлами (копирование, перенос, удаление, работа с архивами и FTP);
  • Журналирование файловых операций;
  • Возможность временного повышения уровня привилегий; поддержка механизма User Account Control в Windows Vista;
  • Естественная (native) поддержка портативного режима работы (без инсталляции), поддержка U3 флеш-накопителей;
  • Расширение функциональности программы с помощью подключаемых модулей (плагинов).
  • Работает с длинными (более 255 символов, но не более 4096 символов) путями под NTFS.

Плагины

Функциональность Total Commander можно расширять с помощью плагинов. [4] Доступно несколько видов таких плагинов:

Архиваторные плагины (Packer Plugins, WCX)

Архиваторные плагины используются для распаковки определённых типов файлов, обычно архивных форматов. Некоторые такие плагины также позволяют создавать новые архивы поддерживаемого типа и модифицировать существующие архивы.

Плагины могут использоваться для:

Плагины внутренней программы просмотра (Lister Plugins, WLX)

К примеру, плагины могут использоваться для:

Плагины файловой системы (File System Plugins, WFX)

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

Плагин файловой системы может быть предназначен для доступа к:

Информационные плагины (Content plugins, WDX)

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

Информационные плагины могут применяться для получения:

Плагины быстрого поиска

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

Читайте также: