Open Watcom: Реинкарнация

Много раз мир был свидетелем гибели прекрасных коммерческих программных продуктов, уходивших в небытие в расцвете славы и популярности. Многие из них уходили и не возвращались, как, например, Symantec C++. Другие переживали перевоплощение, которое индусы называют реинкарнацией, и становились бесплатными, а то и вовсе Open Source. Поскольку в связи с событиями в стране и в мире взгляды разработчиков программного обеспечения скользят по не слишком стройным рядам продуктов с открытым исходным кодом, я продолжаю рассказ о них. И речь сегодня пойдет об Open Watcom. Судьба проекта Open Watcom уникальна, как уникален и сам проект, и именно поэтому я хочу рассказать вам о нем.

1997 год. Канада. Корпорация Sybase покупает компанию Waterloo Computing (Watcom). Этот момент - начало конца множества замечательных продуктов компании Watcom, и, прежде всего, их всемирно известных компиляторов, с помощью которых были созданы такие великие вещи, как Doom I и II, Duke Nukem 3D, Descent и PowerBuilder.

Но обо всем порядку.

В далеком 1965 году, когда еще не было ни меня, ни "Компьютерных Вестей", ни корпорации "Майкрософт", а сам Билл Гейтс был десятилетним мальчуганом и ходил в школу и даже не помышлял стать великим бизнесменом, группа студентов из канадского города Ватерлоо создала компилятор Фортрана для университетского компьютера IBM 7040. Компилятор получился на удивление хорошим, и разработка постепенно набирала обороты. В скором времени компилятор был перенесен на популярный в те годы DEC PDP-11, а также на IBM 360. К 80-м годам Watcom Fortran был самым передовым компилятором языка, поддерживающим последние стандарты и использовавшим лучшие методы оптимизации. В придачу ко всему разработчики создавали его версии для все новых и новых платформ, что также способствовало росту популярности программы. В 1986 году продукт был перенесен на PC, а первой операционной системой на PC, под которой он запускался, была QNX. В 1987 увидел свет высокопроизводительный оптимизирующий компилятор языка C, один из первых для платформы Intel x86. Этот компилятор стал очень известен и популярен благодаря непревзойденной оптимизации, и в этом с продуктами Watcom не мог сравниться никто. Именно поэтому разработчики компьютерных игр, у которых на счету был каждый такт процессора, использовали их компиляторы, освобождавшие от утомительного написания ассемблерного кода и делавшие разработку игр более легкой, чем раньше. В 1997 году компания выпустила 11-ю версию обеих линеек компиляторов (Фортран и Си) и продалась корпорации Sybase. И тем самым подписала себе приговор. Разработка дальнейших версий была заморожена, продукты постепенно лишались своих верных поклонников и сторонников. В 1999 году Sybase объявила о прекращении продаж продуктов Watcom, а в 2000 свернула всю техническую поддержку.

На этом история Watcom, как бы ни была она интересна и поучительна, должна была бы закончиться... Но в Sybase решили иначе. Недавно компания открыла компиляторы и прочие входящие в комплект поставки программы в рамках проекта Open Watcom (www.openwatcom.org). И к нему, как мне кажется, стоит присмотреться тем, кто не хочет платить лишние деньги за навороты в Visual Studio.

Дистрибутив, сразу оговорюсь, не маленький. Поэтому тем, у кого dial-up, придется ждать ночь, а то и две, или идти в интернет-кафе. Я поленился качать дистрибутив с официального сайта проекта и нашел на бескрайних просторах интернета чуть более старый, но значительно менее объемный. За что, к сожалению, и поплатился, так как IDE у меня работать отказалась. Поэтому придется поверить тем, кто с ней работал и говорит, что она не слишком удобна, особенно для тех, кто привык к продуктам Microsoft и Borland. В дистрибутив входят версии программ сразу под все поддерживаемые системы. На сегодняшний момент это DOS, OS/2 и Windows (версии последней - 3.11 и NT). Установка проходит гладко, но мне пришлось прописывать вручную некоторые переменные окружения. Впрочем, вроде бы, в последней версии официального дистрибутива этих сложностей нет.

