Способный ребенок
Скорость: за и против
Визуальное программирование
Создание классов
Развертывание и мобильность
Повторное использование кода
Групповая разработка
В конце концов, мир тесен

Многие программисты так и не смогли до конца осознать, что объектно-ориентированное программирование (ООП) - это методика, а не универсальное средство на все случаи жизни. Немногие сделали концептуальный переход от структурного программирования, которым они занимались на Паскале и Коболе, к таким важным понятиям ООП, как наследование, инкапсуляция и полиморфизм.

И все же число программистов, которые удовлетворены возможностями ООП, неуклонно растет. Эти разработчики занимаются ООП ежедневно; они считают, что эта методика позволяет облегчить и ускорить процесс создания и распространения их программ. Для них ООП и Smalltalk суть одно, и едва ли это можно назвать праздной болтовней.

Например, из отчета IDC за март 1995 года видно, что доход от продаж ПО Smalltalk увеличился на 60% в 1994 году по сравнению с 1993. Эксперт IDC Стив Макклюре предполагает, что процент увеличения дохода будет продолжать расти в течение нескольких лет, хотя рынок Smalltalk в целом останется в 6-8 раз меньше рынка C++. Макклюре считает, что причиной увеличения спроса на Smalltalk являются его быстрота разработки и переносимость приложений.

"В качестве средства разработки Smalltalk в три или четыре раза более продуктивен, чем Кобол или PL/1", - говорит Макклюре. В условиях, когда компаниям приходится выдерживать жесткую конкуренцию, простота освоения Smalltalk, возможность повторного использование кода, а также средства быстрого программирования дают те преимущества, которые позволяют отделам информационных служб ускорить работу при минимальных затратах.

В средств разработки Smalltalk испытывались четыре пакета ведущих поставщиков: Object Studio 4.1 компании VMark Software (раньше принадлежавший корпорации Easel), VisualAge Team для Smalltalk 2.0 фирмы IBM, а также Visual Smalltalk Enterprise 3.0 и VisualWorks 2.0 корпорации ParcPlace-Digitalk. (Благодаря слиянию корпораций ParcPlace и Digitalk, в конечном счете эти два пакета объединяются. Тем временем, новая компания продолжает продавать обе версии Smalltalk, поэтому мы рассматривали каждую как отдельный продукт.)

Способный ребенок

25 лет назад в исследовательском центре Palo Alto корпорации Xerox были созданы объектно-ориентированные концепции классов, объектов и методов Smalltalk, которые нашли воплощение в современных языках ООП.

С самого начала Smalltalk целиком разрабатывался как объектно-ориентированный язык, поэтому в нем, в отличие от C++ или Object Pascal, объектно-ориентированные свойства не вводились по ходу дела. Если вы можете пользоваться C++ и Object Pascal, даже не имея понятия об их возможностях ООП, в Smalltalk объектной ориентации избежать нельзя. Нравится это вам или нет, но для того, чтобы пользоваться Smalltalk, необходимо уметь оценить преимущества, которые дает ООП. В Smalltalk все представлено в виде объектов, от концепций высокого уровня, как, например, окна, до низкоуровневых целых и символьных переменных. Большинство коммерческих версий среды содержит сотни, если не тысячи уже готовых объектов, каждый со своими собственными методами, что означает наличие сказочно большой библиотеки, которая находится в распоряжении у начинающих программистов. Если вы запускаете среду Smalltalk, разработка программы будет включать настройку сопровождающей библиотеки и среды разработки. Вы можете либо повторно использовать готовые классы в создаваемых программах, либо наследовать их возможности в ваших собственных объектах.

Помимо самого языка среда Smalltalk включает и то, что специалист по данному средству разработки Эрик Клайберг называет "объектным супом". Клайберг постоянно пользуется Smalltalk вот уже четыре года, будучи учредителем корпорации Objectshare Systems, занимающейся созданием инструментальных средств и утилит Smalltalk. "Объектная иерархия Smalltalk обладает огромным количеством встроенных функциональных возможностей, - говорит Клайберг, - благодаря чему нет необходимости покупать библиотеку у других производителей, и что как правило приходится делать во многих других языках из-за пропусков в компиляторах. Более того, если вы покупаете несколько библиотек для разработки в C/C++, у вас нет никакой гарантии, что они будут работать вместе".

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

Скорость: за и против

