Пусть вам выпадет счастье создать технологию программирования.
Не приведи Господь вам продвигать ее.
Упаси Боже это делать в России.
Большое спасибо за отзыв (для тех, кто не поспел к началу сей истории: имеется в виду отзыв на статью о Флоре; обе статьи “с пылу, с жару” успели опубликоваться на сайте “КТ” уже в этом месяце). Признаемся, первоначальное гробовое молчание в ответ на статью довело нас к пятнице чуть ли не до предынфарктного состояния, так что безо всяких натяжек – СПАСИБО откликнувшемуся автору! Но не обойдемся мы и без дежурной “капли дегтя”. То, с чем он так лихо расправился – отнюдь не монография, не техническая документация, а, скорее, вопли ярмарочного шута (увы!), зазывающего в балаган. Кстати,
зайдите к нам – там интересно!
Вернемся к техническим хитросплетениям. “Во первых строках” хотим сказать, что для нас заметка про Флору явилась своего рода дебютом на поприще популяризации программных продуктов. Так уж случилось, что в силу своей профессии нам приходится писать скорее большие программы, нежели маленькие статьи. Приносим в этой связи искренние извинения за возможную корявость и непонятные места в тексте. Попробуем внести некоторую ясность в сюжет.
В статье мы поклялись, что не будем никого критиковать. Просто старались показать, что возможна реализация идей ООП не только с использованием традиционного программирования. Систему Флора можно рассматривать как пример среды разработки приложений в объектной технологии, имеющую ряд принципиальных отличий от традиционных сред разработки (C++, VC, Delphi и других). Флору также можно рассматривать как технологию, имеющую отличия от технологии ООП как таковой. Эти особенности приводят к тому, что инструментальные средства ООП во Флоре могут показаться более “бедными”, но при тщательном рассмотрении большинство этих средств либо реализовано иначе, либо не нужно вообще. К такому выводу авторы пришли, просматривая реализацию средств ООП во Флоре с книгой Буча в руках. Желающие могут повторить это сами.
Как ни старались мы избежать малейших похвал Флоре – увы! – все-таки это произошло (поэтому сегодня “хвалить” постараемся поменьше). Волею судеб один из авторов несет на себе тяжкое бремя создателя системы “Флора” (он-то и относится к ней с известной долей родительской любви). Остальные авторы не питают к Флоре особых чувств. Не потому, что в ней есть “то-то и то-то”, а вот “того-то и того-то” нет, а, скорее, по субъективной причине. Связано это, возможно, с тем, что Флора по своей специфике чем-то напоминает продукцию экс-Борланда, к которому у них сложилось не самое теплое отношение…
Вполне серьезные высказывания о “прахе”, в который рассыплется здание информационных технологий и “открытии Америки” в связи с созданием Флоры нам кажутся не совсем корректными – кажется, что автор отзыва просто не обратил внимания на стиль статьи. Это же не “Манифест коммунистической партии”, а просто разговор двух виртуальных “мужиков”, один из которых “тонко” пытается убедить в чем-то другого. Конечно, трюизмы текст не красят, но скажите – где, в каком нормальном человеческом разговоре (тем более — мужском) можно услышать те фразы, которые приведены в отклике на наш опус. Мы обеими руками голосуем за те термины и формулировки, которые приводит глубокоуважаемый рецензент, но чтобы ими - изъяснятьcя?! Честно говоря, верится с трудом.
Мы не пытались сказать, что Флора – это манна небесная, а все отличное от нее – исчадие ада. Будем объективны: можно ругать С за отсутствие вложенных процедур, Pascal – за бедность ввода/вывода, Windows – за то, что она вообще есть (и такое бывает!), но выпады в чужой адрес не могут улучшить свой собственный продукт, и мы прекрасно это понимаем. Если где-то в нашей статье кто-то разглядел нечто подобное – готовы публично покаяться. Кстати, с учетом всего вышесказанного автор мог бы сэкономить добрых две страницы своего отзыва (да-да, про существование Java и Oracle нам тоже доподлинно известно).
Насчет потоков (на тему которых автор рецензии разразился обширным примером) придется сильно поругаться. Ни для кого не секрет, что вся математика строится на двух базовых операциях – сложении и умножении. Так вот: любая задача параллельного программирования может быть реализована двумя базовыми примитивами – 1) механизмом запуска/завершения потоков и 2) очередью сообщений. Пришлите нам на выбор любое средство синхронизации, любую задачу – мы Вам нарисуем, как только этими двумя примитивами ее решить. Извините за лексикон, но “за базар отвечаем”. Что касается однопоточных методов, то он принят во многих СУБД в качестве метода модификации БД потому, что он позволяет обходиться без синхронизации и легко организовывать механизм транзакций (навскидку можно припомнить ADABAS).
Почему-то автор решил, что Флора — это база данных. Отсюда — пример с телефонным справочником, рассуждения о реляционной модели, о хранимых процедурах, SQL и т.д. На самом деле и Флора не имеет ничего общего с СУБД, и написанные на ней приложения никоим образом не похожи на справочник телефонных номеров. Кстати, по просьбе автора отзыва приводим затребованные им уточнения про 90 тысяч объектов:
Приложения - 80
Окна - 824
Задачи - 7721
Диалоговые элементы - 8417
Объекты (всего) - 88026
Само приложение в то же время оперирует базой данных финансовых транзакций, увеличивающейся в среднем на 40 тысяч записей в день!