Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Непроцедурные языки программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 05.04.2023

Просмотров: 459

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Аналогичный аргумент применим и для 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 приложений, но можно устанавливать пакеты, поддерживающие другие языки.