Несмотря на все свои преимущества, Smalltalk может быть идеальным средством разработки далеко не для всех проектов. Его приверженцы говорят, что Smalltalk позволяет быстрее писать сложные программы. Противники же считают, что он сильно отличается от других языков, поэтому им трудно овладеть, и что знание синтаксиса само по себе еще не гарантирует, что вам удастся сделать на нем что-нибудь полезное.

Богатый набор инструментальных средств Smalltalk соседствует и с существенными недостатками. Прежде всего это выражается в больших исполняемых файлах и их более медленной работе в сравнении с программами, написанными на C/C++. Чтобы исправить положение, поставщики выпустили ряд утилит, как например Smalltalk Link Libraries (SLL) корпорации ParcPlace-Digitalk, позволяющие разработчикам разрезать приложения на более быстрые части с более скромными требованиями к пространству. Клайберг считает, что нареканий к работе Smalltalk становится все меньше с повсеместным распространением более мощных компьютеров. Более того, способность быстрого реагирования на вносимые заказчиком изменения может оказаться более существенной, нежели небольшие потери в скорости выполнения.

Джефф Маккенна, президент McKenna Consulting Group, считает, что более важно выпустить приложение, чем сделать его работающим на 10% быстрее. Повторное использование кода, возможное в Smalltalk, позволяет существенно увеличить производительность при создании программного обеспечения. Маккенна программирует на Smalltalk начиная с 1983 года. Он полагает, что использовать Smalltalk для решения любой задачи, где есть код и компьютер, как например при написании операционной системы, ошибочно. "Язык C заботится о компьютере, - резюмирует он, - а Smalltalk - о приложении". По мнению нашего собеседника, как правило, люди, желающие во всех аспектах осуществлять управление своими компьютерами, не пользуются Smalltalk с его автоматическим управлением памятью и другими функциями, призванными избавить разработчика от решения некоторых рутинных задач, печально известных каждому программисту. Для написания операционных систем и драйверов все-таки лучше воспользоваться C и C++. Но для многих задач разработки общего назначения лучше подойдет именно Smalltalk.

Тестирование показало, что есть несколько зрелых версий Smalltalk, предлагающих программистам удачную среду разработки. Корпорация IBM, которая появилась в сфере разработки приложений совсем недавно со своим пакетом VisualAge, производит впечатление простотой использования и средой визуального программирования. Слияние компаний ParcPlace и Digitalk укрепляет позиции прежних соперников и предвещает возможное объединение их продуктов, Visual Smalltalk Enterprise и VisualWorks, в мощную среду Smalltalk с солидной технологией и хорошим пониманием потребностей разработчиков.


Роберт А. Дель Росси - технологический директор корпорации Liberty Real Estate Group в городе Бостоне. С ним можно связаться по адресу robert_delrossi@ infoworld.com или через CompuServe по 71510,1726.

Визуальное программирование

Object Studio 4.1
хорошо

Object Studio компании VMark Software - единственная из тестированных нами сред Smalltalk, которая имеет интегрированный набор средств визуальной разработки графического слоя, слоя деловых объектов и слоя доступа к базе данных объектно-ориентированных приложений. Однако в Object Studio вам потребуется самому написать код для связи этих слоев, тогда как в других средах этот код создается автоматически, как только объекты скомпонованы визуально.

Блок визуальной разработки Object Studio, который носит название Synchronicity, позволяет при помощи набора диаграмм определить атрибуты, классы, методы и отношения объекта, которые составят деловую модель. Как только деловая модель закончена, вы переходите к Enfin, части языка Smalltalk в Object Studio, с помощью которого создается скелетный код приложения. Syncronicity также учитывает любые изменения, производящиеся в коде Smalltalk, автоматически отражая их в деловой модели. Enfin содержит такие средства визуального программирования как программа просмотра и программа создания графического интерфейса пользователя.

Программа создания графического интерфейса пользователя предлагает палитру виджетов. Набор прилагаемых виджетов довольно ограниченный: хотя нам и удалось добавить несколько новых пиктограмм в палитру, общее число их пиктограмм должно помещаться на одной странице. Раздел Persistent Object Mapping в Synchronicity позволяет отображать объекты на таблицы связей с реляционной базой данных при связях "один ко многим", тем самым выполняя задачу, которую не хотелось бы делать вручную. Отображение было достаточно наглядным благодаря разумному выбору цветов и формы пиктограмм, служащих для обозначения связей столбцов.

