А ведь вначале о подобных проблемах никто и не думал. Первые компьютеры были весьма неудобны в использовании (относительно современных, конечно), поэтому информация накапливалась очень медленно. Но, к счастью или сожалению, прогресс не стоял на месте. Появился текстовый интерфейс, операционные системы, высокоуровневые языки программирования, форматы данных, графический интерфейс, Интернет, наконец. Каждое из последующих нововведений (не считая прогресса аппаратного обеспечения) облегчало ввод и обработку информации, что вело к росту ее объемов и затрудняло поиск. С появлением Интернета ситуация еще больше усугубилась: покуда компьютеры не были связаны в единую сеть не каждый находил удовольствие в выплескивании своих мыслей и эмоций на жесткий диск, но появление тысяч и даже миллионов благодарных (а пусть даже и неблагодарных) читателей, стало спусковым крючком для экспоненциального роста информации.
Можно ли решить проблему больших объемов информации? Кое-кто полагает, что решение в коллаборации и разного рода социальных сетях, а также Семантическом Вебе (который, хотя и акцентируется на интеллектуальных агентах и приложениях, но тоже подразумевает своего рода социальную сеть). Однако существует, по крайней мере, две проблемы. (1) Информация, когда создается и публикуется, уже должна быть упорядочена. Возникает вопрос, есть ли гарантия, что сторонние люди упорядочат ее лучше, чем ее создатели? (2) Порой коллаборация вместо упорядочивания информации создает еще больший объем информации, которую в свою очередь, тоже надо упорядочивать. (3) Часто упорядочивание требует эксперта, что порой просто невозможно. Другие перспективные направления включают (но не ограничены только этими): виртуальная реальность, дополненная реальность, 3-мерный интерфейс, распознавание образов и языка. Некоторые из них еще недостаточно развиты, другие же весьма эффектны эстетически, но не так полезны практически. Раз так, то давайте попробуем взглянуть на проблему с другой стороны: а можно ли вообще понять, что хотя бы теоретически могло бы решить эту проблему? Для начала можно посмотреть на революции прошлого и попробовать понять, почему то или иное изобретение оказалось прорывом.
* Текстовый (консольный) интерфейс. Возник, т.к. человеку было необходимо общаться с компьютером на понятном языке. Для подобного общения были неоходимы два условия: возможность идентифицировать ту или иную компьютерную сущность (например, диск или операцию копирования) и возможность абстрагирования (т.е. выражения множества действий или объектов при помощи одного идентификатора). Как побочный эффект: возможность переиспользования уже имеющихся идентификаторов. Долгое время проводились попытки использовать естественный язык для этих же целей, но они провалились не только из-за того, что анализ полного набора грамматических конструкций затруднен (хотя анализ упрощенного подмножества вполне реален), но также из-за того, что для оперирования компьютерными сущностями лучше подходит специальный язык. Ведь, любая область человеческой деятельности рано или поздно приходит либо к своему жаргону (арго), либо к специфическому абстрактному языку (как в математике), которые лучше абстрагируют объекты и действия этой области.
* Высокоуровневые языки программирования, программные интерфейсы, форматы данных. По сути, ситуация такая же как и с текстовым интерфейсом, но с большими возможностями (которые заключается в наборе дополнительных абстракций, помогающих компоновать гораздо более сложные решения). Форматы данных, по сути, являются абстрактным языком (что неявно в двоичном виде, но явно в текстовом) для упорядочивания и ограничения информации.
* Операционная система. Среда, помогающая программному обеспечению и пользователю использовать аппаратное обеспечение. По сути же, предоставляет слой абстракции, который скрывает низкоуровневые сущности аппаратного обеспечения, а также позволяет программному обеспечению выстраивать свой слой абстракции, предоставляя набор сущностей, понятных пользователю.