- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Во что мы верим, но не можем доказать: Интеллектуалы XXI века о современной науке - Джон Брокман
Шрифт:
Интервал:
Закладка:
Я считаю, что мы создаем компьютерные программы неправильно. И такой ошибочный путь имеет веские эволюционные причины. Их можно назвать «парадигмой программирования проблемы в компьютерном языке», но невероятный успех закона Мура (мощность компьютеров удваивается примерно каждые 18 месяцев) скрывает от нас тот факт, что мы оказались в эволюционном тупике. Современные компьютеры в 10 тысяч раз мощнее, чем они были не так давно, хотя их возможности не увеличиваются с той же скоростью (с несколькими исключениями – например, игры и интернет-поиск). Скажем, чтобы решить проблему, для точного описания которой нужно 100 страниц, понадобится программа стоимостью в миллионы долларов, и при этом никто не гарантирует, что она будет работать.
Недавно одной небольшой авиакомпании пришлось полностью прекратить работу из-за проблемы программного обеспечения планирования работы экипажей. Это происшествие вызвало беспокойство Конгресса, не говоря уже о пассажирах. Мой ноутбук может сохранить по 200 страниц текста (1/2 мегабайта) для каждого члена всех экипажей этой авиакомпании, только в оперативной памяти, и в 100 раз больше информации (целую энциклопедию из 20 тысяч страниц) для каждого члена экипажей на жестком диске. Но для планирования графиков работы нужны всего одна-две – максимум десять – страниц для одного члена экипажа. Даже учитывая все юридические документы – законы, соглашения с профсоюзами, местные и федеральные налоги, налоги разных штатов, ограничения рабочего времени, требования Федерального управления гражданской авиации относительно сертификации членов экипажа, – кто мог предположить, что с точки зрения компьютерной техники эта проблема непроста? Ведь нужно сохранить и обработать максимум десять страниц информации на человека, притом что мощность одного недорогого ноутбука позволяет сохранить и обработать в 2000 раз больше! Конечно, эта проблема сложна, но не запредельно. Все правила и законы, связанные с планированием рабочего времени экипажей авиакомпании, можно описать меньше чем на 1000 страниц – это 0,5 % оперативной памяти ноутбука.
Программное обеспечение – узкое место рога изобилия высоких технологий. Программа планирования работы для авиакомпании занимает гораздо больше памяти, чем нужно; следовательно, это программное обеспечение представляет собой гораздо большую трудность, чем сама проблема. Неудивительно, что программа назначила на одни самолеты по три пилота, а другие не могли взлететь, потому что в экипаже не оказалось второго пилота. Обратите внимание: дело не в стоимости этой программы – мы можем себе ее позволить. Но использование такого огромного количества памяти указывает на то, что в процессе разработки программы возникла избыточная сложность.
Почему так произошло? Я бы хотел использовать в качестве метафоры криптографию. Мы берем сообщение и зашифровываем его с помощью ключа, при этом для создания кода мы используем функцию, которую трудно воспроизвести. Программисты, следующие современной парадигме, сначала формулируют проблему – например, что Боингу-767 нужен пилот, второй пилот и семь человек экипажа, и каждый из них должен пройти определенную сертификацию. Затем они используют свои знания в сфере компьютерных наук и разработки компьютерного обеспечения. Именно так эти вводные данные можно закодировать на компьютерном языке и превратить в алгоритм. Процесс комбинирования – это и есть процесс программирования. Его результат – исходная программа. Так вот, как известно, программирование – это функция, которую трудно инвертировать, хотя возможно, и не по стандартам криптографии. Можно пошутить, что если авиакомпания хочет сохранить в тайне свои правила планирования рабочего времени, то может опубликовать вместо них код исходной программы, ведь никто никогда его не расшифрует. И даже не поймет, к чему этот код относится – к планированию рабочего времени или к поставкам запасных частей. Он может быть совершенно непонятным.
Самое интересное, что сегодня разработка программного обеспечения сосредоточена именно на создании исходных программ, т. е. на «шифровании» проблем. Что еще хуже, «шифрование» – программирование – делается вручную. А это большие затраты, маленькая скорость и много ошибок. Если полевой генерал понимает, что приказ, который он хочет отдать своим лейтенантам, содержит неверную информацию, он не станет заботиться о том, чтобы отредактировать его после расшифровки (т. е. «исправить код»); он исправит исходный текст, а потом зашифрует его снова. Сообщение может быть ошибочным, но не из-за шифра, и тогда ошибку легко исправить.
Упомянутая выше проблема авиакомпании очевидно упрощена. Но если рассмотреть эту проблему в кривом зеркале кодирования при разработке компьютерных программ, она становится почти неузнаваемой: в тысячу раз более бестолковой, бессвязной, и совершенно искусственной. Что здесь можно сделать? Следовать метафоре криптографии. Во-первых, сформулировать проблему – «первоначальное сообщение», как в нашем примере с полевым генералом. Это ни в коем случае не программа, а просто запись мнений экспертов по данному вопросу, на их профессиональном жаргоне, их собственными словами. Затем нужно поручить программистам разработать не программу для решения проблемы, а генератор программ, который будет комбинировать мнения экспертов с параметрами текущей ситуации и сам создаст окончательный код. Это называется порождающим или генеративным программированием. А генератор – механизированное выражение опыта и знаний программистов, что эффективно отделяет исходную проблему от проблемы разработки программного обеспечения. Поэтому изменения в одной из этих двух сфер не вызывают изменений в другой – ведь вклад другой стороны осуществляется либо посредством генератора, либо через формулирование проблемы. По этой причине я верю, что генеративное программирование – будущее программного обеспечения.
Алан Кэй
Алан Кэй – известный специалист в сфере компьютерных наук. В 1970 году пришел в исследовательский центр корпорации Xerox в Пало-Альто (PARC) и стал одним из его ведущих сотрудников. Участвовал в разработке прототипов рабочих станций, объединенных в единую сеть, на основе языка программирования Smalltalk. Один из «отцов» идеи объектно-ориентированного программирования и автор концепции Dynabook, ставшей основой для разработки ноутбука. Президент Научно-исследовательского института формирования убеждений и старший партнер Hewlett Packard Laboratories.
Эйнштейн сказал: «Нужно научиться отличать истину от реальности». Наука – это взаимоотношения между тем, что мы можем представить и помыслить, и тем, что происходит «на самом деле»; это нечто вроде картографирования территории. Выдвигая научные гипотезы, мы делаем предположения относительно точности и картографирования по отношению к языку, а не к «истине» – и если мы считаем, что выдвигаем «предположения об истине» или «ищем истину», это значит, что мы не в своем уме и не способны заниматься наукой. За пределами научного мира это понимают не все. К сожалению, некоторые обладатели научной степени тоже этого не понимают.
Например, в компьютерных науках существует очень мало доказательств, заслуживающих внимания. (Известный программист Дон Кнут из Стэнфордского университета любит повторять: «Бойтесь ошибок предложенного кода; я только проверил его правильность, но не применял его».) Нам бы хотелось доказать правильность компьютерных программ, но либо для этого у нас нет достаточной степени свободы или (о чем говорит Кнут) очень сложно быть уверенными в том, что мы учли все возможные ситуации. Поэтому в компьютерных науках догадки часто касаются архитектуры или набора эвристических правил.
Много лет назад я выдвинул одну догадку, которую до сих пор не удалось подтвердить. Она заключается в том, что особые свойства компьютеров аналогичны (и являются продолжением) особенностям письменной речи и далее – печати. Как указывает медиафилософ Маршалл Маклахан, когда мы меняем характер преподнесения материала и аргументации, люди, которые учатся по этим новым методикам, и мыслить начинают на качественно ином уровне (лучше?), и это (обычно) расширяет границы наших представлений о цивилизации.
Все это до сих пор кажется мне хорошей догадкой, но «истина» не имеет к ней никакого отношения.
Стивен Пинкер
Стивен Пинкер – профессор факультета психологии Гарвардского университета, занимается экспериментальной психологией. Автор нескольких книг, в том числе «Язык как инстинкт»[16], «Как работает разум», «Слова и правила» и «Tabula rasa: современное отрицание человеческой природы».
В 1974 году Марвин Мински написал, что «в анатомии и генетике мозга скрыто гораздо больше механизмов, чем сегодня мы можем представить». Сейчас многие сторонники эволюционной психологии и психологии человека готовы предложить те механизмы, о которых говорил Мински 30 лет назад. Например, я верю, что мышление организовано в когнитивные системы, предназначенные специально для суждений об объектах, пространстве, числах, живых существах и другом интеллекте; что у нас есть эмоции, которые пробуждают в нас другие люди (симпатия, чувство вины, гнев, благодарность), или физические явления и объекты (страх, отвращение, благоговение). Что люди, с которыми мы состоим в разных отношениях (родители, братья и сестры, другие кровные родственники, друзья, супруги, любовники, союзники, конкуренты, враги), вызывают у нас мысли и чувства разного рода, и механизмы коммуникации с другими (язык, жесты, выражения лица) индивидуальны.