Создание методов для объектов пользователя - довольно простое дело. Оно заключается в последовательном заполнении появляющихся шаблонов. Object Studio обладает инструментарием для создания визуального компонента из небольшого приложения, состоящего из визуальных виджетов, и помещения затем этого компонента в другое окно.

Однако чтобы проделать то же самое с множеством деловых объектов, необходимо было выйти из среды Smalltalk. Это не позволило нам рассматривать все части нашего приложения в качестве компонентов.

VisualAge Team for Smalltalk 2.0
очень хорошо

Как и в Visual Smalltalk корпорации Digitalk, в VisualAge корпорации IBM используется визуальная сборка компонентов, что позволяет писать приложения, не прибегая при этом непосредственно к коду. Однако между этими пакетами существует существенное различие: картинки пиктограмм в VisualAge Parts отображают классы загружаемой программы (image), а не экземпляры (instances) класса, как в Visual Smalltalk. Это значит, что опуская пиктограмму пользовательской "части" на VisualAge Composition Editor, вы на самом деле опускаете на него шаблон пользователя - генератор пользователей, а не экземпляр данного пользователя. Осуществлять взаимосвязь объектов друг с другом позволяет дополнительная категория интерфейса VisualAge - атрибуты".

Визуальное программирование в Composition Editor с использованием хорошо знакомых визуальных метафор. Когда возникает необходимость добавить метод или класс, разработчики VisualAge предлагают воспользоваться двумя контекстно-зависимыми текстовыми редакторами, которые облегчат процесс создания метода и перевода его на уровень общего интерфейса общего действия. Переход к Script Editor и Public Interface Editors осуществляется через пиктограммы в нижней части Composition Editor, что позволило нам избежать обычного в таких ситуациях кругового хождения по программе.

Visual Smalltalk Enterpise 3.0
очень хорошо

Корпорация Digitalk (до своего слияния с ParcPlace) была лидером в области визуального программирования со своим пакетом Parts и оригинальной технологией компоновки. В настоящее время Visual Smalltalk компании ParcPlace-Digitalk представляет из себя сочетание технологии Parts и большой библиотеки классов, образующее простое в использовании средство визуального программирования.

Тестовое приложение было написано при помощи Parts Workbench. Метафоры, которые используются в ней, как например сборка компонентов посредством выбора их из каталогов частей, достаточно интуитивны; программа выдает ясную и полезную информацию. Например, мы связывали пиктограммы, представляющие компоненты, протягивая между ними нити; при двойном нажатии кнопки мыши на пиктограмму программа выдавала подробную информацию, которая содержится внутри компонента, что позволяет лучше понять связи, когда нужно представить себе приложение как целое.

Можно достаточно быстро создать приложение, скомпоновав пользовательские деловые части. При этом мы пользовались SQL-библиотекой, доступом к базе данных и визуальными экранными виджетами. Средства визуального программирования, предоставляемые Digitalk, приходят на помощь на каждом из этапов. Архитектура Smalltalk производит хорошее впечатление. Она представляет из себя серьезную базу для программирования объектно-ориентированных приложений с использованием только кнопки мыши.

VisualWorks 2.0
удовлетворительно

Для визуального программирования среда VisualWorks компании ParcPlace-Digitalk предлагает инструмент - Canvas и Data Modeler. "Холст" (Canvas) со своей палитрой - это программа для создания стандартного графического интерфейса пользователя, обладающая дополнительными разделами возможностями: она позволяет увидеть, каким будет ваш интерфейс в различных операционных системах: OS/2, OSF Motif, Windows и Macintosh. Очень полезная функция, если вы пишете приложение для нескольких платформ.

Data Modeler поддерживает отображение таблиц на объекты-домены. В настоящее время ее возможности ограничены отображениями один к одному. Сначала вы определяете тип данных столбца и тип объекта переменной экземпляра; затем Data Modeler позволяет вам осуществить с использованием базы данных проверку, насколько приемлемы сделанные вами отображения. Можно также устанавливать отношения между объектами-доменами, устанавливая для объекта-домена тип объекта "переменная экземпляра".


Создание классов

Object Studio 4.1
удовлетворительно

Располагая небольшой библиотекой классов, Object Studio существенно отстает от конкурентов в возможностях их создания. В иерархии Object Studio мы насчитали менее половины классов, содержащихся в VisualWorks или VisualAge. Ее библиотека классов близко подошла к полному использованию языка Smalltalk времен истоков последнего, но, вероятно, не предоставит более богатого набора вплоть до окончания разработки стандарта ANSI, в которой принимают участие специалисты, связанные с Object Studio.

