HOPE  -  надежда на лучшее программирование

 

Беседы о программировании

 

На этой неделе меня можно будет найти в выставочных залах конференции Software Development (“Разработка ПО”) в Вашингтоне. Однако меня не интересуют новые решения старых проблем. Меня интересуют продукты, которые видят проблемы и борются с ними там, где большинство из нас их просто не замечают, так как считают их неотъемлемой частью процесса разработки любого программного продукта.

 

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

 

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

 

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

 

Я долго ждал, когда удастся потрогать руками продукт, в котором был бы пересмотрен способ взаимодействия программистов со своим сырым материалом. Этот продукт называется Human Oriented Programming Environment, или HOPE (человеко-ориентированная среда программирования, аббревиатура в переводе означает  -  надежда), и разработан он фирмой Aladdin Software Engineering (http://www.aks.com). У меня уже есть симпатичная бета-версия, однако я узнал, что выпуск версии 1.0 отложен на неопределенный срок, поскольку компания ищет “стратегического партнера для разработки и маркетинга”.

 

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

 

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

 

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

 

Вероятно, общая тенденция разработки приложений на базе компонентов даст нам необходимый толчок. Нам явно необходимо что-то более надежное, чем реестр Windows Registry, чтобы управляться с такими разработками, независимо от того, какую объектную модель  -  Java Beans или ActiveX  -  мы используем (скорее всего, обе понемножку).

 

Питер Коффи

 

Поговорим об объектах на моей секции на SD в четверг утром, или, если вы не идете на конференцию, пошлите мне свое мнение по адресу: peter_coffee@zd.com. 

HOPE делает следующий разумный шаг за рамки “хранилищ” групповой разработки