УСЛОВИЯ: китайская 2-din магнитола на базе Win CE 6.0 с Берем файловый менеджер Total Commander для WinCE ( TC), копируем. Минимальный набор программ для навигатора ( WinCE) на первое время : ТС ( Total Commander) - файловый менеджер ITaskMgr . Интервью с автором Total Commander (Тотал Командер)Представляю вам давно обещанное мною на этом блоге эксклюзивное интервью с автором известной во всем мире программы Total Commander - Кристианом Гислером. Total Commander начинает свою публичную историю в Швейцарии в 1. Западе как Orthodox File Manager (OFM), или говоря по- русски - двухпанельный файл- менеджер. Мы побеседовали с автором программы о его будущих планах и истории проекта, а также о технических подробностях его разработки, которые традиционно остаются в тени от его многочисленных пользователей, не оставив без внимания и личные малоизвестные факты, связанные с этим известным разработчиком. Это - первое большое интервью с Кристианом на русском. Кроме того, в отличии от множества англоязычных интервью, которые были сделаны до меня, здесь он по- моему впервые достаточно откровенно делится техническими деталями своей разработки - и я считаю именно эта составляющая, - наиболее информативная и уникальная часть этого интервью для всех любопытных разработчиков, и просто для людей преданных Total Commander'у. Интервью взято специально для Softkey. Онлайновый журнал о мире программного обеспечения. Приятного вам чтения! Широко известный факт, что вы до сих пор пишете свой файл- менеджер на допотопном Delphi 2. С чем это связано? Я являюсь обладателем лицензионных версий всех последних Delphi, поэтому я достаточно хорошо представляю себе их возможности. Но дело тут вот в чем: компиляция exe- файла в Delphi 2 дает на выходе файл ощутимо меньший по размеру, чем, например, в Delphi 7. Кроме того, тестирование показывает, что exe- шник из- под Delphi 2 работает заметно быстрее, чем его полный аналог выпущенный компилятором Delphi 7. Я сталкиваюсь с тем, что люди часто удивляются, что Total по- прежнему работает очень быстро - я собираюсь сохранить эту его особенность, и, отчасти, секрет тут в правильно выбранном компиляторе. Добавлю, что кроме этого, Delphi 2 генерирует очень универсальный код, например, с полной поддержкой 1. Windows 9. 5/9. 8 - у меня до сих пор хватает таких клиентов. В тоже самое время, TC прекрасно себя чувствует и в Windows 7. Ранее многократно публично вы заявляли, что закончили первый этап портирования Total Commander на Lazarus/Free Pascal. Как сейчас продвигается эта работа? Откуда такое экзотическое желание? Да, я веду такую работу. Самая главная причина, почему я хотел попытаться портировать TC под Lazarus, это то, что Lazarus может создавать нативные 6. Delphi - нет. Разработчики Delphi уже много лет анонсируют выход 6. В то же самое время, уже сейчас, например в Германии, 4. Windows. Я постоянно сталкиваюсь с тем, что рядовые пользователи, подобно ситуации с мегапикселями в фотокамерах, считают, что чем больше цифра чего- то - тем лучше, и поэтому 6. Обычно тоталом заменяется одна из предустановленных программ (карт). Для предустановленных программ (на примере Explay) пути должны быть. Оставляешь папку Navitel, а файл TC.EXE переименовываешь в navitel.exe и копируешь в папку Navitel. Скачиваем Total Commander для WinCE, по аналогии с первым в папку navione, переименовываем файл TC.exe в NaviOne.exe, ставим. Скриншоты Total Commander: Статус программы. TC. Текущая 3. 2- битовая версия TC хорошо работает и в 6. Сейчас этот вопрос стоит для меня достаточно остро. Насколько я знаю, уже существует бета- версия 6. Delphi, как минимум подписчикам доступна для закачки демо- версия консольной версии 6. Delphi embarcadero. Короче, я поверю в это только тогда, когда сам увижу его в работе, и возможно, если он покажет себя хорошо - сверну разработку версии под Lazarus. Пока же я не намерен ждать пустых обещаний больше. По слухам, Delphi 6. Ну и как вам 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, в котором вообще нет никакого виртуального List. Box'a. Я хотел было попробовать пройти этот путь до конца и написать виртуальный Listbox для Linux- версии сам, но проблема в том, что аналогов почти половину используемых мною в Windows системных функций под Linux просто нет, т. Идеологически всё усложняется тем, что в Linux вообще нет сообщений, все вызывается через callback- функции. Поэтому через полгода напряженной . Я специально тестировал совместимость TC с Wine, всё должно работать нормально, хотя и с некоторыми очевидными ограничениями. Итак, как я понял, следующая революционная 8- ая версия - это переход на Lazarus и первая полноценная 6. TC (вместе с 3. 2- битной версией)? Во- первых, разработка 3. TC останется на Delphi. Во- вторых, насчет инструмента разработки 6. Lazarus. Как результат этих усилий, с этого лета я уже успешно компилирую весь проект TC на Lazarus. Он запускается, но многие функции пока неправильно работают, в основном потому, что Lazarus программно блокирует обработку стандартных сообщений Windows, например WM. Я также завершил перенос кода по работе с OLE2 в Lazarus, здесь отличия в работе также весьма существенны. Поэтому, впереди еще предстоит много работы. Иначе говоря, 6. 4 бита - сейчас главная текущая цель? Да, но это на самом деле достаточно масштабная цель. Нужно понимать, что даже если мы и выпустим успешную 6. Все они перестанут работать как один, если только авторы плагинов оперативно не перепишут их под 6. Как временный выход, я планирую загружать 3. TC через скрытую отдельную программу (tcmdx. Explorer'e. Если не секрет, каковы маштабы проекта для текущей версии TC 7. Все *. pas- файлы проекта занимают более чем 1. Всего написано более 2. Окей, Кристиан, чтобы понизить градус техничности нашего интервью, вспомните что- нибудь смешное, из вашей обширной практики поддержки пользователей со всего мира. Лично меня очень смешит, когда я регулярно получаю на свой официальный e- mail (указанный в About программы) вопрос, знаком ли я с автором Total Commander? Вероятно, у некоторых ваших клиентов есть представление, что Total Commander, это огромная корпорация, а что на самом деле представляет из себя TC и его разработчик? Total Commander пишется мною и моим братом. Это работа, которая сейчас занимает у нас весь рабочий день. Непосредственно для программирования у меня зарезервировано 4 утренних часа во все рабочие дни, всё остальное время я занят административными вопросами и поддержкой пользователей. Сейчас мне 4. 0 лет, я профессионально занимаюсь только Total Commander'ом уже 1. Что стало отправной точкой, почему вы начали писать свой файл- менеджер? Я начал писать TC во время получения образования, в свободное от учебы время по вечерам. Подобные файл менеджеры уже были для DOS, но их не было под Windows. Тогда я мечтал, что хорошо бы было создать такую программу, которая в точности исполняла бы все возможные команды пользователя, давая полный контроль, над тогда ещё достаточно экзотическим и сложным компьютером - и вот сейчас, это у меня почти получилось! Насколько хорошо позволяет зарабатывать Total Commander? Успешна ли коммерчески эта программа? Да, вполне. Total Commander позволяет мне поддерживать уровень жизни выше среднего в месте моего проживания. Каков секрет успеха в области shareware, с вашей точки зрения? Во- первых, это способность находить незанятые крупными компаниями ниши, где этим программным гигантам просто невыгодно работать. Например, клиентская ниша TC очень узка, такая компания как Symantec после долгих попыток просто вынуждена была свернуть разработку знаменитого Norton Commander'a, просто потому, что для крупных компаний это, очевидно, убыточное направление. Во- вторых, это способность и желание программиста упорно развивать программу без каких- либо гарантий на будущее; в любом случае понятно, что первые годы работы вы не будете иметь никаких дивидендов от вашей разработки. В- третьих, в коммерческой разработке важна способность уделять максимум внимания даже мелочам. Например, мой TC прекрасно работает в Windows 9. Windows 7, или даже в Wine. Только все тщательно выверенные детали делают продукт в целом совершенным, и пользователи это, поверьте, сразу чувствуют. Политика разработчика Total Commander традиционно славится своей лояльностью к пиратам и к незарегистрированным пользователям. Например, с незарегистрированной копией TC можно работать вечно, несмотря на 3. С чем связано такое либеральное отношение? Наша главная задача и цель - это не уменьшение количества незарегистрированных пользователей программы, а повышение количества платящих пользователей.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
January 2017
Categories |