Маленькая библиотека классов - существенный недостаток. Она предоставляет программистам менее развитую структуру и меньше "поведений" для наследования при создании пользовательских классов. Если вам требуется создать что-то необычное, вероятнее всего вам придется писать это самостоятельно. То, что вы создадите может оказаться слишком специальным, и его непросто будет использовать в последующих приложениях. С другой стороны, маленькую библиотеку классов легко освоить, и она располагает достаточным количеством классов, чтобы удовлетворить разработчиков при создании большинства обычных деловых приложений.

Object Studio предоставляет редакторы и программы отладки, отвечающие потребностям программистов. Можно одновременно открывать несколько программ просмотра классов, что позволяет лучше прослеживать ход выполнения кода, чем с одной программой просмотра. Кроме того, нам понравилось, как программа просмотра иерархии классов применяет простой, но эффективный способ продвижения вглубь по подклассам. Там, где программы просмотра иерархии обычно используют пробелы, в программах просмотра Object Studio можно при нотации в иерархических списках классов использовать точки: какая точка соответствует одному уровню подкласса. Это облегчает чтение.

VisualAge Team for Smalltalk 2.0
очень хорошо

Будучи относительным новичком в области Smalltalk, фирма IBM подготовила тем не менее для VisualAge библиотеку классов, которая конкурирует с VisualWorks по размерам и области охвата. Она хорошо организована, имеет префиксы для идентификации категорий классов. Префиксы обеспечивают двойное преимущество: наличие классов, расположенных в алфавитном порядке в иерархии программы просмотра, и отсутствие конфликтов с именами при использовании классов из продуктов других поставщиков, которые могут быть добавлены к загружаемой программе VisualAge.

Как и другие среды Smalltalk, рассмотренные нами, VisualAge позволяла нам одновременно открывать несколько программ просмотра иерархии классов. VisualAge обладает усовершенствованной программой просмотра классов. Ее TrialBlazer Browser имеет посередине экрана горизонтальную панель с кнопками, дающими возможность увидеть истории просмотров. При нажатии на эти кнопки окна переключались на отображение предыдущих поисков, производившихся для получения указанного компонента. Это походило на перелистывание страниц книги с картинками и давало представление о наших классах и компонентах.

Редактор сценариев также содержит два удобных средства помощи разработчикам: Attribute Helper и Language Helper. Они удобны тем, что можно легко перемещать и определять фрагменты кода в редакторе сценариев, что улучшает качество составленных методов.

IBM применяет открытые стандарты там, где это возможно. Например, ее графические классы увязаны со стандартом IEEE X Window, а классы вспомогательных элементов соответствуют стандарту IEEE Motif. Разработчикам для Windows и OS/2 не придется непосредственно иметь дело с этими классами, поскольку VisualAge представляет их в событийно-управляемом виде, естественном для этих ОС. Классы интерфейса файлов соответствуют стандарту Posix, что делает любое приложение с их использованием легко переносимым.

Visual Smalltalk Enterprise 3.0
хорошо

Visual Smalltalk предлагает стандартные редакторы и возможности отладки, а также соответствующие программы просмотра. Данную среду отличает гибкий способ интегрирования компонентов в программу Smalltalk при помощи Parts Workbench. Например, в нашем пробном приложении мы создали классы заказчиков и заказов при помощи стандартных программных инструментальных средств Visual Smalltalk. Затем мы определили внешний интерфейс "частей" (сообщения, которые соответствовали доступным методам деловых объектов и стандартным событиям ОС, которые запускают эти сообщения) и создали файл с расширением. PAR. Этот файл появляется в каталоге, и в дальнейшем программисты могут пользоваться им как черным ящиком, не вникая в детали реализации. Путем динамического объединения файлов .PAR может быть создано целое приложение. Другой путь - не использовать файлы .PAR, а загружать для использования класс в вашей исполняемой программе.

Там, где это было необходимо, мы пользовались настройкой существующих частей, добавляя Smalltalk-сценарии. Эти описания воздействуют только на поведение конкретного экземпляра части, что позволяет разработчикам использовать преимущество повторного применения классов при написании приложения.

VisualWorks 2.0
очень хорошо

Библиотека классов VisualWorks обладает широкими возможностями работы с большим числом различных приложений для ОС с различной архитектурой, для разных СУБД, структур связей, сетей, и языков. Основа этой библиотеки - набор базовых классов, которые сформировали ядро стандарта языка в версии ANSI, который в настоящее время находится в процессе реализации. Эти классы расширены рядом полезных структур для доступа к базам данных и других программных потребностей приложения.

