среда, 11 июля 2007 г.

Планы на будущее

Что-ж, библиотека act-o развивается своим чередом, и настало время подумать о перспективах…

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

Сегодня я задался простым вопросом, а что такое кризис программирования? И Google в очередной раз пришел мне на помощь. Очень скоро я набрел на перевод статьи Эдсгера Дейкстры «Смиренный программист» (1972). Две небольшие цитата из статьи.

Но я назвал это второстепенной причиной; первостепенная же кроется в том, что... машины стали на несколько порядков мощнее! Говоря прямолинейно: пока машин не было вовсе, не существовало проблемы программирования; когда появились немногочисленные слабые компьютеры, программирование стало малозаметной проблемой; а теперь, когда у нас есть гигантские компьютеры, программирование само превратилось в гигантскую проблему. В этом смысле электронная промышленность не решила ни единой проблемы, она только породила их, создав проблему использования своей продукции. Другими словами, по мере того как мощность доступных машин выросла более чем в тысячу раз, стремление общества найти им применение выросло пропорционально, и бедный программист вынужден метаться буквально по минному полю. Возросшая мощь оборудования совместно с, возможно, еще более возросшей надежностью, сделали возможными решения, о которых программист даже не отваживался мечтать несколько лет назад. А теперь, спустя несколько лет, он должен мечтать о них и, более того, он обязан воплощать эти мечты в реальность! Удивительно ли, что мы оказались в кризисе программирования?

Теперь переходим к пятому аргументу. Он относится к влиянию инструментов, которые мы пытаемся использовать, на наш образ мышления. Я наблюдаю культурную традицию, которая, по всей вероятности, уходит корнями в эпоху Возрождения: игнорировать это влияние и рассматривать человеческую мысль как первичную и главенствующую над тем, что ей создано. Но когда я начинаю анализировать свои собственные мыслительные привычки и привычки моих друзей, я прихожу, нравится мне это или нет, к совершенно иному заключению, а именно: инструменты, которые мы пытаемся использовать, и язык и обозначения, которые мы используем для выражения или записи наших мыслей, являются основным фактором, который определяет, о чем мы вообще можем мыслить и что можем выразить!


Обратите внимание на год публикации – 35 лет прошло. Думаете, что-то изменилось за это время?

Кризис как был, так и остался, и предлагается много способов создания больших программных систем, их разработки и описания. Но сколько я ни читал материалов, я ни разу не видел, чтобы автор задался вопросом: «А как нам вообще удается это делать?» Не помню, чтобы кто-то говорил, что необходимо обратиться к психологии, в частности к когнитивной психологии, чтобы исследовать способы, которыми человек вообще что-то описывает.

Я смотрю на это так. Программа – это описание системы. Разработка и проектирование – это в первую очередь мышление – это еще глубже в психологию и нейрофизиологию. А во вторую – это опять же описание проекта системы. И для процесса описания можно поставить три вопроса: Кто описывает? Что описывается? Как описывается? По-другому это можно перечислить, как – субъект, объект и способ. С объектом дела обстоят достаточно хорошо. Это как раз, классы алгоритмов, классы задача и классы систем. Подавляющее количество исследований проводится именно на эти темы. О субъекте – тишина. Остается способ. Это языки программирования и описания. Но способ – сущность зависимая. И зависит она от свойств субъекта и объекта. Но так как о субъекте никто не вспоминает, то можно констатировать только то, что способ – это здание с фундаментом наполовину.

В этом, как мне кажется, и заключается кризис программирования. Мало кто понимает, с чем мы на самом деле имеем дело. А дело мы имеем с человеческим мышлением, с его принципом и способом. И, мне думается, если копать в этом направлении, то можно найти решение не только для кризиса программирования, но для многих других вопросов… Необходимо начать рассматривать человека, как человека, а не как ресурс, или ещё одно исполняющее устройство…

Но это всё теория, а теперь немного о практике.

Теория об описании применима к любым программным системам и когда она появится, прорыв будет по многим фронтам, но меня больше интересуют мультиагентные системы, которые будут образовывать окружающие нас устройства, с целью сделать нашу жизнь приятной и комфортной. И как все знают, эти устройства будут самоадаптирующимися и интеллектуальными. Но они по определению не должны обладать настоящим интеллектом и тем более сознанием. Это очень просто – ваша микроволновка разогревает вам суп только потому, что у ней до сих пор нет интеллекта, а вот если бы он был, то она быстренько бы задалась вопросом: «А оно мне надо?» Скорее всего, это быстро превратится в апокалипсис на подобии того, о котором рассказывается в «Терминаторе»… Поэтому, экосистемы устройств всё равно придётся проектировать, конструировать и, в конечном счете, описывать.

В свою очередь эта часть обладает просто колоссальной практической значимостью. Когда мобильные устройства обмениваются только картинками и звуковыми файлами, то не страшно, если парочка из них сломается, либо начнет работать неправильно. Но когда от них начнет зависеть буквально всё – транспорт, системы охраны, жизнеобеспечения и даже кухня будет роботизированной, то любая ошибка потенциально может привести к человеческим жертвам. Это абсолютно недопустимо. И это будет кризис программирования даже не в квадрате, а в кубе…

Библиотека act-o тоже не будет забыта в ближайшее время. Как говорится: «Даже самый длинный путь начинается с одного маленького шага». Это хорошая база для того, чтобы получить начальное представление о мультиагентных системах.

Вы спросите: «А когда же начнется работа?». Так она уже идет, и будет продолжаться и впредь. И я буду рад сотрудничать с каждым, кто разделяет мое видение и готов работать над совместными проектами.
Оставайтесь на связи, и узнаете еще очень много интересного… :-)

Комментариев нет: