Чтение онлайн

на главную

Жанры

Журнал "Компьютерра" №711

Компьютерра

Шрифт:

Как только стало очевидным несовершенство "строительной" метафоры, стали появляться ее замены-развития, суть которых, в основном, сводится к аналогиям между деятельностью разработчика и инженера-проектировщика: как бы весь цикл написания программы есть проектирование, а процесс "производства" сведен лишь к фазе компиляции (наиболее полно этот подход отражен в статье Дж. Ривза "Как проектировать ПО?", ее можно найти в "КТ"#589, и там же - критика этого подхода Д. Завалишиным с позиций реакционной метафоры "строительства"). Однако и эта метафора почти столь же дырява, как и предыдущая: она игнорирует тот факт, что почти любой минимально законченный

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

Как бы то ни было, почти любая попытка определить деятельность разработчиков ПО приводит к тому или иному компромиссу между производством (production) и творчеством (creation) [На научные же методы, как основу процесса разработки, мало надежды осталось со времен краха автоматизированных средств написания и верификации программ]. Соответственным образом выглядит и большинство современных средств разработки: как среда для созидания с множеством возможностей анализа структуры и процесса, а также использования "типовых решений".

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

Не вызывает ли такое описание аналогий с органической системой, ее моделью жизни и развития? Возможно, это и есть такая метафора, сполна описывающая процесс разработки нетривиальных программных систем; она представляется вполне полезной "ментальной моделью".

Следует заметить, что взгляд на программный проект как на форму органической жизни, конечно же, не нов (хотя и не слишком распространен). Другое дело, что большинство апологетов "органической метафоры" смотрят на нее, как на нечто, требующее создания новых, особенных языков, технических средств или методологий (например, см. [1], [2], [3]). В явном виде мысль "мы все работаем именно так, достаточно просто это осознать сполна" выражена, пожалуй, только в работе [4]; а ведь ценность объемлющей метафоры - именно в "сдвиге точки зрения", а не в разработке новых инструментов и средств (по крайней мере - не в первую очередь).

Впрочем, чтобы нетривиальный подход к известной проблеме

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

Манифест органического программирования

1. Исключение - это правило.

2. Наш мир богат и сложен, а не стуктурирован и прост.

3. Программы должны соответствовать нестандартным, меняющимся проблемам, а не стандартным, статичным паттернам.

4. Программная система - органическое создание, а не набор математических алгоритмов.

5. Программные компоненты - составная часть нашего сложного мира, а не описательные мета-сущности.

6. Разработка программ эволюционирует от малого к большому, а не от конкретного к абстрактному.

Автор считает пункты 1-3 общим местом, а пункты 4-6 - своим нововведением.

O. Imbusch, F. Lanhammer, G. von Walter, "Ercatons and Organic Programming"

 

Ссылки

O. Imbusch, F. Lanhammer, G. von Walter, "Ercatons and Organic Programming" (

www.oopsla.org/2005/ShowEvent.do?id=60,

www.organic-computing.org,

web.archive.org/web/20050412193622,

www.carc.aist.go.jp/gaea)

Cees de Groot, "Towards Organic Software"

Информация forever

Автор: Ваннах Михаил

В старых энциклопедиях "Информации" не было. За "Инфлянтами Польскими" там сразу следовали "Инфралапсарии". И когда такая статья появилась в общедоступном издании, Малой Советской Энциклопедии 1929 года выпуска, смысл термина информация был очень далек от современного.

"ИНФОРМАЦИЯ (лат.), осведомление. Информационный - осведомительный. В органах периодической печати информационный отдел - та часть газеты, журнала и т.п., которая содержит телеграммы, корреспонденции, интервью, а также сведения, даваемые репортерами".

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

Древние римляне употребляли слово informatio в смысле - истолкование, представление, - но вот современное, исключительно емкое понятие информация есть плод развития в равной мере и науки, и технологии. Латинское in-formo (придавать форму, составлять, воображать) употреблялось еще Цицероном и связано с платоновскими первоидеями через греческое, весьма многозначное, eidos. Но полноценный термин "информация" появился сравнительно поздно, даже позже первых электронно-вычислительных машин, и атомных котлов, и бомб.

Поделиться:
Популярные книги

Попаданка в академии драконов 2

Свадьбина Любовь
2. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
6.95
рейтинг книги
Попаданка в академии драконов 2

Береги честь смолоду

Вяч Павел
1. Порог Хирург
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Береги честь смолоду

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Афганский рубеж

Дорин Михаил
1. Рубеж
Фантастика:
попаданцы
альтернативная история
7.50
рейтинг книги
Афганский рубеж

Физрук: назад в СССР

Гуров Валерий Александрович
1. Физрук
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Физрук: назад в СССР

Огни Аль-Тура. Желанная

Макушева Магда
3. Эйнар
Любовные романы:
любовно-фантастические романы
эро литература
5.25
рейтинг книги
Огни Аль-Тура. Желанная

Кодекс Охотника. Книга III

Винокуров Юрий
3. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Кодекс Охотника. Книга III

(не)Бальмануг.Дочь

Лашина Полина
7. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(не)Бальмануг.Дочь

Внешняя Зона

Жгулёв Пётр Николаевич
8. Real-Rpg
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Внешняя Зона

Измена. Верни мне мою жизнь

Томченко Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верни мне мою жизнь

Везунчик. Проводник

Бубела Олег Николаевич
3. Везунчик
Фантастика:
фэнтези
6.62
рейтинг книги
Везунчик. Проводник

Особое назначение

Тесленок Кирилл Геннадьевич
2. Гарем вне закона
Фантастика:
фэнтези
6.89
рейтинг книги
Особое назначение

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Проклятый Лекарь IV

Скабер Артемий
4. Каратель
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь IV