Имея около 1000 классов, столь подробная библиотека могла бы стать причиной уничтожения структуры, если бы не эффективные средства для просмотра классов во множестве контекстов, которыми располагает VisualWorks. Вы можете просматривать классы, отсортированные по приложению или по списку категорий класса; методы организованы по их типу протокола, как то: методы доступа, методы действия и методы изменения.

VisualWorks, как и все остальные среды Smalltalk, имеет встроенный редактор и отладчик. Когда во время выполнения программы возникает ошибка, вы имеете возможность отслеживания последовательности внутрикомпонентных сообщений с выделением проблемных областей, а также просмотра значений переменных, чтобы лучше понять состояние объекта. Вы можете исправить ошибку, изменив в редакторе код, и перезапустить ваше приложение с экономящей время инкрементной повторной компиляцией.

Единственным обстоятельством, омрачившим наше знакомство с VisualWorks, было то, что нам понадобилось время, чтобы привыкнуть к работе графического интерфейса пользователя. Вместо того, чтобы использовать для совершения действия события ОС, VisualWorks опрашивает каждое активное окно, чтобы определить, не нуждается ли оно в управлении. Например, когда мы набрали входное поле, экран по окончании процедуры обновлен не был. Вместо этого, поскольку курсор мыши был смещен относительно входного поля, контроллер верхнего слоя графического интерфейса пользователя на нажатия клавиш не реагировал. Когда мы указали курсором мыши на это поле, экран немедленно обновился. Опрашивание - один из компромиссов, позволяющих VisualWorks запускаться на таком большом количестве платформ. Это не наносит ущерба и не является ошибкой, но, несомненно, если вы ожидаете реакции интерфейса Windows, это является неудобством.

Диалоговые блоки в VisualWorks поэтапно ведут к созданию класса. В этом примере мы создавали класс для использования в приложении базы данных.

Раздел Language Helper в VisualAge ускоряет разработку путем удаления и вставки сокращения для помещения кода в редактор описаний.

Программы просмотра в Visual Smalltalk Enterprise позволяют внедряться в иерархию классов; редактируемая область дает возможность настраивать классы на конкретное применение.


Развертывание и мобильность

Object Studio 4.1
удовлетворительно

Object Studio достаточно посредственно справилась с созданием выполнимого файла для нашего приложения, сократив достаточное число классов, нужных только для разработки, для приведения модуля run-time к достаточно разумным размерам при запуске на большинстве рабочих станций.

Нам удалось получить еще меньшую загружаемую программу при помощи прилагаемого Small Program Generator, который позволяет работать последовательно, класс за классом, удаляя части кода, ненужные для нашего приложения. В итоге наше приложение состояло из run-time-модуля, разработанного объекта и выбранных DLL.

Мы перенесли наше приложение в OS/2, вставив классы в среду OS/2 Object Studio и затем пересоздав загружаемый файл. Этот процесс показался нам простым в осуществлении.

VisualAge Team для Smalltalk 2.0
хорошо

Создание окончательного пакета для нашего приложения оказалось легко осуществимо при помощи однокнопочного компоновщика, входящего в стандартный комплект VisualAge Team корпорации IBM. В итоге получился мобильный выполнимый файл, поскольку компоновщик VisualAge автоматически удаляет ненужные классы. Для опытных программистов Smalltalk имеется возможность настройки удаления, однако нам не хватило квалификации, чтобы испытать этот блок.

Несколько раз нам пришлось подвергнуться тяжелому испытанию, чтобы перенести приложение на OS/2. Хотя двоичные коды для Windows и OS/2 теоретически совместимы до тех пор, пока вы не используете специальный системный вызов, достичь это на практике маловероятно. Мы были вынуждены переносить классы и пересоздавать исполняемый файл для нашего пробного приложения. Наиболее простым способом переноса между Windows и OS/2 было сначала подсоединить станции, где велись разработки под Windows и OS/2 с Team Server, после чего уже пользоваться разделяемой библиотекой классов.

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

Visual Smalltalk Enterprise 3.0
очень хорошо

Корпорация ParcPlace-Digitalk создала для Visual Smalltalk мощный метод создания небольших выполнимых файлов, которые запускаются на машинах с минимальной конфигурацией, например, только с 8 Мбайтами оперативной памяти. Эта возможность получила реализацию благодаря тому, что ParcPlace-Digitalk назвала Smalltalk Link Libraries (SLL).

