Thu, 17 May  |   Login English version  |  OS2.Ru  
В начало
Об OS/2
Новости
Публикации
DevCenter
База данных
Каталог ресурсов
Биржа труда
TeamDB
Форумы и общение
Опросы и конкурсы
Russian Team OS/2
На первую страницу OS2.Ru
 Вокруг OS/2 |  Программы и технологии |  Аппаратура |  Разработчикам |  Мастерская
Поиск по: Добавить закладку OS2.Ru в панель Netscape 6/Mozilla
OS2.Ru > Articles > Dev > Pub > Vac > Vac Future.phtml.ru
2000-10-31
Cornelis BockemщhlПеревод: Евгений Викторович Горбунов
(версия для печати)

Будущее IBM VisualAge C++ для OS/2

Visual Age logo Что происходит с IBM VisualAge для OS/2 сегодня?

Нужен ли нам в будущем официальный C/C++ компилятор и среда разработчика от IBM?

Или разумнее полностью перейти к компиляторам, выпускаемым под флагом "open source"?

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


Текущее состояние дел

18.07.2000 IBM распростанила краткое заявление под заголовком "Напоминание об окончании сроков поддержки компиляторов" (см. ibm.software.vacpp.misc, доступная через news.software.ibm.com):


=========================================================
Напоминаем, что для следующих продуктов,
дата окончание программы поддержки - 31 января 2001 года:
 * IBM VisualAge C++ for OS/2, Version 3.0
 * IBM VisualAge C++ for Windows, Version 3.5
 * IBM VisualAge C++ Professional for OS/2 и Windows NT,
                     Version 4.0

Подробности о продуктах VisualAge C++ for OS/2, Version 3.0 и
VisualAge C++ for Windows, Version 3.5 - письмо 298-239

Подробности о продуктах VisualAge C++ Professional for OS/2 и
Windows NT, Version 4.0 - письмо 298-473

Dwayne Moore,
Служба сопровождения и поддержки VisualAge C++
=========================================================

Последняя, 4-ая версия для обеих платформ существует с 1998 года. С тех пор, никаких заявлений о выпуске новых версии не было. Тем не менее, буквально несколько месяцев назад, появилась новая, 5-ая версия, но для ОС AIX (т.е. уже третьей поддерживаемой платформы).

На первый взгляд, кажется что 4-ая версия VAC++ для Windows NT имеет более высокий уровень (buildlevel), чем OS/2-версия: для NT-версии выпущено две версии фикспаков, для OS/2-версии - только одна. Причина - банальная - проблемы Windows 2000, для которой и понадобилось выпустить лишний фикспак, т.к. без него, Windows не работает с Visual Age.

Официально, IBM до сих пор не заявила, остановится ли разработка VAC++ для OS/2 и NT. Но она также не объявляет о продолжении разработок. Надежда о положительном развитии событий сохраняется.

Значит ли это, что начиная с января, мы больше не сможем писать программы для OS/2? Конечно же нет! Хотя заранее понятно, что закрытие проекта VAC++ окажется огромной потерей для OS/2!

VAC++ - это больше, чем просто компилятор. Чтобы это понять, рассмотрим составные части VAC++.


Компилятор

В составе VAC++ идет быстрый, хорошо оптимизирующий компилятор. Он был полностью переписан для 4-ой версии. Теперь он поддерживает стандарт ANSI-C++ и некоторые "революционные", характерные только для VAC++ особенности. Например, файлы заголовков и obj-файлы - уже не обязательны, потому что генерируемый код сохраняется в базе данных "codestore". Это приводит к тому, что после небольших изменений кода, требуется перекомпилировать только участок измененного кода, что приводит к заметной экономии времени разработчика.

Надо признать, что версия 4.01 (4-ая с наложенным 1-ым фикспаком) со всеми этими особенностями еще не "устоялась", как предыдущая версия 3.08 (версия 3.0 с 8-ым фикспаком), поэтому многие разработчики до сих пор предпочитают старую версию: быстрый и надежный C/C++ компилятор, хотя и не поддерживающий все требования ANSI-C++ стандарта. Это основная неприятность, если необходимо перекомпилировать (портировать) какой-то исходник в среду OS/2.

