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

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

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

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

Добавлен: 01.04.2023

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

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

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

Хотя сравнение этих языков технически некорректно, рассмотрим Perl и Python. Perl имеет встроенную поддержку регулярных выражений. В Python необходимо импортировать модуль re из стандартной библиотеки.

Время исполнения проекта. Это время, необходимое для создания рабочей версии программы, т.е. версии, готовой для работы в производственных условиях и выполняющей предусмотренные функции. При расчете этого времени необходимо учитывать не только логику управления, но и логику представления [8].

Время исполнения проекта очень зависит от размера кода. Теоретически, чем легче изучить язык и чем меньше объем кода, тем меньше это время.

Например, сайт управления контентом на PHP-сценариях можно разработать за несколько дней, в то время как создание кода сервлетов может занять несколько месяцев, при условии, что вы начали изучать оба языка с нуля [6].

Производительность. Каждая программа и платформа имеет определенный предел производительности, и на эту производительность влияет используемый при разработке язык. Существует множество способов сравнения скорости работы в одинаковой среде программ, написанных на разных языках. Можно использовать различные эталонные тесты, хотя их результаты не являются конкретной оценкой производительности какого бы то ни было языка [14].

Рассмотрим два варианта Web-приложения, написанных на Java и на Python. На основании данных тестирования можно прийти к заключению, что в одинаковой среде приложение, написанное на Java, должно работать быстрее, чем приложение, написанное на Python. А как насчет самой среды? Если средой является одноядерная x86 Ubuntu Intel Q6600, это справедливо, поскольку вычислительная мощность ограничена. А если взять Web-приложение, работающее в облачной среде на Google App Engine? Такое приложение может использовать практически неограниченную процессорную мощность, и обе программы возвратят результаты почти за одно и то же время. Теперь основным фактором выбора будет количество строк кода и удобство обслуживания [5].

Производительность языка нужно учитывать в случае, когда целевая среда не предлагает широкой масштабируемости, – например, при разработке для мобильных устройств.

Поддержка и сообщество. Язык программирования, как и хорошая программа, должен опираться на твердую поддержку сообщества. Язык с активным форумом скорее всего будет популярнее замечательного языка, помощь по которому трудно найти [9].

Поддержка сообщества – это вики-сайты, форумы, учебные руководства и, самое важное, дополнительные библиотеки, развивающие язык. Прошли те дни, когда люди работали автономно. Никто не захочет перерывать горы документации, чтобы решить одну маленькую проблему. Если у языка много сторонников, это увеличивает шансы того, что ранее кто-нибудь сталкивался с вашей проблемой и уже написал об этом на вики-сайте или на форуме [6].


Хороший пример значения сообщества даёт язык Perl. Архив Comprehensive Perl Archive Network (CPAN) поддерживается усилиями сообщества. Главная цель CPAN – помочь программистам в поиске модулей и программ, не включённых в стандартный дистрибутив Perl. По своей структуре он децентрализован; авторы обслуживают и улучшают свои собственные модули. Обычной практикой является создание ответвлений и конкурирующих модулей для одной и той же задачи или цели [1].

Пример выбора языка программирования

Выделим основные критерии, по которым будет производиться выбор языка программирования для разработки программы.

Читаемость языка. В отличие от Objective-C, Swift не построен на C. Поэтому у него отсутствуют специальные обозначения ключевых слов, чтобы отличаться от него. Вместо этого он может объединить все ключевые слова и удалить повторяющиеся символы перед каждым типом или связанным с объектом ключевым словом [2, 3].

Так же в Swift упрощена реализация условий наследования. Методы и функции вызываются с использованием стандартного списка параметров в круглых скобках, в то время, как в Objective-C это реализовано с использованием многочисленных вложенных конструкций в круглых и квадратных скобках [9].

По мнению многих программистов JavaScript, Java, C# Swift является более читаемым, что облегчает работу с ним. Он имеет упрощённый синтаксис и грамматику. В результате Swift является совершенно новым, чистым и выразительным языком, более простым для понимания разработчиками.

Поддержка языка. Основная проблема Objective-C - отсутствие возможности развиваться без развития C. В последнем реализован принцип, по которому, чтобы обеспечить высокую эффективность создания приложения и сократить время его установки, разработчикам приходится поддерживать два файла. Этот принцип переносится и на Objective-C [13].

В Swift это требование попросту отсутствует. Теперь файл-заголовок и файл реализации объединены в одном файле кода с расширением .swift [19].

Лишняя работа с двумя файлами попросту отвлекает разработчиков от более важных задач. Используя Swift, можно тратить больше времени на проработку логики приложения и заняться усовершенствованием качества кода и комментариев.

Управление памятью. Программисту не приходится задумываться о памяти для цифровых объектов, которые он создает. Потому что автоматический подсчет ссылок (ARC) обрабатывает все управление памятью во время компиляции кода. Это происходит потому что ARC в Swift работает и на процессуальном и на объектно-ориентированном коде, и теперь не нужно контекстных переходов для программистов, даже если они пишут код, который рассчитан на более старые API[1]. Это является проблемой для текущей версии Objective-C [4].


Документация. Objective-C имеет готовую документацию, которая переведена на русский язык, что упрощает работу с этим языком и его использование в своих проектах. Постоянно развивающийся Swift, в свою очередь, не имеет полностью переведённой документации. При постоянной модернизации языка сложно уследить за всеми мелкими изменениями в его синтаксисе [12].

Скорость работы. Удаление устаревших соглашений намного улучшило движок Swift. Многочисленные тестирования производительности кода указывают на то, что Apple всерьез занимается улучшением скорости работы приложений на Swift. В то время как скорость обработки данных на Objective-C осталась на прежнем уровне C [8].