SLL связывают куски приложения в исполняемый модуль, подобно DLL, которые используются в Windows 3.1. архитектура идеальна при развертывании больших приложений на аппаратных средствах с ограниченной памятью: редко используемые части приложений становятся SLL, которые сменяют друг друга в памяти по необходимости, тем самым оптимизируя ее использование. Вместо того, чтобы использовать всю доступную память, приложение занимает ее ровно столько, сколько необходимо и когда необходимо.

Помимо разрезания приложений, сопровождающего SLL, Visual Smalltalk в целом создает самые маленькие выполнимые файлы. Приложение, разработанное в Visual Smalltalk, может быть собрано как приложение Smalltalk или как приложение Parts. Это - наследие тех времен, когда Parts было отдельным приложением. Если оно собрано как приложение Smalltalk, оно становится разделенным на различные DLL для разработки и основные классы, из которых составлено приложение.

Разработка DLL не включена в исполняемый модуль, что позволяет экономить место. Приложение Parts - то же приложение Smalltalk, но с другим источником; на практике результат получается тот же.

Перенесение Visual Smalltalk на OS/2 было удивительно легко, поскольку в последнем релизе Visual Smalltalk версии под OS/2 и Windows полностью двоично совместимы. Все, что нам надо было сделать, это скопировать выполняемый файл с одной машины на другую, и дело с концом.

VisualWorks 2.0
хорошо

Мобильность платформ ставит VisualWorks особняком от остальных сред Smalltalk. Мы ограничили наше тестирование средами Windows 3.1 и OS/2; однако, VisualWorks работает также под Macintosh и многими разновидностями Unix. Поэтому для многих сред ОС кроме VisualWorks другого выбора просто не существует.

Из привлекательных черт VisualWorks можно выделить совместимость платформ. Как и в Visual Smalltalk, можно запускать приложения, не изменяя их, в Windows 3.1 и OS/2. ParcPlace-Digitalk гарантирует таким же образом совместимость с любой из вышеназванных платформ.

Такая мобильность имеет и свою обратную сторону.Функции, уникальные для какой-то из ОС, как правило бывают недоступны. В дополнение к этому, нам пришлось изрядно попотеть при создании нашего исполняемого файла, поскольку процесс удаления классов, нужных только во время разработки, был крайне непредсказуем.

Для этих целей VisualWorks предоставляет утилиту Stripper. Также VisualWorks предлагает программу Whittler для точной настройки, удаляющие ненужные для исполняемого модуля классы и отдельные методы. Мы сочли процесс "очистки" ненадежным, поскольку общая техника, которая используется в средах Smalltalk, состоит в динамическом связывании кода. При таком подходе выбор классов, которые не нужны вашему приложению в исполняемом модуле, превращается в своего рода игру-угадайку.

Small Program Generator в Object Studio позволяет сократить размеры исполняемого модуля, удаляя ненужные классы из выполнимого файла.


Повторное использование кода

Object Studio 4.1
хорошо

Object Studio располагает стандартной программой просмотра классов, позволяющей разработчикам осуществлять поиск объектов для повторного использования. Помимо этого, в Object Studio имеется несколько дополнительных возможностей, как например создание собственной библиотеки файлов компонентов. В целях повышения производительности разработчик может поместить пиктограмму определенного им компонента на палитру программы создания графического интерфейса пользователя, что облегчит его повторное использование. В целом, разработчик может либо работать с созданным исполняемым файлом, либо помещать классы приложения в базовый исполняемый файл во время сеанса работы и извлекать их, когда работа закончена. Основное средство управления файлами Object Studio, Team Builder, способно справиться с такой задачей.

VisualAge Team for Smalltalk 2.0
очень хорошо

IBM снабдила VisualAge лучшими возможностями для повторного использования кода. Программы просмотра полезны, они достаточно быстро и полно освещают иерархию классов. В целом нам показалось, что VisualAge равноценен в данной области Visual Smalltalk Enterprise, однако существует одно примечательное исключение.

