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 > Around > Arguments > Imho Sapiens.phtml.ru
2001-09-17
Eli Krakovsky
(версия для печати)

Мнение нефанатичного девелопера (IMHO Sapiens)

В качестве вступления..

..хочу сразу прояснить пару вещей:
Во-первых, опыт моего общения с OS/2 составляет около шести лет а с вычтехникой около десяти. Поэтому хоть и не претендую на звание саксаула, т.е. аксакала, но кое-что в этом смыслю.
Второй аспект состоит в том, что в программирование я пришел, имея за плечами теорфизическое образование, и всегда смотрел на занятие программизмом (да простят меня апологеты) как на инструментарий а не самоцель - даже когда паял самопальный БПФ и писал под него драйвер на асме и программу мажорирования рядов Фурье в машинных кодах (ужас, не правда ли? ;)). На этом небольшую лирическую преамбулу можно считать законченной и перейти к основной слаболирической части.


На OS/2 я обратил внимание относительно давно - сначала узнал, что есть великий и ужасный IBM PS/2 с микроканальной архитектурой, и про его загадочную многозадачную операционную систему. Но поскольку в бренных останках от СССР в начале 90х не то что PS/2, а ПЭВМ на основе 80386 стоили весьма и весьма больших денег, то приходилось ограничиваться литературой (довольно слабокачественной) а из многозадочных систем DeskView, Windows 3.0 или DOS 5.xx (для тех, кто не знает, была специальная команда для переключения такого DOS в многозадачный режим и работой с процессором в защищенном режиме). И так было до тех пор пока я не начал работать и в мои шаловливые ручки не попал 486DX2-80, на котором уже можно было поднять Warp3 (а точнее он уже был там предустановлен).

Фактически сразу я начал программировать под OS/2. Во-первых, это REXX, при помощи которого можно делать очень много. Опыта я с ним имел как на OS/390, так и PCDOS, с ним проблем не было. Во-вторых, меня очень приятно поразил мультитаскинг OS/2 и относительная простота программирования GUI - потому что после знакомства с X-Libs у меня осталось стойкое ощущение того самого, что боты на IRC-канале выдают в ответ на calc unixway а именно занятие сексом в гамаке стоя на лыжах с завязанными глазами. ;) И наконец осознание того, что в одной нитке у меня крутятся нетяжелые вычисления, в другой они используются а я сижу и набиваю в e.exe сопроводительную записку ко всему этому и все это на P75 с 8Mb на Warp3 - приводило к полезности этой системы на рабочей станции. Уже потом я водрузил фидошку на OS/2 и понял, что автопилотные станции существуют не только на PC DOS 7.0, уже после я вышел в Инет и понял, что почему-то не боюсь сетевых вирусов...

Итак, вначале был REXX. Затем IBM C++/VAC, Watcom C, наконец с Warp4 появилась Java. Как известно, вначале никто не принимал этот язык в OS/2 всерьез, по крайней мере в экс-советской OS/2-community, в основном из-за того что "железо" у нас стоит относительно дорого, а виртуальная машина Java требует некоторых дополнительных ресурсов. Но при появлении версий 1.1.х, которые были уже не от Sun, а разработанные собственно IBM, а также с удешевлением железа (или ростом зарплат? ;)) начали уже прорисовываться выгоды от использования Java. Во-первых, известно что IBM JVM по различным тестам обходит по скорости Sun JVM, а IBM JVM/2 является чуть ли не самой быстрой из IBM'вских виртуальных машин. Апофеозом стало написание конфигурационных служб TCP/IP на Java и GUI Logical Volume Manager for WarpServer for eBusiness 4.5 aka Aurora, которые почему-то многие ругают, но меня они устраивают вполне и никаких раздражающих глюков я не замечал. Также открывается довольно широкий простор для написания кроссплатформенных приложений, в основном визуальных, которые могут писаться для, к примеру, Windows или Motiff - но без особенных скрипов запускаются в OS/2. Конечно, при всей своей простоте Java все же не настолько тривиальный язык, и на нем тоже нужно уметь писать, но правильно написанная программа будет правильно работать вне зависимости от ее окружения (к сожалению, таких программ все меньше, количество побеждает качество). Здесь, правда, надо оговориться что это не относится к Java Multimedia Framework, Java3D и т.п. - но это потому, на мой взгляд, что OS/2 не задумывалась как Entertaiment OS, подобно Windows - это Business OS в чистом виде, и потому не менялась еще чуть ли не с версии 2.11 мультимедийная подсистема, нет ни в одном из видеодрайверов, насколько мне известно, аппаратной 3d-акселерации. Однако утилитарные программы, написанные на Java, работают, вне зависимости от того под какую это платформу писалось. Принося куски своего рабочего проекта домой или просто запуская на работе ACP я к примеру наблюдаю, что визуальные Swing-классы великолепно работают, все шевелится быстрее, чем при соотвественных условиях на Windows2000 - и системой можно работать во время всего этого и после - в отличие от Windows, которую медленная и страдающая утечками памяти Sun JVM просто ввергает в такой ступор, после которого иногда приходится спасаться Reset'ом. Так что вслед за IBM'ом я могу сказать, что будущее OS/2-софта мне видится на довольно приличную часть состоящее из Java-программ.

