14 Языки программирования: С или не С?
14
Языки программирования: С или не С?
Границы моего языка — границы моего мира.
Логико-философский трактат
(Tractatus Logico-Philosophicus 5.6, 1918)
—Людвиг Виттгенштейн (Ludwig Wittgenstein).
14.1. Многообразие языков в Unix
В Unix поддерживается более широкий по сравнению с любой другой операционной системой диапазон языков прикладного программирования. Фактически Unix способна поддерживать больше различных языков, чем все вместе взятые операционные системы в истории вычислительной техники[117].
Существует по крайней мере две весомые причины столь значительного разнообразия. Во-первых, широкое использование операционной системы Unix как исследовательской и обучающей платформы. Второй причиной (гораздо более значимой для работающих программистов) является тот факт, что подбор подходящего языка (или языков) для конструкции приложения может привести к огромным различиям в продуктивности программиста. Следовательно, Unix-традиции поддерживают проектирование узкоспециальных языков (как было сказано в главах 7 и 9) и языков, которые в настоящее время обычно называются языками сценариев, разработанных специально для связывания между собой других приложений и инструментальных средств.
Понятие "язык сценариев" (scripting language), вероятно, происходит от термина "сценарий" (script), который применялся к заранее подготовленному вводу для программы, обычно работающей в интерактивном режиме, в частности, sh или ed — гораздо более уместный термин, чем "runcom", унаследованный Unix от предка, операционной системы CTSS. Слово "script" появляется в руководстве для системы V7 (1979). Я не помню, кто именно придумал это название.
Дуг Макилрой.
В действительности термин "язык сценариев" несколько неудобен. Многие из основных языков, обычно описываемых как языки сценариев (Perl, Tcl, Python и другие), уже переросли первоначальные задачи создания сценариев и в настоящее время являются самостоятельными универсальными языками программирования значительной мощности. Данный термин склонен срывать сильное сходство в стиле с другими языками, которые обычно не причисляются к этой группе, особенно с Lisp и Java. Единственным аргументом, оправдывающим нынешнее использование данного понятия, является тот факт, что лучшего термина еще никто не придумал.
Частично причиной того, что данные языки можно объединить в группу "языков сценариев" является то, что все они имеют почти совершенно идентичный онтогенез. Наличие динамической среды для интерпретации также сравнительно облегчает автоматизацию управления динамической памятью. Автоматизация управления динамической памятью требует использования ссылок (трудных для понимания адресов памяти, которые разработчик не в состоянии вычислять) вместо распространения копий значений или явных указателей. Использование ссылок делает динамический полиморфизм и ОО-методики следующим простым этапом.
Для того чтобы эффективно применять философию Unix, инструментарий программиста должен включать в себя не только С. Программисту потребуется изучить использование некоторых других языков в Unix (особенно языков сценариев), а также способы удобного сочетания нескольких языков, каждый из которых играет особую роль в крупных программных системах.
В данной главе рассматривается язык С и его наиболее важные альтернативы, обсуждаются их сильные и слабые стороны, а также виды задач, которым они наилучшим образом соответствуют. Ниже описываются языки С, С++, shell, Perl, Tcl, Python, Java и Emacs Lisp. Каждый обзорный раздел включает в себя учебные примеры приложений, написанных с использованием данных языков, а также ссылки на другие примеры и учебные материалы. Высококачественные реализации всех данных языков доступны в Internet в виде открытого исходного кода.
Внимание: выбор языка прикладного программирования является одним из основных идеологических вопросов в сообществе Internet/Unix. Люди сильно привязываются к данным средствам и иногда защищают их вопреки здравому смыслу. Если глава достигнет своей цели, то вполне может оскорбить фанатичных приверженцев всех языков, однако все остальные разработчики почерпнут из нее немало полезного.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
3 Поддерживаемые языки
3 Поддерживаемые языки Программа поставляется с поддержкой трех языковАнглийскогоРусскогоУкраинскогоПри наличии большого желания вы можете локализовать программу под любой язык, для этого в каталоге / Language прграммы выберите файл Русский.lng или Ukrainian.lng, что удобнее
Приложение: Объектно-ориентированные языки программирования
Приложение: Объектно-ориентированные языки программирования Использование объектно-ориентированной методологии не ограничено каким-либо одним языком программирования - она применима к широкому спектру объектных и объектно-ориентированных языков. Наряду с анализом и
А.8. Другие объектно-ориентированные языки программирования
А.8. Другие объектно-ориентированные языки программирования На рис. А-2 вы найдете названия многих важных объектных и объектно-ориентированных языков, в библиографии есть ссылки на информацию о большинстве из них. <рисунок пропущен>
14 Языки программирования: С или не С?
14 Языки программирования: С или не С? Границы моего языка — границы моего мира. Логико-философский трактат (Tractatus Logico-Philosophicus 5.6, 1918) —Людвиг Виттгенштейн (Ludwig Wittgenstein). 14.1. Многообразие языков в Unix В Unix поддерживается более широкий по сравнению с любой другой операционной
Другие языки программирования с поддержкой .NET
Другие языки программирования с поддержкой .NET Вы должны понимать, что C# является не единственным языком, ориентированным на платформу .NET. Когда платформа .NET была впервые представлена общественности на Профессиональной конференции разработчиков Microsoft в 2000 году, ряд
Среды и языки программирования для Pocket PC
Среды и языки программирования для Pocket PC Basic4PPCЭто как раз тот самый случай, когда трудно найти сайт производителя хорошей программы. Автору не удалось найти сайт фирмы Anywhere Software. Но саму программу можно загрузить с сайта www.pocketgear.com.Программа Basic4PPC совмещает возможности
Подверженные греху языки
Подверженные греху языки Самыми опасными в этом отношении являются языки С и С++. Успешная атака приводит к исполнению произвольного кода и раскрытию информации. В программах на других языках произвольный код обычно выполнить не удается, но, как отмечено выше, возможны
Подверженные греху языки
Подверженные греху языки Любой язык подвержен этому
Подверженные греху языки
Подверженные греху языки Еще одна универсальная беда. Допустить ошибки при доступе к данным и встроить секретные данные в код можно на любом
Подверженные греху языки
Подверженные греху языки Раскрытие информации не связано с каким–то конкретным языком, хотя если говорить о случайных утечках, то многие современные языки высокого уровня усугубляют проблему, так как выдают излишне подробные сообщения об ошибках, которые могут
Подверженные греху языки
Подверженные греху языки Любой язык, позволяющий обращаться к файлам, подвержен этому греху. А это все без исключения современные языки
Подверженные греху языки
Подверженные греху языки В отличие от многих других грехов степень доверия к службе разрешения имен совершенно не зависит от языка программирования. Проблема в изъянах самой инфраструктуры, которой мы пользуемся, и если вы не понимаете, в чем эта проблема состоит, то и
8.2. Языки программирования Виды программирований
8.2. Языки программирования Виды программирований Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащенный набор вычислительных формул
3.8. Языки раскладки клавиатуры
3.8. Языки раскладки клавиатуры При установке системы по умолчанию выбирается русский язык и русская раскладка клавиатуры. Переключение языка ввода осуществляется комбинацией клавиш <Alt>+<Shift>. Иногда возникает потребность добавить дополнительный язык ввода (кроме
ТЕМА НОМЕРА: История, порезанная тонкими ломтиками: Языки программирования. Вдоль и поперек
ТЕМА НОМЕРА: История, порезанная тонкими ломтиками: Языки программирования. Вдоль и поперек Автор: Виктор ШепелевВсю историю компьютерной индустрии и компьютерных наук с определенной точки зрения можно представить как историю развития языков программирования.
Реймонд Эрик Стивен
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