Более 15 лет моя работа связана с ERP-системами. В последние несколько лет, сталкиваясь с вопросами и претензиями пользователей к несовершенству программных продуктов, а также при общении с коллегами, я не устаю повторять идею о том, что, скорее всего, современные информационные технологии находятся еще на столь ранней стадии и в настолько несовершенном виде, что множество вещей, простых и понятных в естественном мире, являются слишком технологически сложными и недостижимыми в программных продуктах. Прежде всего, это касается обмена данными между различными программными продуктами, трансформации данных, платформозависимости программных продуктов, существенной ограниченности в модификации структур данных и процессов, и пр. Также это касается и реализации довольно простых процессов в понимании людей, далёких от программирования. Подобных примеров можно привести воз и маленькую тележку. В результате за понятными вещами и процессами в естественном понимании, на бытовом уровне и даже в базовом профессиональном уровне могут стоять очень сложные и ресурсоёмкие технологии. Анализ, проектирование и изменение программных систем стоят конечным потребителям сотни долларов за час работы консультантов и программистов. Добавление колонки в отчет может потребовать 8 часового дня работы программиста. Все это регулярно вызывает закономерные вопросы пользователей «Почему так дорого?» и «Почему так медленно делаются изменения?». Альтернативой для пользователей является только добровольное залезание в прокрустово ложе коробочных решений вместо настройки системы под конкретные требования компаний, что является жестоким компромиссом, и подавляет волю, разум и веру в информационные технологии людей, привыкших к свободе мысли.
Эта книга посвящена обзору существующих технологий, и затем в ней сделана попытка воспроизвести информационный универсум – объемлющую информационную модель, которая сможет объединить и примирить разные технологии, сделать их прозрачными и взаимо-трансформируемыми.
Программные технологии становятся все сложнее с каждым днём (хотя и дают большие возможности), а программисты прошлого века, столкнись они только с одним пластом современного программирования от web-систем до баз данных, несомненно, испытали бы шок и впали бы в депрессию от обилия требуемых знаний о системах программирования. Признак сложности не является признаком совершенства, а требование наличия определенного объема знаний не означает, что система будет работать лучше по сравнению с системами на компьютерах прошлого столетия. И, напротив, складывается тенденция того, что при создании распределенных, веб-ориентированных, модульных, трехзвенных программных систем, тестирование становится все сложнее, обслуживание накладных процессов коммуникации между составляющими системы, пользовательским интерфейсом и пр. отнимает все больше сил разработчика. В этом смысле я придерживаюсь идей демокритовского атомизма, пытаясь разложить составляющие информационных технологий на элементарные частицы – атомы, отбросив, таким образом, чисто технологические детали, не добавляющие ценности в конечный результат или же имеющие утилитарные и побочные функции. И через эту «технику» я стремлюсь разобраться и переосмыслить начала информационных процессов вновь. Я попрошу вас не сравнивать атомизм, как подход по отбрасыванию незначащих деталей, и разбор предметов «по винтикам», с наивным искусством, которое рассматривает мир через примитивное представление.
Я предполагаю, что читатели обладают базовыми знаниями в области информатики, управления базами данных, а также в области логических методов искусственного интеллекта. Несмотря на то, что я пытаюсь достаточно просто и подробно описать суть вещей и привести достаточное количество примеров, тем не менее, неподготовленного читателя могут смутить ссылки на некоторые технологии, которые никак не возможно было бы описать в этой книге. Впрочем, при наличии огромного количества информации в Интернете, я думаю, что отсылка к терминам, системам и технологиям не станет препятствием для неосведомленного в чем-то читателя, если в нем присутствует пытливость ума.
Я вполне понимаю, что можно найти множество произведений подобной направленности с поиском рецепта для всеобъемлющего решения любых задач – в том числе записи в блогах и на интернет сайтах, статьи, научные работы и книги. Также я не хочу навязывать вам какую-то определенную программную реализацию со словами «вот видите, это настоящий интеллект, настоящая реализация такой-то графовой модели». Вместе с тем, мы с вами уже видели не один десяток таких «конкретных» программ и книг, каждый раз непременно разочаровываясь. Поэтому, задумывая эту книгу, я старался обратиться к основам основ и дать детальную аргументацию, почему меня волнуют одни технологии и менее симпатичны другие, а также какие взгляды существуют на одну и ту же проблематику. И всё-таки в основном я хочу высказать свою собственную точку зрения, а не описывать среднестатистический взгляд, за долгие годы ставший нормой.
Читать дальше