Законченность языка. На данный момент Swift только развивается, в нем постоянно появляются различные улучшения: изменение правил реализации инкремента, сравнение кортежей, проверка версии. С одной стороны это говорит о темпах развития языка, но с другой, работа с ним в настоящий момент усложнена постоянными сюрпризами.

Что касается Objective-C, то он дальнейшего развития не получает. Apple сконцентрировалась только на работе над Swift. Это стабильный продукт, от которого не приходится ожидать кардинальных изменений.

Поддержка динамических библиотек. Самое большое нововведение в Swift - это переход от статических библиотек, которые обновляются только при крупных обновлениях, к динамическим библиотекам, которые присоединяются к готовому приложению и получают развитие не с обновлением всего проекта, а с изменениями этих библиотек [2]. В Objective-C работа происходила только со статическими библиотеками, что увеличивало объем конечного приложения.

В ходе выполнения 3 главы были изучены основные этапы и специфика критериев выбора среды разработки современных приложений.

ЗАКЛЮЧЕНИЕ

Выполнение данной курсовой работы позволило:

  • расширить, закрепить и систематизировать теоретические знания в области изучаемой дисциплины, применительно к специфике современных языках программирования высокого уровня;
  • сформировать и усовершенствовать практические навыки научно-исследовательской деятельности;
  • развить навыки ведения самостоятельных теоретических и практических исследований в направлении разработки программных приложений;
  • приобрести опыт обработки, анализа и систематизации результатов практических исследований и оценке их практической значимости в возможной области применения.

Проведённый анализ литературных источников позволил выявить и систематизировать основные термины, функциональные возможности, достоинства и недостатки существующих языков программирования высокого уровня.

На этапе анализа обзорных литературных источников применительно к главе 2 были описаны существующие классификации языков и сред программирования, проведён краткий сравнительный обзор современных языков программирования высокого уровня с рассмотрением специфики их использования. Выделены критерии оценки качества программного обеспечения и приведены основные этапы разработки программ на языках программирования высокого уровня.

Детальное исследование основных базовых интерфейсов и методов построения графических приложений в главе 2, позволило сформулировать и описать основные требования к разработке графических приложений.

В ходе выполнения данной курсовой работы в рамках главы 3 были изучены основные этапы и специфика критериев выбора среды разработки современных приложений.

В результате анализа достоинств и недостатков языка установлено, что на данный момент «Java» это один из самых распространённых и востребованных языков программирования высокого уровня, подходящий для решения технических задач различной направленности, в том числе и для разработки графических приложений. Во многом это подтверждается успешной эксплуатацией данного языка программирования на практике во многих крупных компаниях и корпорациях.

Список использованной литературы

  1. Портянкин И. Swing. Эффективные пользовательские интерфейсы. СПб.: Питер, 2010 . – 337 с.
  2. Божко А.Н., Жук Д.М. Компьютерная графика. М.: МГТУ им. Н. Э. Баумана, 2010. - 392 с.
  3. Лафоре Р. Структуры данных и алгоритмы в Java. Классика Computers Science. 2-е изд. — СПб.: Питер, 2013. — 704 с.
  4. Нимейер П. Программирование на Java. – Москва: Эксмо, 2014. – 1216 с.
  5. Монахов В.В. Язык программирования Java и среда NetBeans. – СПб.: БХВ-Петербург, 2011. – 704 с.
  6. Нейгел К., Ивьен Б., C# 5.0 и платформа .NET 4.5 для профессионалов. М.: Академия, 2014. – 1440 с.
  7. Петров М., Молочков В. Компьютерная графика. – СПб.: Питер, 2010. – 736 с.
  8. Скляр Д., Трахтенберг А. PHP. Рецепты программирования. – СПб.: БХВ-Петербург, 2015. – 784 с.
  9. Бобровский С.И. Delphi 7.Учебный курс. СПб.: Питер, 2010. − 736 с.
  10. Руби С., Томас Д., Rails 4. Гибкая разработка веб-приложений. – СПб.: КноРус, 2014. – 448 с.
  11. Себеста Р. Основные концепции языков программирования. Concepts of Programming Languages. – М.: Эксмо, 2011. – 512 с.
  12. Седжвик Роберт, Уэйн Кевин. Алгоритмы на Java, 4-е изд. – М.: ООО “И.Д. Вильямс”, 2013. – 848 с.
  13. Страуструп Б. Программирование. Принципы и практика использования C++. – М.: Вильямс, 2011. – 1248 с
  14. Сьерра Кэти Изучаем Java / Сьерра Кэти, Бейтс Берт – М.: Эксмо, 2014. – 708 с.
  15. Хахаев И. А. - Практикум по алгоритмизации и программированию на Python. – М.: Альт Линукс, 2010. – 126 с.
  16. Хорстманн С., Корнелл Г. Java. Библиотека профессионала. – М.: ООО “И.Д. Вильямс”, 2014. – 864 с.
  17. Хиллегасс А. Objective-C. Программирование для iOS и MacOS. – СПб.: Питер, 2012. – 605 с.
  18. Хэррон Д. Node.js Разработка серверных веб-приложений на JavaScript. – СПб.: ДМК Пресс, 2012. – 468 с.
  19. Шилдт Г. Swing: руководство для начинающих. – М.: ООО “И.Д. Вильямс”, 2011. – 704 с.
  20. Шилдт Г. Java. Полное руководство, 8-е изд. – М.: ООО “И.Д. Вильямс”, 2012. – 1104 с.
  21. Эванс Б., Вербург М. Java. Новое поколение разработки. – СПб.: Питер, 2014. — 560 с.
  22. Эккель Б. Философия Java. – СПб.: Питер, 2015. – 1168 с.