Краткая история программы POPEYE1
— Томас Бранд
(Перевод на русский язык: Дмитрий Туревский. Впервые опубликован в журнале “Шахматная Композиция”, №114 – 2013)
____________________________________________________________________
Чтобы рассказать историю программы POPEYE нам придется вернуться назад более чем на четверть века, в год 1986. Я тогда был редактором в «Die Schwalbe» и отвечал за разделы обратных и кооперативных матов, поэтому компьютерная проверка присланных для публикации оригинальных задач интересовала меня еще как.
В те времена было всего два способа проверить кооперативные, обратные и кое-какие сказочные задачи: платная программа Alybadix, написанная Илька Блёмом, которая работала на небольших домашних компьютерах типа Commodore, и Ollie Томаса Кюна, которая запускалась на специально собранном исключительно для этой цели (!) устройстве с шестнадцатеричной клавиатурой и забавным вроде как принтером для термобумаги – для ввода задач и отображения авторских и побочных решений, соответственно.
Поскольку у меня дома был «современный» IBM XT совместимый компьютер (процессор Intel 8086 6MHz, 20 MB места на жестком диске, монохромный черно-зеленый дисплей с разрешением 25х80 знакомест, все собрано вот этими руками), то … запустить Alybadix возможности я не имел. А работа с Ollie была не такой простой, как это может показаться сейчас: проверка сложной позиции с заданием h#2 занимала до часа, а проверить h#3 возможности практически и не было. А поскольку Ollie еще и существовал в единственном экземпляре, то машинное время (и время Томаса тоже) приходилось делить с другими людьми. Так что я пытался найти побочные решения в задачах, присланных для «Die Schwalbe», самостоятельно, и только в особых случаях, когда мне все-таки не удавалось их обнаружить, я подключал Томаса с его транзисторным приятелем.
Так что, когда я услышал о POPEYE, программе написанной Филлипом Шобеленом из Франции для IBM PC, я несказанно обрадовался: может быть, вот оно – моё избавление?
Я связался с Филлипом (при помощи обычного письма, разумеется, век электронной почты еще не наступил!), и очень быстро, всего около недели спустя, получил здоровенный конверт из Франции, в котором был не только любезный ответ, но и дискета (гибкая и большая – пять с четвертью дюймов, на 360 килобайт – стандарт по тем временам) на которой был записан POPEYE и короткая инструкция по-французски. И всё работало!
После определенного периода работы с программой у меня появились некоторые соображения относительно ее улучшения, которыми я поспешил поделиться с Филлипом, но получил весьма неожиданный ответ: он сообщил, что прекратил разработку POPEYE, а также выслал мне исходный код программы на условиях использования его как общественного достояния.
Это привело к тому, что я немедленно сделал две вещи. Во-первых, я написал в «Die Schwalbe» небольшую статью2 с предложением выслать POPEYE всем заинтересованным проблемистам, при условии, что они пришлют мне сначала дискету (не забывайте: дело было до популяризации интернета и электронной почты). В итоге отозвалось где-то около 30 человек.
А во-вторых, и это было еще важнее, на встрече в Андернахе в 1987, если память меня не подводит, я поговорил о POPEYE с Эльмаром Бартелем и Норбертом Гайсслером. Дело в том, что хотя у меня и был исходный код POPEYE, в который я внес свои исправления и улучшения, но программы-компилятора, которая создала бы из исходного кода исполняемый файл, у меня не было – POPEYE был написан на диалекте языка Паскаль под названием COMAL. Они взяли исходный код и, отчасти вручную, отчасти автоматизировано, переписали POPEYE на язык программирования Си.
После долгого процесса настройки и подгонки им удалось снова получить работающую программу: поддерживаемую, неплохо документированную и более быструю, чем изначальная реализация на COMAL. Так было положено начало непрекращающемуся развитию POPEYE.
Оно шло (и по-прежнему идет!) по разным направлениям:
- Исправление ошибок, разумеется
- Расширение возможностей путем добавления новых сказочных условий, фигур и заданий.
- Портирование для разных аппаратных платформ и операционных систем, существовали версии для OS/2, VAX VMS, IBM MVS, SIEMENS BS2000. На данный момент официально поддерживаются версии для Windows, MacOS и Linux/Unix.
- Улучшение быстродействия путем реализации разнообразных оптимизированных алгоритмов: например, таблиц транспозиций и «Intellegent mode» для многоходовых задач.
Пока я только упомянул Филлипа, Эльмара и Норберта, как наиболее важных разработчиков раннего POPEYE, также к ним нужно добавить Торстена Линсса, который проделал немало работы. Еще нужно не забыть Стефана Хёнинга, Стефана Брунцена, Харальда Денкера и Томаса Барка. В наши дни (т.е. начиная с июля 2007г) проект POPEYE ведет Томас Мэдер, которому помогает Стивен Эммерсон.
Когда ждать новую версию POPEYE? Я бы сделал ставку на середину мая – начало июня3, время проведения встречи в Андернахе! Все почти так же, как и 25 лет назад, но с одним исключением: теперь POPEYE можно просто скачать в интернете, а присылать дискеты вовсе не обязательно.
__________________
1Попáй (от англ. pop eyed, букв. «пучеглазый») – персонаж популярного американского комикса и, позднее, мультипликационного фильма.
2«Die Schwalbe» №104, апр. 1987, стр. 215 – 216, «Popeye, eine eierlegende Wollmilchsau?» (нем. «Popeye, на все руки мастер?»)
3Последняя версия POPEYE – 4.63 вышла 5-го мая 2013г.