В то время, как Visual Smalltalk превращает все части инструментальных средств в экземпляры классов, VisualAge рассматривает эти компоненты как классы - шаблоны объектов. Это означает, что любая настройка должна производиться с классами, а не внутри конкретного приложения, над которым вы работаете. Преимущество данного метода состоит в том, что когда вы добавляете описание Smalltalk в часть VisualAge внутри иерархии, вы изменяете шаблон, то есть записанные изменения будут учитываться при всех использованиях этой части в будущем. Во многих случаях это будет значить перезапись изменений с новыми методами, что лучше отразится на дальнейшей разработке приложения.

Visual Smalltalk Enterprise 3.0
очень хорошо

Visual Smalltalk обладает несколькими инструментальными средствами, которые полезны при организации и документировании кода для повторного использования. Стандартные многооконные экранные программы просмотра позволяют осуществлять поиск существующих классов, которые могут быть использованы, анализировать, соответствуют ли они данной задаче, а также скопировать существующий код в новые классы. В качестве альтернативного подхода можно использовать среду визуального программирования Parts Workbench, которая содержит страницы каталога, отображающие существующие части, которые потенциально могут быть использованы повторно. Workbench позволяет собрать приложение целиком из компонентов каталога, не написав при этом ни строчки кода.

Надо, однако, иметь в виду, что как только вы помещаете компонент в Workbench, он становится экземпляром класса, и любые изменения, произведенные с экземпляром в Workbench, на базовом классе не отразятся. Если же изменить базовый класс, то изменения автоматически отражаются во всех экземплярах класса, как только последний будет сохранен в иерархии. Эта отдельная техника имеет свои преимущества, из которых особо выделяется гибкость в том, унаследовано ли поведение, и где вы изменили класс.

VisualWorks 2.0
очень хорошо

В VisualWorks был использован следующий подход: поскольку все приложения различны, лучшим решением будет предоставить разработчику базовую структуру приложения, которая может быть по необходимости модифицирована.

VisualWorks предлагает несколько структур, которые могут быть полезны в различных ситуациях: структура модели приложения для визуальных интерфейсов, модель приложения базы данных, если вам нужны знания о доступе к базе данных и входных сообщениях, и т. п. Используя строгую иерархию наследования, разработчик не только получает возможность повторного использования кода, но и хорошую объектно-ориентированную конструкцию.

Разработка в VisualWorks происходит всецело с использованием программ просмотра, поэтому обеспечению хорошего инструментария было уделено особое внимание. Нам показалось, что способ, которым программы просмотра VisualWorks организуют классы и методы в категории, облегчает процесс поиска.

В VisualAge вы можете определить внешний интерфейс через ряд диалоговых экранов в виде записной книжки.

System Browser в VisualWorks позволяет легко перемещаться по структуре классов. Программы просмотра также показывают вам подробности, помогающие понять, подходит ли класс для повторного использования.


Групповая разработка

Object Studio 4.1
плохо

Object Studio не обладает и минимальным набором средств групповой разработки, возлагая надежду на взаимное доверие среди членов группы. Например, когда разработчики изменяют класс, каждый из них должен извлечь свои изменения из исполняемой программы после каждого сеанса программирования, отобрав значимые имена файлов, чтобы установить различие между версиями. С этой точки зрения средство управления файлами Team Builder позволяет организовать эти изменения и соединить файлы с разработчиками; затем разработчики проверяют файлы как в Team Builder, так и вне его. Чтобы получить больше возможностей версионного контроля, а также возможности управления конфигурацией, следует приобрести пакет PVCS корпорации Intersolv и связать его с добавочными блоками, которые имеются для этого в Object Studio.

VisualAge Team for Smalltalk 2.0
очень хорошо

Среда VisualAge заработала высокую оценку в этой категории за счет того, что IBM встроила в свой продукт систему версионного контроля Envy Developer, разработанную фирмой Object Technology, по ходу дела добавив несколько усовершенствований.

Envy содержит удачные программы просмотра, уверенно осуществляет управлением проекта и предлагает надежные инструментальные средства для управления конфигурацией.

Больше всего из усовершенствований IBM нам понравился однокнопочный упаковщик, который просто и автоматически выстраивает все классы, которые необходимы для приложения.

Visual Smalltalk Enterprise 3.0
хорошо

Для групповой разработки Visual Smalltalk Enterprise содержит пакет Team V, созданный корпорацией Digitalk, который встроен в эту среду. По нашему мнению, Team V отвечает основным требованиям в данном разделе и даже немного превышает их, предлагая средства управления конфигурацией и основанного на файлах версионного контроля. Если необходимо расширить функциональность Team V, можно воспользоваться продуктом Team V API для программирования задач заказного и автоматического компилирования(??????), а также хранения данных. Для более основательного версионного контроля есть возможность подключить к Team V систему управления кодом PVCS фирмы Intersolv.