Если разработка VAC++ будет остановлена, мы столкнемся с выбором: либо текущая неустоявшаяся версия (версия 4.01), либо надежная 3.08.

Альтернативы компилятору VAC++:

  1. GNU C/C++, с EMX от Eberhard Matthes: в перую очередь полезна для последователей "Open Sources"-подхода. (ран-тайм библиотека этого компилятора (набор emx-dll'ей) стала стандартом де-факто для всех OS/2 систем)
  2. Watcom C/C++ со своей средой разработки (выпускается с открытыми исходниками)
Оба компилятора уже зарекомендовали себя, как надежные и пригодные для использования в народном хозяйстве компиляторы.


IDE - Интегрированная среда разработчика

Что касается IDE, то между версиями 3.0 и 4.0 есть огромное различие. Это, как два, совершенно разных продукта. Обе - по-своему хороши, поэтому, каждая из них имеет своих последователей и оппонентов. Более того, бе IDE кординально отличаются от других IDE (MS Visual-Studio и Delphi). Основная направленность IDE от VAC++ 3-ей версии - это объектно-ориентированность во всем: она прекрасно интегрируется в WPS и предусматривает модульный дизайн приложений. Новые инструменты (tools) могут быть интегрированы наряду со стандартными, и даже могут заменяться (Например, можно приделать EMX-компилятор).


IDE от 4-ой версии VAC++ предоставляет замечательную возможность браузинга по коду проекта самыми невероятными способами (независимо от сложности проект). Это возможно благодаря использованию базы данных codestore.

Найти альтернативу этих сред - намного сложнее, чем найти альтернативу компилятору. Для тех, кто привык работать в 3.0 или 4.0, все остальные предложения покажутся слабыми. Хотя, конечно, существуют мощные редакторы (freeware или с открытыми исходниками), с возможностью подсветки синтаксиса, возможностью выполнения компиляции, запуска дебагера.


OCL - октрытая библиотека классов

Все, кто пишет C++ программы, обязательно использует библиотеки классов. И это особенно важно при программировании приложений, работающих в графической среде Presentation Manager. VAC++ содержит в своем составе OCL - "Open Class Library". Библиотека корректно спроектирована, мощная. Библиотека инкапсулирует основные структуры данных (стринги, комплексные числа, контейнеры, и т.д.) и функции для работы с графическим пользовательским интерфейсом PM. Зато нет классов для работы с интернетом, которые, тем не менее, можно взять из других библиотек.

Существует огромное количество альтернативных библиотек классов, в основном платформо-независимых, портированных из других ОС. А вот с PM-библиотеками (т.е. теми, которые инкапсулируют окна Presentation Managerа и различные элементы управления) все намного хуже.
OCL - это библиотека, которая реализует PM-архитектуру самым натуральным образом, не откланяясь к парадигме программирования Windows или Unix.

Другое концептуальное отличие OCL - это разделение функций визуализации и обработки событий (пример события - нажатие кнопки мыши) элементами управления в своих собственных классах. Это приводит к более элегантным и масштабируемым, чем другие, решениям (по сравнению с MFC - Microsoft Foundation Classes с их чрезмерным использованием макросов). Механизм уведомлений (который позволяет различным C++ объектам посылать друг другу сообщения) даже не существует в большинстве остальных библиотек.

Поэтому, немедленное замещение OCL - невозможно: перевод кода, который использует классы OCL в какую-то другую библиотеку классов, потребует полное переписывание кода. Некоторые участники IBM форумов, упомянутых выше, спрашивают о возможности октрытия исходников OCL (исходники доступны уже сейчас, но не являются Open Sources). Обсуждается создание собственных клонов этой библиотеки для Linux. Это позволит переносить хорошие и полезные программы из одной ОС в другую без каких-либо дополнительных затрат.


"Visual Builder"

Visual Builder (VB) - это уникальный инструмент для визуального программирования, для которого до сих пор не создано достойной альтернативы. Если бы VB был правильно разрекламирован на рынке, он привел бы к настоящей эпохе визаульного программирования. Маркетологи Microsoft хорошо понимали, когда давали своей IDE похожее имя ("Microsoft Visual C/C++" похоже на IBM-овское "VisualAge C/C++"). Оно не оправдывает себя: продукция MS не содержит тех возможностей, которые есть у Visual Builderа - но кто знает об этом, кроме нескольких программистов?

VB не только позволяет расположить элементы управления на диалоговых окнах, но также позволяет "рисовать" логическую схему, которая их объединяет. Тоже самое - для невидимых элементов (списки, переменные, фактории (генераторы данных)). Созданные вами диаграммы, используются VB для создания C++ кода, который может быть дополнен кодом программиста, набранным вручную. Самописный и графически-созданный код может взаимодействовать друг с другом разными способами, полностью переведен в одно из состояний (набранный вручную/графическое представление). Компоненты, которые были созданы таким образом, можно повторно использовать в других проектах, т.е. прослеживается концепция объектно-ориентированности.

К сожалению, все перечисленные особенности и простота, для многих VAC++ программистов остается неизведанными. Основная причина - это необходимость предварительных тренировок. Особенно удручает то, что процесс переключения между ручным кодированием и графическим представлением кода плохо документирован. Большинство вещей приходится постигать на своих ошибках, что, естественно, является минусом для потенциальных пользователей VAC++


Эпилог

Остановка разработки VAC++ нанесет огромный урон OS/2-сообществу, несмотря на то, что существуют альтернативы некоторым его компонентам (компилятору, библиотеке классов). Те, кто видит будущее OS/2, как "Open Sources"-среду (как, например, автор статьи), даже приветствуют эту потерю. Но, хочу вас заверить, что это недальновидное мнение. Конечно, EMX C/C++ - это здорово, но до VAC++ ему еще расти и расти!

Если разработка VAC++ будет остановлена, моим главным пожеланием будет выпуск релиза OCL с лицензией "Open Source".

Текущие версии продуктов семейства Visual Age успешно используются и сейчас. Жалко только, что 4-ая версия так и не достигнет нужного уровня стабильности и относительной безглючности, (по сравнению с 3.08), которые является определяющими для инструментов программиста.

Прочитав статью, читатель может воскликнуть: "чего-чего, а прекрасный инструмент разработчика у нас имеется!". И я даже соглашусь с этим, но только с одним "но": если IBM доделает четвертую версию VAC++, и сделает ее по-настоящему стабильной.

Вообщем, ситуация вокруг VAC++ очень похожа на ситуацию вокруг самой OS/2. Не надо строить иллюзий, но будем надеяться на лучшее!

Оригинал публикации, автор: Cornelis Bockemщhl




Обсудить материал (число отзывов:0)


предыдущий материал  |  следующий материал


 Вокруг OS/2 |  Программы и технологии |  Аппаратура |  Разработчикам |  Мастерская


Новости
15/08: GoldenCode выпустит Java 1.4 для OS/2
14/06: Fix #16 rus / Warp4
30/05: Перерыв в работе OS2.Ru
Все новости..

В каталоге
Дерево каталога
Новые поступления

Публикации
Боремся с зависанием PM и зомби - WatchCat + HardKill
(Samorukov Alex , 2001-10-11)

DSync - куда может быть проще?
(Okounkov Konstantin, 2001-09-28)

WarpGoGo: переводим музыку в MP3
(Okounkov Konstantin, 2001-09-26)

Все материалы

Решения
Tips & tricks

Активные опросы
Используете ли Вы OS2.Ru tab в Netscape ?

Все опросы
Первая страница  |   Об OS/2  |   Новости  |   Публикации  |   База данных  |   Каталог ресурсов  |   Биржа труда  |   TeamDB  |   Форумы общения  |   Опросы и голосования  |   OS2.Ru DevCenter
Дизайн, оформление © 1996-2000 Copyright WebTeam. Использование материалов OS2.Ru без согласия авторов и координаторов запрещено
Powered by OS/2