Сергей Федорович Толкачев

Активные данные. Философское программирование


Скачать книгу

партитура музыкант

      учитель урок ученик

      автор книга читатель

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

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

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

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