Интерфейс программ пакета (как для C/C++, так и для Fortran) вызывает ностальгию. Сомневаюсь, что он претерпел хоть какие-то изменения с 1997 года. Впрочем, редакторы диалогов, ресурсов и картинок (в Watcom это три отдельные программы) вполне работоспособны и понимают стандартные ресурсы Windows. Остальные утилиты, найденные в дистрибутиве (Dr.Watcom, DDE Spy, TCP/IP Debugger, Profiler и др.), тоже выполняют свои функции без нареканий. Компиляторы для DOS и Windows также работают, хотя и не слишком расторопно, к тому же, по давней традиции, компиляция и компоновка разделены, и приходится писать make-файлы. Программы для OS/2 я, к сожалению, не смог проверить за неимением этой операционной системы.

Теперь о функциональности. Видимо, сообщество разработчиков Open Watcom еще не слишком разрослось, поэтому языковые возможности компиляторов оставляют желать лучшего. Хотя это не такой большой минус, как может показаться, так как стандарты ANSI поддерживаются безукоризненно. К тому же, для Фортрана это, вообще говоря, не слишком критично. Этот язык, в основном, используется ученым сообществом, а оно весьма и весьма консервативно, поэтому множество людей продолжает использовать, скажем прямо, не самый новый стандарт: Fortran 77. А его Watcom Fortran Compiler поддерживает на самом лучшем уровне, поэтому большинство библиотек и программ, написанных с использованием Фортрана, могут быть скомпилированы без существенных изменений.

Совсем другая песня - C, а особенно - C++. Поскольку этот язык - второй по популярности в мире (первый, если судить по количеству проектов на sourceforge.net, это Java), то стандарты его изменяются куда более динамично, чем стандарты Фортрана. Эти изменения существенно сказываются на библиотеках, написанных на C++. Поэтому есть очень большая вероятность, что не все версии библиотек, созданные после 1997 года, будут без запинки "переварены" Ваткомовским компилятором. Это относится даже к STL, для которой программистам, использующим Open Watcom, пришлось делать свой порт (он называется Open Watcom STL, OWSTL, и написан, по заверениям разработчиков, "с нуля"). Я уже не говорю о такой широко известной библиотеке, как MFC, которую Watcom C++ поддерживает более чем ограниченно (честно говоря, я просто не нашел нигде доступной для скачивания версии MFC девятилетней давности, хотя в официальном дистрибутиве она, говорят, присутствует).

Кодогенерация и оптимизация, как то ни прискорбно, тоже остались на уровне 1997 года. Хотя именно в этом направлении разработчики прикладывают наибольшие усилия, и в последнем релизе, по слухам, наметились сдвиги к лучшему. Пока же продукт, некогда бывший эталоном оптимизирующего компилятора, был положен на лопатки даже Borland C++ Compiler 5.5, который считается аутсайдером по оптимизации среди компиляторов C++ для Windows (по крайней мере, судя по статьям на rsdn.ru, где трудолюбивые программисты сравнивали производительность разных компиляторов). Впрочем, я не претендую на абсолютную объективность, вполне возможно, в следующей версии Open Watcom будет поддерживать более качественную и эффективную оптимизацию.

Впрочем, есть области, где компиляторы Watcom до сих пор остаются безальтернативными, и, как справедливо замечают разработчики, вряд ли такая альтернатива вообще когда-нибудь появится. Компиляторы Watcom - единственные Open Source компиляторы для 16-битных версий DOS, Windows и OS/2, позволяющие разрабатывать приложения любого уровня - от драйверов до мощных комплексных систем. Кроме того, по сравнению с другими продуктами с открытым исходным кодом, Watcom имеет существенно более качественные отладчики для DOS и OS/2. В придачу, "в наследство" от коммерческой версии продуктов Waterloo Computing, Open Watcom досталась прекрасная документация, и разработчики бесплатной версии продолжают ее дополнять и обновлять сообразно изменениям, произошедшим в проекте. Благодаря богатой истории компиляторов Watcom для них уже написано много программного кода, часть которого, как и online-документация, доступна на сайте проекта.

Кроме того, за долгие годы использования компиляторов, библиотек и утилит от Watcom, а особенно за то не слишком долгое время, когда ими пользовалась Sybase для разработки своих продуктов, эти программы стали самыми чистыми от ошибок разработками для Windows, DOS и OS/2. Согласитесь, это более значительный плюс, чем возможность разрабатывать 16-битные драйверы. Поэтому будет целесообразным использование компиляторов Watcom там, где особенно важны надежность и стабильность работы. Впрочем, даже самый надежный компилятор не освободит программиста от отладки. А про отладчики от Watcom я уже говорил.

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

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

09 за 2006 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!