Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Непроцедурные языки программирования).pdf
Добавлен: 05.04.2023
Просмотров: 459
Скачиваний: 1
СОДЕРЖАНИЕ
I. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
В начале следует определить значение таких терминов, как "классификация" и "языки программирования".
1.1 История развития языков программирования
1.2 Процедурные языки программирования
II. КРИТЕРИИ ВЫБОРА ЯЗЫКА ПРОГРАММИРОВАНИЯ
III. ОБЗОР И КЛАССИФИКАЦИЯ СРЕД РАЗРАБОТКИ
3.1 Роль ИСР в разработке программ
IV. КРИТЕРИИ ВЫБОРА СРЕДЫ РАЗРАБОТКИ
Arsenault, C. Best IDE Software - a List of the Top 10.
URL: https://www.keycdn.com/blog/best-ide (Дата публикации: 11.07.2017).
Аналогичный аргумент применим и для Web-сайтов. Они должны выглядеть и работать одинаково во всех браузерах. Использование тегов CSS3 и HTML5 без проверки совместимости с браузерами приведет к разному отображению и поведению сайта в разных браузерах.
2.3 Гибкость
Гибкость языка обеспечивает легкость выражения на языке, необходимом для решения задач, действий. А также , гибкость языка определяется тем, насколько легко можно добавлять к существующей программе новые функциональные возможности. В эти возможности может входить : добавление нового набора функций или использование существующей библиотеки для добавления новой функциональности.
Рассмотрим следующие вопросы, связанные с гибкостью:
- Можно ли использовать новую функциональность без подключения новой библиотеки?
- Если нет, доступна ли эта функциональность в библиотеке языка?
- Если эта функциональность не встроена в язык и не доступна в библиотеке, какие усилия нужно приложить для ее создания с нуля?
До принятия решения нужно решить, как именно спроектирована программа и также какие функциональные возможности перенесены на более поздний срок.
Несмотря на то, что технически данное сравнение языков некорректно, рассмотрим Python и Perl. Будучи очень разными, эти языки имеют много общего. Оба языка универсальны , если проводить параллель с PHP. Достаточно развиты в отличии от shell, awk и им подобных. Perl и Python являются скриптовыми языками программирования. Так вот, Perl в сравнении с Python имеет встроенную поддержку регулярных выражений. В Python необходимо вводить модуль re из стандартной библиотеки.
2.4 Время исполнения проекта
Время исполнения и легкость освоения языка очень тесно связаны между собой. По мнению зав. кафедрой Информационных систем Сыктывкарского университета Бабенко В.В. и канд. физ. мат. наук, доцента Сыктывкарского университета Гольчевского Ю.В. :
«Легкость в освоении является фактором, который сильно влияет на статистику, но по большому счету не является определяющим для специалистов в сфере информационных технологий. В настоящее время, ожидания от высокой эффективности в освоения простых инструментов нет, отсюда получается, что для освоения инструментов в полной мере, следует потратить значительно количество времени.» [11]
По мнению Джерри Регунада и Нехи Джайн :
«Время исполнения - это неотъемлемый критерий, на который стоит опираться при выборе языка разработки какой-либо из программ.»[12]
Это время, необходимое для создания рабочей версии программы, готовой для работы в производственных условиях и выполняющей предусмотренные функции. При расчете этого времени необходимо учитывать логику управления, а также логику представления.
Время исполнения любого проекта зависит от размера кода. В теории, чем легче изучить язык и чем меньше объем кода, тем меньше это время.
Примером является, сайт управления контентом на PHP-сценариях можно разработать за несколько дней, в то время как создание кода сервлетов может занять несколько месяцев, при условии, что вы начали изучать оба языка с нуля.
2.5 Производительность
Каждая программа и платформа имеет определенный порог производительности. На производительность, оказывает влияние используемый при разработке проекта язык. Существует несколько способов сравнения скорости работы в одинаковой среде программ, написанных на разных языках. Можно использовать различные эталонные тесты, хотя их результаты не являются конкретной оценкой производительности какого бы то ни было языка.
Рассмотрим два варианта Web-приложения, написанных на Java и на Python. На основании данных тестирования можно прийти к заключению, что в одинаковой среде приложение, написанное на Java, должно работать быстрее, чем приложение, написанное на Python. А как насчет самой среды? Если средой является одноядерная x86 Ubuntu Intel Q6600, это справедливо, поскольку вычислительная мощность ограничена. А если взять Web-приложение, работающее в облачной среде на Google App Engine? Такое приложение может использовать практически неограниченную процессорную мощность, и обе программы возвращают результаты почти за одно и то же время. Теперь основным фактором выбора будет количество строк кода и удобство обслуживания.
Производительность языка нужно учитывать в случае, когда целевая среда не предлагает широкой масштабируемости, – например, при разработке для мобильных устройств.
2.6 Поддержка и сообщество
Язык программирования, должен опираться на твердую поддержку сообщества, как и любая хорошая программа. Язык с активным форумом скорее всего будет популярнее замечательного языка, помощь по которому трудно найти.
Поддержка сообщества – это вики-сайты, форумы, учебные руководства и, самое важное, дополнительные библиотеки, развивающие язык. Прошли те дни, когда люди работали автономно. Никто не захочет прерывать горы документации, чтобы решить одну маленькую проблему. Если у языка много сторонников, это увеличивает шансы того, что ранее кто-нибудь сталкивался с вашей проблемой и уже написал об этом на вики-сайте или на форуме.
Хороший пример значения сообщества дает язык Perl. Архив Comprehensive Perl Archive Network (CPAN) поддерживается усилиями сообщества. Главная цель CPAN – помочь программистам в поиске модулей и программ, не включенных в стандартный дистрибутив Perl. По своей структуре он децентрализован; авторы обслуживают и улучшают свои собственные модули. Обычной практикой является создание ответвлений и конкурирующих модулей для одной и той же задачи или цели.
В данном разделе была рассмотрена лишь некоторая часть критериев, влияющих на выбор языка программирования. Этот раздел помог разобраться, а также исследовать ряд критериев, которые следует учитывать при выборе языка программирования.
III. ОБЗОР И КЛАССИФИКАЦИЯ СРЕД РАЗРАБОТКИ
3.1 Роль ИСР в разработке программ
Интегрированная среда разработки ( IDE) - это совокупность программных средств, которая поддерживает все этапы разработки программного обеспечения. Начиная от написания исходного текста программы до ее компиляции и отладки. Обеспечивает простое и быстрое взаимодействие с другими инструментальными средствами ( программным отладчиком, ,внутрисхемным эмулятором, эмулятором ПЗУ и программатором).
Как правило, среда разработки ориентирована на определенный язык программирования. А также на набор функций, которые наиболее близко соответствует парадигмам этого языка. Но есть некоторые IDE с поддержкой нескольких языков, такие как: Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode.
Интегрированная среда разработки представляет из себя единственную программу, в которой проводится вся разработка. Она обычно содержит много функций для создания, компилирования, развертывания, изменения и отладки программного обеспечения.
Цель ИСР является : абстрагировать необходимую конфигурацию. Которая в дальнейшем объединится с утилитой командной строки в одном модуле. Этот модуль позволит уменьшить время, для изучения языка. И в конечном счете повысить производительность разработчика.
Трудная интеграция задач разработки может и дальше повысить производительность. Например, IDE[13] позволяет проанализировать код и отталкиваясь от этого обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.
Сейчас большинство современных IDE являются графическими.
Среды разработки использовались еще до появления системы управления окнами ( Microsoft Windows или X11 для *nix-систем).Раньше же они были основаны на тексте, используя функциональные клавиши или горячие клавиши, для выполнения различных задач (Turbo Pascal).
ИСР часто поддерживают пометки в комментариях, в исходном тексте программ. Отмечают места, которым требуется дальнейшее внимание или внесение изменений. Например, такие как TODO.
В дальнейшем эти пометки могут выделяться редакторами ( vim, emacs, встроенный редактор Visual Studio) или использоваться для организации совместной работы с построением тегов и задач (например, в IntelliJ). Использование комментариев с TODO также является стандартом оформления кода на Object Pascal, Delphi. Microsoft в руководстве по Visual Studio рекомендует использовать тег TODO (наравне с HACK, UNDONE) для следующих пометок:
- добавление новых функций;
- известных проблем, которые нужно устранить;
- предполагаемых к реализации классов;
- мест размещения кода обработчиков ошибок;
- напоминаний о необходимости переработки участка кода.
3.2 Классификация ИСР
Свободно распространяемые среды разработки программ имеют разное назначение: учебное, развивающее, познавательное. На использование сред программирования ориентированы такие пользователи как, школьники, студенты и программисты-новички.
Отсюда, ученые выдвинули следующую классификацию свободно распространяемых сред :
– ИСР с поддержкой одного языка программирования;
– ИСР с поддержкой нескольких языков программирования;
– ИСР разработки веб-систем и приложений;
– ИСР, направленные на детскую аудиторию.
ИСР ориентированные на один язык программирования: PyScripter, Lazarus,Wing IDE, DrPython.
Свободно распространяемые среды разработки программ, направленные на несколько языков программирования: SharpDevelop, CodeLite, Anjuta, Eric, Eclipse, HiAsm, Kylix, Dev-C++, MonoDevelop, NetBeans, Xcode и пр,.
Из перечня свободных сред предназначенных для создания веб-приложений и приложений можно выделить следующие: MooTools, Code::Blocks, Codelobster PHP Edition, Geany, Ultimate++, Symfony, Grails.С помощью этих сред разработки специалисты, производят создание сайтов и Интернет-интерфейсов.
Основной целью использования, сред разработки направленных на детскую аудиторию, является поощрение детей в изучении программирования. К ним относятся: Algo, Alice, EToys, Scratch, Squeak и т.п
3.3 Обзор IDE по классам
Рассмотрим по одной IDE , из каждого предполагаемого класса.
Интегрированная среда ориентированная на один язык программирования:
Lazarus
Открытая среда разработки ПО на языке Object Pascal для компилятора Free Pascal.
Бесплатно распространяемый компилятор языка программирования Pascal. Культин. Н.Б. считает, что :
«Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi - подобном окружении.»[14]
Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows, Android. Начиная с Delphi XE2 в самом Delphi имеется возможность компиляции программ для Mac OS X, с версии XE4 — для iOS, с версии XE5 — для Android, с версии 10.2 Tokyo — для Linux(x64).
Особенности :
Основан на библиотеке визуальных компонентов Lazarus Component Library (LCL). В настоящее время практически полностью поддерживает виджеты Win32, GTK1, GTK2, Carbon, Qt. В разработке находятся виджеты WinCE.
- Поддерживает преобразование проектов Delphi
- Реализован основной набор элементов управления
- Редактор форм и инспектор объектов максимально приближены к Delphi
- Интерфейс отладки (используется внешний отладчик GDB)
- Простой переход для Delphi программистов благодаря близости LCL к VCL
- Полностью юникодный (UTF-8) интерфейс и редактор и поэтому отсутствие проблем с портированием кода, содержащего национальные символы
- Мощный редактор, включающий систему подсказок, гипертекстовую навигацию по исходным текстам, автозавершение и рефакторинг
- Форматирование исходного текста «из коробки», используя механизмы Jedi Code Format
- Поддержка двух стилей ассемблера: Intel и AT&T (поддерживаются со стороны компилятора)
- Поддержка множества типов синтаксиса Pascal: Object Pascal, Turbo Pascal, Mac Pascal, Delphi (поддерживаются со стороны компилятора)
- Имеет собственный формат управления пакетами
- Авто сборка самого себя (под новую библиотеку виджетов) нажатием одной кнопки
- Поддерживаемые для компиляции ОС: Linux, Microsoft Windows (Win32, Win64), Mac OS X, FreeBSD, WinCE, OS/2
Свободно распространяемые среды разработки программ, направленные на несколько языков программирования:
NetBeans
Бесплатная среда разработки с открытым исходным кодом. Подходит для редактирования существующих проектов или создания новых. NetBeans предлагает простой drag-and-drop интерфейс, который поставляется с большим количеством удобных шаблонов проектов. Среда в основном используется для разработки Java приложений, но можно устанавливать пакеты, поддерживающие другие языки.