Сергей Тарасов - Дефрагментация мозга. Софтостроение изнутри
Когда Молодые Парни сделали Вторую Систему, их, как вы догадались, снова стали нагружать внесением в нее новых функций. Вначале парням удавалось вносить изменения так быстро, что оставалось время на несколько чашек кофе в день. И тогда их стали напрягать больше. Теперь Молодые Парни настолько были загружены, что у них опять едва хватало времени на чашку кофе и сигарету. Кроме того, они тоже состарились за работой и стали Старыми Чудаками.
Во время пития одной из чашек кофе у Старых Чудаков возникла мысль о том, что хорошо бы приблизить составление программы к написанию текста на человеческом языке. На Языке Высокого Уровня (ЯВУ). Но Чудаки были так заняты Второй Системой, что благородно позволили подслушать эту Мысль новым Молодым Парням, подсматривавшим за ними сквозь дырки в перфокартах.
Молодые Парни поднатужились и составили Транслятор с языка, похожего на математическую запись формул. Его так и назвали: Фортран – ФОРмуло-ТРАНслятор. Вооружённые Фортраном, Молодые Парни сделали Третью Систему. Но не успели они, быстренько добавив в Систему новые функции, сесть за кофе и партию в преферанс, покуривая в форточку подсобки, как их снова сильно напрягли. И снова стали они Старыми Чудаками. Да, чуть не забыл: в соседней комнате другие Молодые Парни и Девушка создали другой Транслятор, КОБОЛ – Как бы Описания Бизнес-правил… Ой, ладно. Они тоже делали Третью Систему, но с другого боку.
Надо сказать, что Старые Чудаки с Фортраном придумали такую вещь, как типы переменных по умолчанию. И все переменные, начинающиеся на i, j, k, l, m и n Транслятор считал целочисленными. С той поры все Новые Молодые Парни в своих Новых Системах используют эти переменные в циклах, особо не задумываясь об их происхождении.
Третья Система оказалась такой живучей, что до сих пор можно увидеть объявления о поиске ну-Очень-Старых-Чудаков для внесения в нее изменений.
Очередные Молодые Парни стали кривить лица и указывать на сложность ЯВУ и несовершенство Трансляторов. Покривившись, они приступили к созданию более простых, ясных и надёжных ЯВУ, как им тогда казалось. Четвертую Систему парни начинали делать на C, а прикладную часть к ней – на Паскале. А сделав, как водится, превратились в Старых Чудаков. Причём одни Старые Чудаки так и остались на C, а другие потом решили добавить к названию два плюса. Третьи, поэкспериментировав с приставками «Турбо», вообще изменили название в пользу Дельфийского Оракула.
Следует вспомнить, что Один Умный Старый Чудак из Швейцарии потом продолжил создавать Следующие Системы. Но его упорно не замечали. И не потому, что его Системы были плохи. А потому, что все были по горло заняты внесением новых функций в Четвертую Систему.
Народу, вносящего изменения, все прибывало. Началось Вавилонское столпотворение ЯВУ и Подходов к Проектированию Программ. Каждый Молодой Парень считал свой ЯВУ лучшим, а Подход – единственно правильным. Но, сделав свою собственную Четвертую Систему, каждый парень становился очередным Старым Чудаком и неизбежно погрязал в добавлении в нее новых функций.
Наконец, Большие Дяди сказали себе, что пора бы навести Как бы Порядок в этом Творческом Бардаке. И стали вкладывать много денег для создания Единственно Правильной Четвертой-с-половиной Системы. Она не должна была зависеть от типа ЭВМ: единожды написанная на ЯВУ программа могла бы работать на любой другой ЭВМ. А чтобы новые Молодые Парни не создавали хаос, Большие Дяди создали свой Стандарт на ЯВУ и всё, что вокруг. На практике же оказалось, что однажды написанная программа должна быть отлажена везде, где её планируют запускать. Ну а чтобы другим парням и чудакам было не обидно заниматься отладкой и без передышки вносить в Четвертую-с-половиной Систему изменения, назвали её просто «Кофе».
Когда Большие Дяди стали поднимать Большие Деньги на своей Четвертой-с-половиной Системе, то Другие Большие Дяди решили, что они не хуже. И тоже сделали Четвертую-с-половиной Систему. Но, поскольку название «Кофе» оказалось занято, а «Сигарета» явно не соответствовала маркетинговым концепциям, её назвали так, чтобы все были бы внутренне горды от одного только чувства того, что работают они с Великой Четвертой-с-половиной-и-ещё-Точка Системой.
Внесение изменений в Четвертые-с-половиной Системы стало занятием столь же скучным, как и предыдущие. Поэтому, чтобы Молодые Парни не чувствовали себя, по крайней мере сразу же, такими же Старыми Чудаками, им разрешили обзывать всех вносящих изменения в Четвертую (ту, что без половины, а тем паче в Третью) Систему Старыми-Чудаками-на-Одну-Букву.
И вот одни Старые Чудаки добавляют функции в Четвертую, Третью и даже Вторую Системы. Другие – в Четвертые-с-половиной Системы. А в перерывах на форумах и в блогах последние обзывают первых Одной Буквой.
Но, поскольку форумы и блоги открыты, за процессом наблюдают Самые Молодые Парни. И, видя это, им всё меньше хочется делать Пятую Систему. Во-
первых, надо «учиться, учиться и ещё раз учиться» и отнюдь не на трёхмесячных курсах, а во-вторых, застолбившие рынок Большие Дяди не собираются его ни с кем делить. Но и становиться Старыми Чудаками при Четвертой-с-половиной Системе, минуя стадию Молодых Парней, им тоже не особо хочется.
И тогда все хором – от Старых Чудаков Первой Системы до Самых Молодых Парней – сказали: в нашей отрасли кризис! А Старые Чудаки добавляют: застой, и света в конце тоннеля не видно. Рядом с ними Маргинальные Чудаки с искусственным интеллектом под мышкой, специализированными ЯВУ и ЭВМ, суперкомпьютерами, векторными вычислениями и прочей экзотикой стоят в сторонке от мейнстрима и посмеиваются над ловкостью, с которой им удалось обмануть всех, включая самих себя.
Литература
1. Брукс Ф., Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс, 2001. 304 с.
2. Фокс Дж., Программное обеспечение и его разработка. М.: Мир, 1985. 368 с.
3. Бир Ст., Кибернетика и менеджмент. М.: КомКнига, 2006. 280 с.
4. Nicolas Karr, The Big Switch: Rewiring the World from Edison to Google. W. W. Norton & Company, 2008.
5. Васкевич Д., Стратегии клиент/сервер. Киев: Диалектика, 1996.
6. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж., Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2007. 366 с.
7. Гладких Б. А. По волне моей памяти // Вестник Томского гос. ун-та, 2002. № 275. С. 249–258.
8. Тарасов С., Обзор средств объектно-реляционной проекции (ORM) для платформы. NET, ZDNet.ru, октябрь 2005. Текст доступен по ссылке http://arbinada.com/main/node/33
9. Тарасов С., Разработка ядра информационной системы // Мир ПК. 2007. № 7.
10. Серия статей «Информационная система Ниеншанц» // Компьютер-Информ. 1997. № 13–15.
11. Донской М., Жизненный цикл программиста, статья-эссе для сайта polit.ru, 2008 г.
12. Гранин Д., Иду на грозу. М.: Молодая гвардия, 1966.
13. Кольвах О., Копытин В., Адаптивные модели бухгалтерского учета и формирования финансовой отчётности в системе кредитных организаций. М.: Терра, 2000.
14. Хеннинг М., Восход и закат CORBA, ACM Queue, Volume 4, Number 5, June 2006, перевод С. Кузнецова, citforum.ru
15. «Joint Strike Fighter Air Vehicle. C++ coding standards for the system development and demonstration program», Lockheed Martin Corporation, December 2006.
16. Jason Weiss, Is complexity hurting Java? // Java Developer’s Journal. Vol. 7, Issue 10. Octobre. 2002.
17. Уэзерелл Ч., Этюды для программистов. М.: Мир, 1982. 288 с.
18. Кривошеин М., Введение в складской учет. 2002, 2005 (испр. и доп.). Текст доступен по ссылке: http://arbinada.com/main/ node/15
19. Иванов В., Тарасов С., Как проектировать бухгалтерию? 1999, 2005 (испр. и доп.). Текст доступен по ссылке: http://arbinada. com/main/node/16
20. Тарасов С., Уровни изоляции транзакций в SQL // Мир ПК. 2009. № 7.
21. Кулигин В. А., Кулигина Г. А., Корнева М. В., Кризис релятивистских теорий. Доклад на международном конгрессе «Фундаментальные проблемы естествознания и техники», С.-Петербург, июль 2000 г.
22. Новиков Л., Введение в Rational Unified Process. М.: Интерфейс, 2000.
23. Capers Jones, «Estimating Software Costs: Bringing Realism to Estimating», Second edition, McGraw Hill, April 2007.
24. MDD. Разработка, управляемая моделями, IBM Developer Works, IBM, 2007.
Примечания
1
Электронная Вычислительная Машина, вдруг кто забыл, как назывались компьютеры в русском языке.
2
Числовое Программное Управление.
3
Научно-Исследовательский Институт.
4
Конструкторское Бюро.
5
Конструкторско-Технологический Центр.
6
Вычислительный Центр.
7
Высшие учебные заведения.
8
Неформальное название учебных заведений.
9
Оригинальное немецкое название: Bedingungsloses Grundeinkommen.