
1.2.5. Сценарии
Языки сценариев развивались постепенно в течение последних 30 лет. Программы на этих языках представляют наборы непосредственно выполняемых команд. Первым из таких языков был sh (сокр. от shell – оболочка). Он состоял из небольшого набора команд, интерпретируемых как вызовы системных подпрограмм для выполнения служебных функций (управление файлами, их простую фильтрацию и т.п.). Затем к этой основе были добавлены переменные, операторы управления, функции и другие возможности. В результате получился язык программирования. Один из наиболее мощных и широко известных языков сценариев – ksh, разработанный Д. Корном из компании Bell Laboratories.
Еще один язык сценариев – awk – был разработан сотрудниками компании Bell Laboratories А. Ахо, П. Уайнбергером, Б. Керниганом. Вначале этот язык предназначался лишь для генерации отчетов, но позже стал универсальным. Расширяемый язык подготовки сценариев tcl был разработан в университете штата Калифорния в Беркли Дж. Остераутом. Затем tcl объединили с языком tk, позволяющим создавать приложения в системе X Window.
Разработанный Л. Уоллом язык Perl сначала представлял собой комбинацию языков sh и awk. После этого он получил значительное развитие и сейчас является мощным, хотя и несколько примитивным, языком программирования. С появлением World Wide Web популярность Perl резко возросла, в основном благодаря тому, что он хорошо подходит для программирования интерфейса CGI (Common Gateway Interface – общий шлюзовый интерфейс). Вообще говоря, языки сценариев внесли не очень большой вклад в развитие традиционных языков программирования. Однако язык Perl имеет несколько интересных особенностей.
Все большую популярность завоевывает гибкий современный язык сценариев Python, разработанный с учетом многолетней истории программирования и современных технологий.
Можно назвать еще ряд языков сценариев, порожденных Интернет-технологиями – PHP, JavaScript и т.д.
1.2.6. Информационные системы уровня предприятий
В последние десятилетия наблюдается тенденция к универсализации языков программирования. Современные крупные программные продукты имеют сложную и распределенную архитектуру, объединяют в себе подсистемы различного назначения (базы данных, безопасность, сценарии, web-интерфейс, бизнес-расчеты и т.п.). Для их разработки и интеграции возникла потребность в универсальных системах программирования, которые кроме языка содержат исполняющую платформу. К таковым, в частности, можно отнести языки и соответствующие им платформы Java, C#.
1.2.7. Специализированные задачи
В последние годы появилось также множество специализированных языков программирования для решения узких задач. В их число входит язык RPG, используемый для генерации деловых отчетов, язык APT, созданный для управления программируемыми устройствами, и язык GPSS, разработанный для моделирования систем. В нашей стране к таковым можно отнести скриптовые языки подобные пакету «1С-Предприятие».
1.3. Критерии оценки языков программирования
Цель настоящего курса – изучение концепций, лежащих в основе конструкций и возможностей языков программирования. Мы также должны уметь оценивать эти концепции, особенно в плане их влияния на разработку и эксплуатацию ПО. Любой перечень критериев такой оценки будет спорным, поскольку всегда найдутся специалисты по вычислительной технике, имеющие различные точки зрения на относительную ценность того или иного свойства языка. Мы приведем лишь критерии, признанные большинством ученых.
1.3.1. Читабельность
Одним из важнейших показателей языка программирования является легкость чтения и понимания написанных на нем программ. На заре развития разработка ПО в основном сводилась к написанию кода. Однако в 1970-х годах была создана концепция жизненного цикла ПО. Значение собственно кодирования команд снизилось, а основной частью жизненного цикла ПО стали считать его эксплуатацию, особенно с точки зрения стоимости. Поскольку легкость эксплуатации (сопровождения) в основном определяется читабельностью программ, то она стала важной характеристикой качества программ и языков программирования.
Читабельность необходимо рассматривать лишь в контексте определенной прикладной области. Если вычислительная программа была написана на языке, для этого не предназначенном, то она может оказаться неестественной и запутанной, так что читать ее будет крайне трудно.
Далее описываются характеристики, способствующие улучшению читабельности языка программирования.