VisualWorks 2.0
хорошо

Как и IBM, корпорация ParcPlace Digitalk встроила Envy Developer в свою среду Smalltalk. Однако, версия в VisualWorks не содержит однокнопочного упаковщика для сбора необходимых компонентов готового для развертывания приложения. Вместо этого, средства управления конфигурацией в VisualWorks, особенно утилиты развертывания, требуют от программистов больше операций производить вручную, что требует определенных навыков. В целом, однако, Envy Developer обеспечивает достаточно возможностей версионного контроля и групповой разработки, чтобы облегчить членам группы работу по отслеживанию компонентов.


В конце концов, мир тесен

Когда было принято решение об объединении компаний Walt Disney и Capital Cities/ABC, первые страницы газет пестрели сообщениями об этом. Информация о слиянии производителей приложений Smalltalk корпораций ParcPlace Systems и Digitalk не попала и на последние страницы разделов деловых новостей. Однако в тесном мире Smalltalk их объединение - сенсационная новость. Ведь речь идет о лидере по захвату объема рынка, Digitalk, и лидере по полученной прибыли, ParcPlace, которые составят теперь компанию с 55 млн. долл., объединяющую самую крупную команду опытных разработчиков Smalltalk под одной крышей.

Наблюдатели занимаются сопоставлением фактов, оценивая, хватит ли ParcPlace-Digitalk финансовых и людских ресурсов, чтобы составить конкуренцию гиганту IBM, чей продукт VisualAge "съел" заметную часть рынка за довольно короткий промежуток времени.

Дэн Голдман, вице-президент по деловому развитию ParcPlace-Digitalk, отмечает, что до слияния эти две фирмы тратили огромные суммы, конкурируя друг с другом, тогда как IBM, за спиной у которой миллиардные ресурсы, составила для каждой из них более существенную угрозу. Объединив усилия, ParcPlace и Digitalk рассчитывают предложить своим клиентам более всесторонние продукты, работающие с большим числом операционных систем.

Какое влияние имело объединение на существующие продукты VisualWorks и Visual Smalltalk? Согласно Джошу Шарфману, вице-президенту по исследованиям и разработке корпорации ParcPlace-Digitalk, крайне небольшое. Поскольку очередные версии обоих продуктов уже проходят бета-тестирование, с этой точки зрения ни одна из компаний не произвела существенных изменений в своей среде разработки Smalltalk. Бета-код будет изменен таким образом, чтобы Visual Smalltalk и VisualWorks стали взаимно совместимы в языке, синтаксисе и семантике, а также отвечали предлагаемому стандарту Smalltalk ANSI X3J20.

На следующем этапе для обновления будет предложен продукт, в основание которого будет положен VisualWorks, содержащий такие блоки Visual Smalltalk, как ассемблирование компонентов и Smalltalk Link Libraries, расширяющие его функциональные возможности. Эта версия будет обратно совместимой с существующими приложениями VisualWorks и Visual Smalltalk. Шарфман сказал, что в намерения корпорации входит сократить лишнее в своих продуктах, при этом использовав сильные стороны обоих из них.

Менее заметным событием в мире Smalltalk стало приобретение корпорацией VMark Software фирмы Easel, производителя пакета Object Studio. Основанная в 1984 году, VMark Software получила известность благодаря своим СУБД и объектно-ориентированным микропрограммным средствам. "Желание представить нашим клиентам полный набор средств для работы стал причиной покупки Easel", - заявил Пит Фьор, вице-президент по маркетингу VMark.

"Мы решили, что вместе с нашей базой данных имеет смысл поставлять средство разработки приложений, - сказал Фьор. - Мы обратили внимание на то, что заказчики, переходящие к среде клиент/сервер, первым делом занимаются его поиском".

Работа над Object Studio будет продолжена по намеченному ранее плану. Следующее обновление включает поддержку для OLE 2.0 и Windows 95.

Менее четверти из 80 существующих языков объектно-ориентированного программирования - коммерческие продукты. Остальные используются в исследовательских целях или связаны с университетскими проектами.

Визуальные средства, как например PowerBuilder, ориентированы на заказчика и имеют центральную базу данных; объектно-ориентированные средства программирования, как Smalltalk, сосредоточены на масштабировании, повторном использовании и простоте обслуживания.

- Джулия К. Карреон