Определить главную проблему КТ (см. определение в №17) очень важно потому, что от ее решения будут зависеть решения всех других проблем. Но что это за проблема? Для специалистов в данной области ответ на этот вопрос уже давно представляется как совершенно ясный: главное - обеспечить повышение производительности процесса программирования. Какие тут могут быть сомнения? Ведь даже Билл Гейтс пообещал уже скорое появление программных продуктов, реализующих принцип "Программирование без программистов". Похоже, что погорячился. Действительно, можно представить себе удивление специалистов, когда они вдруг узнают, что эта проблема, хотя и, несомненно, важная, вовсе даже не является главной! Чтобы убедиться в этом, достаточно обратиться к истории проблемы.
Названный принцип был провозглашен более 20 лет назад. За это время в погоне за неуловимой жар-птицей сгорело множество смельчаков, а попытки выдать желаемое за действительное оборачивались впоследствии для их авторов холодным душем. Взять хотя бы историю СУБД Paradox, изначально ориентированной на конечного пользователя. Хорошо, что разработчики вовремя спохватились и добавили к названию своего продукта необычную приставку: for professional user, т.е. не для конечного пользователя! А сколько было шуму по поводу исторической миссии CASE-технологий, где они теперь? Так же "успешно" и на те же самые грабли наступили разработчики так называемых систем "документооборота" и "принятия решений", а также "экспертных", "изобретающих", "интегрированных", "интеллектуальных" и других систем. Наиболее ощутимые успехи в области развития КТ были достигнуты в решении более узких, т.е. локальных проблем. К таким успехам можно отнести создание продуктов типа "Электронные таблицы" (Spreadsheet) и "Гипертекстовые технологии" (формат HTML). Хотя эти продукты и не могут определять решение главной проблемы КТ, все же имеют несомненную ценность как отдельные и относительно самостоятельные технические решения.
История развития КТ не насчитывает еще и полувека, однако темпы этого развития в сравнении с темпами развития других технологий просто поражают своей стремительностью. В то же время следует отметить не только огромную значимость КТ, но также их необычайно высокую насыщенность новыми знаниями, что предопределяет КТ как особый тип наукоемких технологий стратегического характера. На этом фоне наука явно не успевает своевременно проанализировать накопившиеся факты, а иногда выглядит просто беспомощной, когда речь идет о негативных явлениях технологического прогресса, угрожающих катастрофическими последствиями глобального характера.
История науки свидетельствует, что, как правило, новые пути познания имеют вначале ложное направление, что приводит к появлению задач, кажущихся неразрешимыми. Так, например, в свое время, когда наукой наук была астрономия, логически непротиворечивая и добившаяся больших практических успехов система Птолемея столкнулась с серьезными проблемами в части предсказания положения планет. Теперь такой проблемы не существует, однако для этого науке пришлось полностью отказаться от геоцентрического принципа (и следовательно, от системы), на котором она была основана.
Главная проблема КТ просто не могла не появиться, т.к. в том, еще, в сущности, младенческом, возрасте этих технологий несоответствие целей и направления поисков становится все более очевидным. Поскольку проблема проявляет себя в виде аномального роста потребности в программистах, то главным для ее решения становится не технический, а экономический аспект. Именно таким образом, т.е. рассматривая проблему в несколько иной плоскости, можно получить удивительно простой и достаточно очевидный для каждого результат.
Действительно, в результате развития КТ всегда появляется новое разделение труда, иначе КТ просто не имели бы источника развития. Однако, это новое разделение труда имеет место либо только среди программистов, либо только среди конечных пользователей КТ. Отсюда следует и главная проблема КТ: традиционные разновидности КТ не могут даже в принципе обеспечить ключевое разделение труда между разработчиком (программистом) и конечным пользователем (управленцем).
Теперь становится понятными бесперспективность полной автоматизации процесса программирования и крушение надежд, связанных с CASE-технологиями, поскольку такое направление развития стремится лишь переложить все проблемы с разработчика на конечного пользователя, но совершенно не изменяет ситуацию с точки зрения разделения труда. Однако это противоречит естественным законам развития общества, согласно которым, без появления нового разделения труда всякий экономический прогресс невозможен.
Разработчики КТ часто слишком увлекаются производительностью, не замечая при этом, что их старания не дают реального эффекта. Например, можно поднять производительность в 50 раз, но пользователь этого даже не заметит, если время выполнения команды составляло 0,5 с, а потом стало 0,01 с. С другой стороны, в отдельных случаях актуализация большого объема данных в системе может достигать нескольких часов, несмотря на все усилия разработчиков, но такая операция вовсе не потребуется, если, например, десять пользователей системы будут затрачивать на актуализацию только своих данных, скажем, по 20 с. Приведенный пример, конечно, не является своего рода назиданием для разработчиков. Он просто показывает, каким образом решение главной проблемы КТ в масштабах информационных ресурсов общества может увеличить производительность доступа к этим ресурсам в миллионы раз!!!
Таким образом, определив формулировку главной проблемы КТ, мы уже сделали первый шаг отхода от традиций. Конечно, при этом нужно отдавать себе отчет, на какую зыбкую почву мы можем ступить, двигаясь в этом неизведанном направлении. Но как говорят в таких случаях, лиха беда начало!
Юрий КРАСКОВ,
c_city2000@mail.ru
Горячие темы