В этой статье речь пойдет об увеличении или уменьшении объема информации для запоминания за счет комбинаций из стандартных элементов. В основе человеческого мышления заложен Естественный Язык (ЕЯ). Естественный язык основан на обработке осмысленных комбинаций из слов и других языковых единиц. Любой язык программирования тоже основан на составлении правильных комбинаций из команд языка, параметров команд, и других более крупных единиц языка типа классов, делегатов, лямбда-выражений и т.д. Естественный Язык отличается от языка программирования тем, что человек может из слов ЕЯ свободно составлять комбинации, а для комбинирования команд языка программирования требуется длительное обучение и интеллектуальное усилие. Теперь сравним, по каким принципам комбинируются между собой элементы языка в продуктах Microsoft и в российской разработке 1С:Предприятие.
Меня восхищает технология от Microsoft – LINQ, которая впервые появилась в Visual Studio 2008. Команды LINQ могут интерпретироваться в запросы SQL к базе данных и выполняться. Часть LINQ является надстройкой над языком запросов SQL. Язык SQL, на котором основана 1С:Предприятие 8, уже стал технологией вчерашнего дня. Теперь ответим на вопрос, для чего понадобилась надстройка над SQL. Замечательным является то, как команды LINQ комбинируются друг с другом. LINQ содержит операторы запроса, которые могут последовательно соединяться друг с другом без всяких правил. Выходные данные одного оператора запроса являются входными данными другого оператора запроса. Теперь нужно отметить, что операторы запроса реализованы как статические методы расширения. Это означает, что в языках программирования от Microsoft существует конструкция, которая называется «статические методы расширения» и операторы запроса являются не абсолютно новыми конструкциями, а реализуют эту уже существующую конструкцию языка. Не будем рассматривать другие примеры из технологий Microsoft, а только подведем итоги. Microsoft использует в языках программирования следующие принципы:
Российские разработчики 1С:Предприятие версии 8 пошли противоположным путем. Инструменты языка программирования создаются независимо друг от друга. При соединении каждой пары элементов языка программирования между собой необходимо знать наизусть множество правил, по которым соединяется именно эта пара элементов. В результате возникает комбинаторный взрыв, который порождает множество правил, которые нужно знать наизусть для эффективного программирования в 1С:Предприятие 8. Тут мы рассмотрим примеры языковых конструкций более подробно.
Это только часть описания той информации, которая порождается комбинациями из различных программных инструментов, и которую должен помнить программист. Эта информация не имеет непосредственного отношения к логике настройки учета. Этот огромный объем информации связан с особенностями создания программных инструментов, и не связан с особенностями экономического учета. В этом заключается главное отличие технологий Microsoft от российской разработки 1С:Предприятие. Технологии Microsoft можно изучить в разумные сроки и эффективно использовать. 1С:Предприятие версии 8 требует слишком больших затрат времени на изучение по-сравнению с временем основной работы.
Теперь хочется найти ответ на вопрос, почему так сильно различаются российские и западные технологии. Причина в системе образования, в подготовке руководителей, отсутствии талантливых разработчиков, отсутствии мотивации для получения результата? Или дело в том, что заказчики, имеющие средства для реализации проекта не могут встретиться с разработчиками, способными создавать технологии? Что мешает российским разработчикам создавать эффективные технологии раньше, чем их создаст Microsoft, и продавать высокие технологии, а не покупать?