Конечно, если отцы и матери (если таковые наличествуют) OS/2 в IBM видят ее как платформу для выполнения высокпроизводительных прикладных программ на Java, то не очень понятно как их писать в основном это относится к GUI-программам. Да, в составе ACP теперь идет новый Java2 Development Kit 1.3 с новым пакетом Java Foundation Classes, за что отдельное спасибо. Но я, к примеру, придерживаюсь мнения о том, что разработчику следует минимум внимания уделять программированию пользовательского интерфейса и максимум - функциональным аспектам программы. А это означает активное использование RAD (Rapid Application Development) систем. И тут нас ждет некоторое разочарование. Существующие на настоящий момент системы визуального конструирования Java-приложений - это IBM VisualAge for Java 3.02, NetBeans и полностью написанный на Java JBuilder от фирмы Inprise (а ныне, по слухам, опять Borland).

VAJ считается чуть ли не лучшим Java RAD, хотя по совершенно непонятным причинам IBM похоже пытается его совсем закрыть - но VAJ/2 использует JVM 1.1.7A, и отучить его к сожалению от этой печальной привычки мне лично так и не удалось - разве что попробовать битхак, но это совершенно героический подвиг, недоступный мне по причинам нехватки свободного времени. :) Это означает использование старого Swing и отсутствие методов в классах, которые были добавлены в более поздних версиях (к примеру, метод toArray() в классе java.util.Vector). Однако на мой взгляд не все так плохо - вполне можно нарисовать интерфейс в VAJ, а затем подменить имена package'ей - в любом случае это будет быстрее чем все делать руками в текстовом редакторе. Если эта процедура многократна - это можно сделать скриптом. Лично для меня это означает, что VAJ 3.02 пригоден к использованию. NetBeans RAD-системой можно назвать с некоторой натяжкой - но тем не менее он предоставляет относительно удобное IDE. Однако, по моему скромному мнению, для разработки чего-либо более крупного чем выведения в JTable таблицу из базы данных с возможностью редактирования он мало чем полезнее обыкновенного текстового редактора. И то хорошо.

Совсем недавно Вадиму Егорову удалось запустить под OS/2 Borland JBuilder - VRAD, который в последнее время даже пытается конкурировать с VAJ. Лично у меня JBuilder оставляет довольно тягостное впечатление - полностью написанный на Java модульная система, на Java же визуальный редактор, довольное неудобное расположение инструментальных конструкций. Притом это довольно "жручая" вещь, особенно при проектировании сложных визуальных форм. Единственное, на мой взгляд, преимущество - это pluggable JVM, проще говоря - возможность подключить любую виртуальную Java-машину и для нее разрабатывать приложение. Цена этому неповоротливость RAD'а, спонтанные exception'ы в визуальных классах и непонятные проблемы с кириллическими символами (последнее для меня вообще загадка).

Однако не единым Java живы девелоперы. Я стараюсь активно использовать C/C++, этот язык является моим предпочтительным языком программирования (если я имею возможность выбрать), к примеру я сейчас разрабатываю проект news/mail программы на основе исходников ProNews от безвременно почившей в бозе Panacea Software. Выбор С-компиляторов тоже относительно обширен: VisualAge C++, Watcom C и GNU C++. Последний мне активно не нравится, причем не столько из-за идеологических соображений (не нативный компилятор, много "собственных" конструкций), сколько из-за того что для исполнения программ нужен EMX runtime, который иногда страдает утечками памяти. Watcom C, легендарный компилятор - но давно похороненный , как и сам Watcom, поглощенная Powersoft. И последний по счету, но первый по значению - VAC. Опять-таки, незаслуженно обойденный вниманием, один из лучших визуальных RAD'ов (по моему глубокому убеждению, даже MS Visual C++ пасует перед VAC for Win32), обладает довольно нетривиальной схемой проектирования. Именно его я использую чаще всего в моих сишных разработках, хотя он и не идеален и IBM выпустила последний фикспак только под невизуальный IBM C++ 3.6.5 и настойчиво пытается вообще его похоронить для PC-based систем. Но тем не менее мощный визуальный конструктор в VAC 4.0 и строчный компилятор IBM C 3.6.5 меня вполне устраивают.

