Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Основные термины).pdf
Добавлен: 01.04.2023
Просмотров: 116
Скачиваний: 2
СОДЕРЖАНИЕ
1. Анализ современных языков программирования и сред разработки
1.2. Анализ современных методов и базовых интерфейсов построения графических приложений
1.3. Критерии и требования разработки современных графических приложений
2. Классификации современных сред и языков программирования
2.1. Классификации современных языков программирования
2.2. Современные высокоуровневые языки программирования
2.3. Специфика процесса разработки программных приложений на высокоуровневых языках
3. Критерии выбора среды и языка программирования
Хотя сравнение этих языков технически некорректно, рассмотрим 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» это один из самых распространённых и востребованных языков программирования высокого уровня, подходящий для решения технических задач различной направленности, в том числе и для разработки графических приложений. Во многом это подтверждается успешной эксплуатацией данного языка программирования на практике во многих крупных компаниях и корпорациях.
Список использованной литературы
- Портянкин И. Swing. Эффективные пользовательские интерфейсы. СПб.: Питер, 2010 . – 337 с.
- Божко А.Н., Жук Д.М. Компьютерная графика. М.: МГТУ им. Н. Э. Баумана, 2010. - 392 с.
- Лафоре Р. Структуры данных и алгоритмы в Java. Классика Computers Science. 2-е изд. — СПб.: Питер, 2013. — 704 с.
- Нимейер П. Программирование на Java. – Москва: Эксмо, 2014. – 1216 с.
- Монахов В.В. Язык программирования Java и среда NetBeans. – СПб.: БХВ-Петербург, 2011. – 704 с.
- Нейгел К., Ивьен Б., C# 5.0 и платформа .NET 4.5 для профессионалов. М.: Академия, 2014. – 1440 с.
- Петров М., Молочков В. Компьютерная графика. – СПб.: Питер, 2010. – 736 с.
- Скляр Д., Трахтенберг А. PHP. Рецепты программирования. – СПб.: БХВ-Петербург, 2015. – 784 с.
- Бобровский С.И. Delphi 7.Учебный курс. СПб.: Питер, 2010. − 736 с.
- Руби С., Томас Д., Rails 4. Гибкая разработка веб-приложений. – СПб.: КноРус, 2014. – 448 с.
- Себеста Р. Основные концепции языков программирования. Concepts of Programming Languages. – М.: Эксмо, 2011. – 512 с.
- Седжвик Роберт, Уэйн Кевин. Алгоритмы на Java, 4-е изд. – М.: ООО “И.Д. Вильямс”, 2013. – 848 с.
- Страуструп Б. Программирование. Принципы и практика использования C++. – М.: Вильямс, 2011. – 1248 с
- Сьерра Кэти Изучаем Java / Сьерра Кэти, Бейтс Берт – М.: Эксмо, 2014. – 708 с.
- Хахаев И. А. - Практикум по алгоритмизации и программированию на Python. – М.: Альт Линукс, 2010. – 126 с.
- Хорстманн С., Корнелл Г. Java. Библиотека профессионала. – М.: ООО “И.Д. Вильямс”, 2014. – 864 с.
- Хиллегасс А. Objective-C. Программирование для iOS и MacOS. – СПб.: Питер, 2012. – 605 с.
- Хэррон Д. Node.js Разработка серверных веб-приложений на JavaScript. – СПб.: ДМК Пресс, 2012. – 468 с.
- Шилдт Г. Swing: руководство для начинающих. – М.: ООО “И.Д. Вильямс”, 2011. – 704 с.
- Шилдт Г. Java. Полное руководство, 8-е изд. – М.: ООО “И.Д. Вильямс”, 2012. – 1104 с.
- Эванс Б., Вербург М. Java. Новое поколение разработки. – СПб.: Питер, 2014. — 560 с.
- Эккель Б. Философия Java. – СПб.: Питер, 2015. – 1168 с.