Движок (Оценка: +14)

Печать / RSS-лента
Предисловие
Хотя меня чаще можно наблюдать в разделе, посвященном ООП, иногда я касаюсь глобальных вопросов программирования в целом и некоторых его аспектов, не связанных с ОО, в частности. Сейчас как раз такой случай, а поговорим мы сегодня о том, чего хотят иметь в авторстве многие начинающие программисты, а именно о движках, двигах, двигателях и подобных, многими не понимаемых терминах. Сразу предупрежу любителей халявы, данная статья не является руководством по написанию "эксклюзивного двига" для вашего сайта, здесь речь пойдет именно о смысловой составляющей этого термина. Начнем.

Заблуждения
Меня много раз спрашивали, почему я не называю свои "движки" "движками"? Ответ прост и сложен одновременно. Дело в том, что термин движка несколько неоднозначен. Если мы возьмем, скажем, игровые движки, позволяющие создавать как игровые карты, так и скрипты к ним, звук и подобные плюшки, то мы опустим из вида множество составляющих этой системы. Двиг многими представляется как некая совокупность кода, который имеет интерфейс взаимодействия и позволяет создавать что то программное. В действительности под данное определение подпадают как языки программирования, так и программные модули, и те и другие могут быть использованы для создания чего либо другого, но, с различной степенью гибкости.
В своей работе я стараюсь строго разграничивать такие понятия, как библиотека, маршрутизатор запросов, хранилище утилит (модулей), визуализатор и так далее. Каждый из этих компонентов выполняет свою функцию и может быть использован как и движок для создания чего то нового, но в отличии от термина "Движок", мы определяем конкретные программные механизмы, дающие нам четкую картину содержимого. Другими словами я придерживаюсь конкретики в выражениях, нежели молодежной тяги к обобщению.
Именно такой подход позволяет мне более полно понять архитектуру этих самых, столь разных, движков.

Совсем немного истории
Начало
С самого начала становления программирования как дисциплины, люди начали стремиться к повторному использованию кода, его накоплению, упрощению понимания программы. Все программисты, и вы не исключения, стремились к написанию собственных "принципиально новых" велосипедов, которые должны были перевернуть привычный мир девелопинга, но большинство этих попыток обычно сводились к накоплению некой библиотеки утилит (функций или классов) и передачи ее в архив после использования любого стороннего продукта. Конечно есть и принципиально новые, но по сравнению с велопарком, это единицы.
Метапрограмминг
С появлением потребности в больших, коммерческих программных продуктах, появилась и потребность в написании таких программ, которые проще сопровождать и модифицировать. Это привело к созданию модулей, отвечающих за автоматизацию многих рутинных операций, что позволило программистам абстрагироваться, то есть отвлечься от низкоуровневой составляющей программирования. Так начали появляться первые программы, создающие программы, то есть очертания любимых всеми движков.
Распространение
Создание метапрограмм, то есть программ, позволяющих создавать прикладные программы, резко ускорило развитие IT индустрии и новые программы появлялись с частотой в несколько штук в день. Многие, как и ожидалось, оставляли желать лучшего, но были и самородки. Дело в том, что такая модель развития отклонила вектор девелопинга от университетов и научных учреждений, к более непринужденному, доступному и простому программированию, это привело к появлению множества не стандартизированных и часто несовместимых программных продуктов.
Унификация
Когда IT мир понял, что для использования одной программы требуется днями искать подходящие для нее компоненты, встал вопрос унификации, то есть стандартизации и приведения разного к общему. Так появлялись первые программные адаптеры, инкапсуляторы и унификаторы, то есть программные модули, позволяющие совмещать несовместимое ПО.
Игровая индустрия
Игры внесли немаловажный вклад в развитие движков, именно на этом рынке зарождались первые механизмы оптимизации и визуализации. Движки в играх строились по тому же принципу, что и корпоративные программные продукты вида b2b (от бизнеса и для бизнеса), но с уклоном на постоянную нехватку ресурсов.

Автор статьи: Артур (19.12.12 / 23:09)
Движки, История
Рейтинг: +14
Просмотров: 1238
Комментарии (3) »