К чему этот миниобзор, столь похожий на остальные навязшие в зубах обзоры? Достаточно помотреть на название. Перед тем, как изложить основные тенденции, я попытался изложить основы "розовости очков", сквозь которые я смотрю на будущее OS/2. Конечно, это показывает некоторую тенденциозность подхода - но по-другому и нельзя. Мерило полезности ОС и ее прикладных программ - это их нужность конкретному пользователю, ни больше и не меньше. Мне значительно удобнее разрабатывать как Java ПО, так и нативное или кроссплатформенное C/C++-based ПО под OS/2, нежели под Windows (Linux я оставляю в стороне, т.к. нормальной JVM под него нет, а gcc меня не прельщает совершенно). Я не нагружаюсь мыслями о том, что Java-компилятор может упасть и вогнать систему в ступор, от которого может спасти только reset (светлой но матерной памяти VisualCafe посвящается) или думать, кто упал раньше - дебаггер из-за выделенных нескольких мегабайт памяти или система, которая вылетела от дебаггера (кто не видел падающего со свистом MS Visual Studio тот много потерял). Хотя истины ради надо сказать что я наблюдал падения VAC-дебаггера на некоррректном коде...Итак, на настоящий момент, кроме FIDO, Internet и LAN servering OS/2 для меня - это development platform, особенно учитывая то, что на настоящий момент я в основном занимаюсь программированием на Java фактически на одной и той же JVM. И для меня лично это будущее видится вполне оптимистично.

Теперь в качестве послесловия не могу пройти мимо довольно болезненного для некоторых членов OS/2-community вопросе - чего не хватает в полуоси. Ответ на этот вопрос более чем субъективен, и поэтому я не менее субъективно на него отвечу мне хватает в полуоси всего (помните, это субъективное мнение :))). Есть офисный пакет Lotus SmartSuite, довольно мощный, с проверкой русской орфографии для текстового процессора Lotus WordPro (в котором и набирается данная статья), с Lotus 1-2-3, на котором считается домашняя бухгалтерия и Lotus Organizer (предназначение очевидно). Есть современный интернет-браузер, который хоть и находится в стадии фактически бета-тестирования, но вполне работоспособен (желающие могут сравнить с MSIE 5.5, который хоть и не бета давно уже, но падуч как стальная балка и вполне в состоянии унести за собой систему). Есть Mail-клиент PMMail, позволяющий работать с рекс-хуками - немногие почтовые программы умеют такое. Есть довольно неплохой News reader ProNews - проект, основанный на оригинальных исходниках безвременно почившей Panacea Software, и который я разрабатываю по мере сил и свободного времени, о чем уже упоминал выше. :). Есть несколько MP3-плееров - чтобы слушать любимый Deep Purple или Smokie или еще что-нибудь приятное во время разработки. Есть несложные графические редакторы Embellish и Neon3D. И есть великолепная реляционная СУБД DB2 - единственная РСУБД позволяющая писать на едином языке как прикладные программы так и вложенные процедуры (например на С, Сobol или Java). Я даже не упоминаю фидософт - ни в одной другой ОС нет такой развитой инфраструктуры, и только в OS/2 есть очень быстрый Regina-тоссер (это не реклама! ;)). И мне не мешает ни отсутствие антиалиасинга: после TTY-терминалов зеленого свечения и текстмодового StaкTrack от Родионова и Ко споры о том, что без этого прожить нельзя, кажутся мне несерьезными; ни отсутствие Photoshop/2 - мне хватает для моих скромных целей PMView и Embellish, а после того что я видел на IRIX'е и Mac'ах мне и Photoshop кажется не слишком серьезным; ни отсутствие игрушек - меня не напрягает раз в месяц загрузиться в Windows и чего-то там погонять, а чаще мне и не надо. И фильмы я смотрю через ТВ-тюнер...на этом и хватит.

Подытоживая все вышеописанное - я с изрядной долей надежды смотрю в будущее OS/2 и полезность ее применения на моем рабочем месте как основной десктоп-системы. Это продиктовано исключительно спецификой моей работы в OS/2 а также моими вкусами и предпочтениями. Я ни в коей мере не претендую на "истину в последней инстанции" - просто высказываю свое мнение как разработчика и пользователя замечательной операционной системы и полагаю, что найдется еще пара людей, разделяющих мое мнение. Наверняка я что-то забыл, как из "pro", так и из "contra" - это неизбежно.

Я хотел бы выразить благодарность Константину Окунькову, который таки запинал меня на написание эдакой неспециализированной околотематической статьи, а также авторам статей которые я обычно называю "I started to believe and Jesus saves me, или я перешел с OS/2 на Linux/FreeBSD/Windows/etc и мои волосы пришли в согласие с моим кислотно-щелочным балансом";-) и которые подвигли меня на такой "наш ответ Чемберлену".


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




 Вокруг 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