html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Эксклюзивные ИТ-новости, обзоры и интервью


Представляю вам давно обещанное мною на этом блоге эксклюзивное интервью с автором известной во всем мире программы 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 года, или как минимум, его более-менее рабочая версия.

Ну и как вам 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.

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

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

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

Итак, как я понял, следующая революционная 8-ая версия - это переход на Lazarus и первая полноценная 64-битовая версия TC (вместе с 32-битной версией)?

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

Во-вторых, насчет инструмента разработки 64-битовой версии пока я точно не определился, но пока я движусь в направлении Lazarus. Как результат этих усилий, с этого лета я уже успешно компилирую весь проект TC на Lazarus. Он запускается, но многие функции пока неправильно работают, в основном потому, что Lazarus программно блокирует обработку стандартных сообщений Windows, например WM_PAINT. Я также завершил перенос кода по работе с OLE2 в Lazarus, здесь отличия в работе также весьма существенны. Поэтому, впереди еще предстоит много работы.

Иначе говоря, 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. Только все тщательно выверенные детали делают продукт в целом совершенным, и пользователи это, поверьте, сразу чувствуют.

Политика разработчика Total Commander традиционно славится своей лояльностью к пиратам и к незарегистрированным пользователям. Например, с незарегистрированной копией TC можно работать вечно, несмотря на 30 дневное ограничение в лицензии использования. С чем связано такое либеральное отношение?

Наша главная задача и цель - это не уменьшение количества незарегистрированных пользователей программы, а повышение количества платящих пользователей. Поэтому, у TC очень символическая защита от взлома, и он может использоваться неограниченное время после истечения триального времени даже без всяких модификаций программы. Жизнь показывает, что наше вера в пользователей и их преданность, всегда в конечном итоге приносит нам прибыль. Например, я часто получаю письма благодарных пользователей, говорящих, что они много лет использовали Total как незарегистрированные пользователи, и вот, наконец, у них есть возможность оплатить TC - и они с большой радостью это делают. Другой распространенный вариант, это когда пользователи, которые не могут позволить себе купить TC приносят его в свои компании, и покупают уже коллективные лицензии за счет своей работы. В этом случае, наша лицензия позволяет легально использовать такой зарегистрированный Total и на домашнем компьютере любого работника этой организации.

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

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

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

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

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

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

Что вы думаете про такие популярные языки, как Java и С#? Учитывая вашу склонность к различным экспериментам, почему бы не попробовать переписать TC на одном из этих современных языков?

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

Что же касается C#/.Net, то написать нечто подобное TC на этом языке не очень хорошая идея. По ряду причин, я не фанат платформы .Net, и считаю её малопригодной для shareware-бизнеса.

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

Я отношусь к ним положительно, я использую их в том числе в своей работе. Я также опубликовал много программ как 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-ой ветке этой программы.

Интервью взял Игорь Савчук, ноябрь 2010

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

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

Читать дальше
Twitter
Одноклассники
Мой Мир

материал с blogerator.ru

9

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • pleshner
          • домен blogerator.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции