Лавров C.
С. Б. Энтина в статье [6] ставит вопрос "Что такое информатика", приводит ряд услышанных ею ответов на него и задает ряд уточняющих вопросов. Чтобы ответить на главный вопрос, сначала следовало бы договориться о том, что такое информация. В словаре [9] даны следующие определения:
Данные (data) - Представление фактов или идей в формализованном виде, пригодном для передачи или обработки в некоем процессе.
Информация (information) - В автоматической обработке данных - смысл, который человек приписывает данным посредством известных соглашений, используемых при их представлении.
Здесь уже использован термин обработка данных, определяемый в словаре несколько ниже с примечанием: "В тех случаях, когда обработка данных выполняется для усиления значения или ценности (с определенной точки зрения) информации, переносимой данными, она может называться обработкой информации".
Словарь издан от имени двух организаций: IFIP - Международной федерации по обработке информации и ICC - Международного вычислительного центра. В комитетах и комиссиях IFIP работали известные специалисты из многих стран. С мнением издателей словаря не грех и согласиться. Думается, что значение или ценность этих определений за 33 года, истекших с тех пор, нисколько не ослабли.
Формализация, упоминаемая в первом определении, может быть весьма слабой. Например, человек наговорил некоторый текст на магнитофон, а машина должна преобразовать полученную запись в текст. Программа, по которой машина может выполнить эту работу, должна содержать правила (алгоритмы) расчленения записи на отдельные звуки, замены их подходящими буквами, объединения букв в слова и какого-то формального контроля, как минимум - орфографического, осмысленности полученного текста с многократным возвратом к предыдущим этапам в случае неудачи. Наличие подобной программы и делает магнитофонную запись устной речи пригодной для обработки в описанном процессе. Человек же, прослушивая ту же запись, будет пытаться ее понять, опираясь, прежде всего, на содержательный смысл записанного сообщения.
Итак, информация может исходить только от человека, восприниматься и обрабатываться только человеком. Именно такое содержание этого термина подразумевается в выражениях: "средства массовой информации", "информационная культура" и т. п. Компьютер может иметь дело лишь с данными. Ему безразлично, закодирована ли в этих данных заурядная сводка продаж за день или письмо ученого в Доклады Академии наук о сделанном им открытии - была бы программа, способная те или иные данные обработать.
А можно ли применить термин "информация", если речь идет о поведении животных, генетическом наследовании, химических процессах и др.? В моем понимании - нет, нельзя. Собака, облаивающая автомобиль, подчиняется инстинкту - "отгони врага". Бессмысленность действия ее не останавливает. Но где нет смысла, там нет и информации. Процессы, управляющие делением клеток, осуществляются механизмами неизмеримо более низкого уровня, чем высшая нервная деятельность человека - делятся и амебы. Когда в смеси двух или более веществ возникает химическая реакция, действует второй закон термодинамики - из состояния с более низкой энтропией смесь переходит в состояние с более высокой. В обратном направлении процесс не идет - сколько ни мешать углекислый газ с водой, ничего, кроме газировки, вы не получите - ни частиц сажи, ни, как бы вам, возможно, хотелось, алмазов.
Есть, впрочем, наука - теория информации - где термины "информация" и "энтропия" тесно связаны, но употребляются в существенно ином смысле. Там речь идет об измерении количества информации при передаче сигналов (сообщений). Энтропия служит мерой количества информации, приходящегося на один символ сообщения. Если распространить эти понятия на природные процессы, то грубо можно сказать, что возрастание энтропии равно количеству информации, утрачиваемой в любом таком процессе. Именно потеря информации и является причиной необратимости этих процессов. Интересующимся рекомендую книги [1] и [5].
Есть ли смысл в этих условиях пользоваться термином "информатика"? Если и есть, то следовало бы относить его к тем или иным сторонам человеческой деятельности, связанной с порождением, восприятием, хранением и передачей информации: "Информатика - это исследование сущности и обстоятельств подобной деятельности". Компьютеры не имеют никакого отношения к сущности этой деятельности, но стали, наряду с книгопечатанием, средствами связи и т. п., одним из важнейших ее обстоятельств и инструментов. По этой причине имеет некоторый смысл связать термин "информатика" с использованием компьютеров в качестве подручного средства при обработке информации: "Информатика в узком смысле - это исследование роли компьютеров и способов их использования в процессах хранения, обработки и передачи информации". Более естественным был бы иной термин, например, "компьюматика", "компьютеристика" или "датаматика", но ломать копья из-за этой терминологической проблемы уже поздно, а потому бессмысленно.
Из существующих термин "программирование" мне представляется в этой роли наиболее удачным. Беда в том, что многие привыкли относить его к общению человека с компьютером с помощью искусственных, специально для этого созданных, языков (Фортрана, "Паскаля", C++ и многих других). Термин возник, когда других средств еще не было, они и даже сами эти языки еще не зарождались. Сейчас положение изменилось в соответствии с общественными потребностями.
Д. Кнут, автор знаменитой монографии [10] и не менее известной типографской системы ТеХ, на основании собственных и чужих наблюдений утверждал [7]: "лишь около 2% всех людей "мыслят алгоритмически" в том смысле, что они могут быстро рассуждать об алгоритмических процессах". А также: "из каждой сотни студентов, записавшихся на вводный курс по программированию, лишь двое действительно "настроены" на этот предмет, как будто они прирожденные информатики (computer scientists в оригинале)".
Будем исходить из того, что среди оставшихся 98% достаточно многие регулярно имеют дело с компьютерами, используют их в своей повседневной деятельности. Вряд ли есть больше оснований считать их специалистами по информатике, чем называть специалистами по телевидению всех тех, кто постоянно с ним связан, будь то даже тележурналисты или дикторы - о зрителях я не говорю.
Это и толкает меня на расширительное толкование термина "программирование". Мне не раз случалось пояснять, что "программирование - это искусство заставить компьютер решить стоящую перед человеком задачу". Я не причисляю к программистам кассира, чей аппарат подсчитывает общую стоимость сделанных кем-то покупок, - искусством здесь не пахнет.
Однако, врач, прибегающий к услугам экспертной системы для постановки диагноза, следователь, устанавливающий "почерк" преступника и разыскивающего аналогичные по этому почерку преступления, или конструктор, пытающийся подобрать рациональную схему действия и компоновку новой машины, заняты трудом, творческим в достаточной мере. Хотя ни один из них не написал ни одной строчки используемой им программы, их вполне можно причислить к "программистам" в указанном смысле. Если требуются уточнения, то авторов этих программ следовало бы назвать "программистами-профессионалами", а упомянутых выше специалистов - "программистами-практиками" или, что мне нравится меньше, "программистами-пользователями". Впрочем, доля творчества есть в деятельности любого человека, если он не утратил окончательно человеческий облик. А терминологию в сфере информатики нельзя считать устоявшейся - смена средств и технологий обгоняет смену терминов.
После всех этих разъяснений я буду заменять термин "информатика" термином "программирование" в указанном его толковании, никому это словоупотребление не навязывая. Попытаюсь ответить на вопросы, заданные С. Б. Энтиной.
1) Информатика - это одна из фундаментальных наук или информатика - это технологии?
Скорее последнее, так как в других отраслях техники технологией и называется умение осуществить "в металле" замысел конструктора. Выше я назвал программирование искусством. Имелось в виду, что в программировании имеется масса приемов, подручных средств, стилей и т.п., но в то же время это несомненно творческая деятельность. Две программы, написанные разными людьми для решения одной и той же задачи, оказываются весьма непохожими друг на друга. Их сходство можно увеличить, если в задании на решение задачи - спецификации задачи, как его принято называть, - оговорено большое количество требований к программе (в таком случае задание часто называют спецификацией программы). Но то же самое мы видим и в искусстве - вспомним парадные портреты царственных особ или даже людей, приближенных ко двору. Программирование часто становится мало похожим на искусство, опускаясь до уровня ремесла. Но опять таки ремесленные по своей природе изделия в руках большого мастера приобретают высокую художественную ценность, становятся, подобно хорошо написанным иконам, произведениями искусства. Словом, в той классификации, которой мы пытаемся заняться, нет четких критериев, как нет их и у искусствоведов.
Если же у кого-то возникает желание считать программирование наукой, то уж никак не фундаментальной. У программирования есть своя теория. Ее естественно так и называть - теория программирования. Думаю, что это вполне достойная прикладная наука. Фундаментальности ей недостает все по той же причине - не успевает этот фундамент затвердеть, как его надо перекладывать.
2) Если информатика - это наука, то каково точное определение и содержание ее?
Бейте меня, но ответить на этот вопрос я не могу. Кто-то из великих математиков, когда ему задали подобный вопрос, сказал: "Математика - это то, чем занимаются математики". Я уже довольно много сказал о том, чем занимаются программисты, но считать это описание точным определением ни самого программирования, ни содержания этой благородной деятельности я не смею.