Архивы: по дате | по разделам | по авторам

Гольф в графстве Айлэнд. DASL Ace

АрхивТехнологии
автор : Андрей Драница   08.06.2004

Часть вторая. Не "Микрософтом" единым. Обратим взор на продукт конкурента, причем продукт неординарный. DASL может стать таким же важным шагом для Java, как в свое время Delphi стал для Паскаля.

Продолжение статьи "Гольф в графстве Айлэнд", опубликованной 7 июня. В ней рассказывалось о новой версии Visual Studio "Whidbey", финальный релиз которой ожидается в начале 2005 года.

Однако не "Микрософтом" единым. Обратим взор на продукт конкурента, причем продукт неординарный. DASL может стать таким же важным шагом для Java, как в свое время Delphi стал для Паскаля.

"Write Once, Deploy Anywhere"

WRITE ONCE,
DEPLOY ANYWHERE

Слоган DASL - написано однажды, развертывается везде. Подробнее о проекте читайте на сайте Sun.

Начну издалека. Жила-была хардверная компания, продающая неплохое серверное оборудование. То ли работы у ее инженеров было мало, то ли они по натуре были затейниками, но в конце концов в их светлых головах родилась идея облегчить создание ПО для самых разных устройств - так появился Java. Все было бы замечательно, вот только новый язык оказался, мягко говоря, непростым. А по сравнению со всякими Visual Basic’ами - вообще неподъемным. Разумеется, нашлись профессионалы, которым он пришелся по душе и которые несут его флаг до сих пор, однако число их не столь велико, как хотелось бы авторам Java. Причин тому множество, но трудность и некая "невизуальность" играют здесь не последнюю роль. Именно для решения последней проблемы и был изобретен Ace (новое название DASL).

В переводе с английского Ace означает очко, выигранное одним ударом в таких играх, как теннис, гольф, гандбол. Это самый быстрый и эффективный способ достичь выигрыша.

DASL (Distributed Application Specification Language)

Язык, включающий в себя несколько подъязыков. BOS - язык описания бизнес-логики: объектов, правил их взаимодействия и поведения и отношений между ними. AUS - язык описания задач, итерационной модели и т. д. ACE - ядро, сердце проекта DASL. Главное назначение ACE - отвлечь внимание от конкретных архитектур, будь то J2EE, .NET, Corba или ODBC. Декларируется, что сопряжение со сторонними уровнями (как нижележащими - веб-серверами, СУБД, так и уровнем выше - серверами бизнес-логики) целиком берет на себя ACE, от программиста требуется лишь описать предметную область. Более того, при смене парадигмы программирования, например переходе от двухзвенной модели (сервер - множество "толстых" клиентов) к трехзвенной (клиент - веб-сервер - сервер приложения), модификация кода происходит почти в автоматическом режиме: порой достаточно выставить другие опции для проекта, а исходный код будет автоматически переписан.

Если отвлечься от маркетинговых реверансов, то DASL может стать таким же важным шагом для Java, как в свое время Delphi стал для Паскаля. Его именно так и называют - визуальным языком программирования. Впрочем, не следует питать иллюзий по поводу визуальности: она не отменяет необходимости ручного программирования, просто при старте программист получает скелет приложения, построенный визуальными методами (см. рис.). В основе основ - моделирование кода в виде бизнес-схем (на самом деле, имеющих не большее отношение к бизнесу, как процессу зарабатывания денег, чем Java к современному балету) и автоматическая генерация исходного кода. Как правило, конструирование программы состоит в своеобразном "рисовании" диаграмм - расстановке блоков и их соединении. Такой подход таит в себе определенные противоречия. С одной стороны, он дает существенные плюсы:

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

С другой стороны, генерируемый код не будет максимально производительным и гибким - в нем останутся стереотипы, заложенные создателями. Спешу заверить поклонников Java, что второго VB (читай - Visual Java для чайников) в самом негативном смысле мы не получим. Код, конечно, немного механистичен, но вполне доступен пониманию, работоспособен и производителен.

В качестве иллюстрации нового подхода приводится занятное приложение по созданию веб-магазина игрушек. Исходный вариант на J2EE, поддерживающий базовый функционал (просмотр каталога, заказ и система его отслеживания, обработка кредиток и пр.) содержал четырнадцать тысяч строк кода и создавался полгода. Дабы продемонстрировать свое превосходство над противником, команда из Microsoft переписала это приложение, породив лишь три с небольшим тысячи строк ручного кода. Естественно, наезд не мог остаться без ответа: используя DASL, один разработчик всего за неделю воссоздал то же самое приложение, написав ручками лишь 224 строки, что должно повергать в шок всех сторонников Microsoft.

Несмотря на, казалось бы, разгромные цифры, этот пример не стоит рассматривать слишком серьезно. Конечно, DASL создавался не для того, чтобы написать именно такое приложение в более короткие сроки, но некоторая некорректность здесь все же есть.

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

Да, визуальность налицо, но за все надо платить, платить гибкостью и производительностью. К тому же смущает слабая раскрутка - попробуйте в любой поисковой системе найти материалы по Sun Ace. Похоже, проект ведет полулетаргическое существование, но самое удивительное, что даже попробовать DASL рядовому программисту не так-то просто.

Sun и Microsoft пошли разными путями. Первая, выпустив Java в свободное плавание, пытается создать надстройку, упорядочивающую образовавшийся зоопарк и снижающую входные барьеры для новых игроков. Microsoft, наоборот, держит все под контролем и выстраивает стройную, взаимосвязанную систему, попав в которую однажды, клиент уже не мыслит без нее свое будущее. Как следствие, мы видим противоборство двух идеологий: подвижное и адаптируемое, но разрозненное Java-сообщество - с одной стороны, и монолитный целеустремленный гигант - с другой. Кто из них победит, гадать бесполезно, выживут наверняка оба, но вот как быть разработчикам - это каждый должен решать сам.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.