Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ.pdf
Добавлен: 28.03.2023
Просмотров: 149
Скачиваний: 4
До принятия решения необходимо знать, как спроектирована программа, и какие функциональные возможности оставлены на потом.
Хотя сравнение этих языков технически некорректно, рассмотрим Perl и Python. Perl имеет встроенную поддержку регулярных выражений. В Python необходимо импортировать дополнительный модуль из стандартной библиотеки.
Время исполнения – это время, необходимое для создания рабочей версии программы, т.е. версии, готовой для работы в производственных условиях и выполняющей предусмотренные функции. При расчете этого времени необходимо учитывать не только логику управления, но и логику представления.
Время исполнения проекта в значительной зависит от объема кода. Теоретически, чем легче изучить язык и чем меньше объем кода, тем меньше это время.
Например, сайт управления контентом на PHP-сценариях можно разработать за несколько дней, в то время как создание кода сервлетов может занять несколько месяцев, при условии, что вы начали изучать оба языка с нуля.
Каждая программа и платформа имеет определенный предел производительности, и на эту производительность влияет используемый при разработке язык. Существует множество способов сравнения скорости работы в одинаковой среде программ, написанных на разных языках. Можно использовать различные эталонные тесты, хотя их результаты не являются конкретной оценкой производительности какого бы то ни было языка.
Рассмотрим два варианта Web-приложения, написанных на Java и на Python. На основании данных тестирования можно прийти к заключению, что в одинаковой среде приложение, написанное на Java, должно работать быстрее, чем приложение, написанное на Python. А как насчет самой среды? Если средой является персональный компьютер или физический сервер, это справедливо, поскольку вычислительная мощность ограничена. А если взять Web-приложение, работающее в облачном сервисе, то такое приложение может использовать практически неограниченную процессорную мощность, и обе программы возвратят результаты почти за одно и то же время. Теперь основным фактором выбора будет количество строк кода и удобство обслуживания.
Производительность языка нужно учитывать в случае, когда целевая среда не предлагает широкой масштабируемости, – например, при разработке для мобильных устройств или аппаратных контроллеров.
Язык программирования, как и хорошая программа, должен опираться на твердую поддержку сообщества. Язык с активным сообществом разработчиков скорее всего будет популярнее замечательного языка, помощь по которому трудно найти.
Поддержка сообщества – это вики-сайты, форумы, учебные руководства и готовые дополнительные библиотеки, развивающие язык. Современные разработчики редко работают автономно, для решения типовых задач все чаще используются готовые решения в виде подключаемых библиотек, что сокращает время на изучение документации в поисках подсказки в написании алгоритма, выполняющего требующуюся для реализации алгоритма операцию с данными. Если у языка много сторонников, это увеличивает шансы того, что ранее кто-нибудь сталкивался с аналогичной задачей и уже написал об этом на вики-сайте или на форуме, написал код реализующий данный функционал. [8]
3.2. Выбор среды разработки программ
Среда разработки является основным инструментом создания информационной системы или программного продукта ради которого был выбран язык программирования, платформа, создана команда, проведена серия брифингов с заказчиком и командой разработки, разработано и согласованно с заказчиком техническое задание на создание программного продукта, в связи с чем необходимо так же тщательно подойти к выбору среды, в которой данный программный продукт или группа продуктов будет создана.
При выборе среды разработки информационной системы нужно придерживаться нескольким моментам:
-среда должна являться средой визуальной разработки (т.е. в процессе создания программы будет видно, как она будет выглядеть во время выполнения);
-должна быть реализована поддержка объектно-ориентированного стиля программирования (например, наследование, полиморфизм);
-должна быть реализована поддержка процедурного программирования (т.е. что каждая программа состоит из набора процедур, каждая из которых решает свою задачу, при этом одна процедура может вызывать любую другую);
-невысокие требования среды и создаваемой программы к ресурсам аппаратных средств, если такие ограничения присутствуют в конечной среде применения создаваемого ПО;
-должна быть предусмотрена возможность использования стандартных компонентов при создании интерфейса;
-должно быть предусмотрено наличие библиотек для работы с графикой;
-программа должна быть создана с использованием визуальных компонентов для интерфейса;
-разрабатываемый программный продукт должен быть надёжным (должна быть предусмотрена обработка исключительных ситуаций, возникающих при неправильной работе программы).
У каждого программиста есть свой взгляд на модель разработки, определяющийся его прошлым опытом, степенью освоения тех или иных инструментальных средств.
Любая современная среда разработки позволяет производить настройку и адаптацию под те или иные требования: изменение интерфейса, режимов работы, назначения горячих клавиш, установка дополнительных средств («плагинов») и т.п. В арсенале каждого опытного программиста должны быть свои приемы разработки, собственные вспомогательные средства. Он имеет собственные вкусы и предпочтения. Используя настройки, программист может сделать работу в среде более удобной для себя и, тем самым, более эффективной.
Создатели инструментальных средств закладывают, как правило, избыточный набор возможностей и программисты практически никогда не используют инструментальное средство на все 100%.
Обычно среда разработки ПО предназначена для разработки только на одном языке программирования. А такая среда разработки как интегрированная, предоставляет право выбрать создателю программы язык программирования для разработки, удобный разработчику (из поддерживаемых данной средой языков). Примером тому служат: Visual Studio, Komodo, Kylix, NetBeans, Eclipse.
Данные среды разработки программного обеспечения (или подобные) можно осуществлять весь цикл разработки программного обеспечения. Но есть также интегрированные среды, которые предназначены для одного программного языка. Например такая среда как Visual Basic, являющаяся частью программного комплекса Office от компании Microsoft.
Для больших (или командных) проектов в среду разработки должны быть включены файловый менеджер, интегрированная среда разработки программного обеспечения, Система Управления БД (включающая инструмент отчётов таких как Crystal Reports Windows Forms Viewer и Crystal Reports Engine [4]), система отчетов о процессе разработки, журнал изменений для контроля версий продукта, а также интеграция с внешними системами контроля версий и система планирования разработки представляющая собой техническое задание на разработку разложенное на временную шкалу, разделенное по блокам на участников команды и определяющую последовательность создания и взаимосвязь модулей (частей) будущего программного продукта.
Интегрированные среды разработки удобны для командных проектов, постольку в таких средах можно производить весь цикл создания программного обеспечения.
Подводя итоги нужно сказать о том, что интегрированные среды разработки ПО позволяют программистам сократить время на написание приложений, снизить затратность на написание (разработку), повысить удобность разработки — что и является одной из основных целей программной инженерии.
Выводы
Сегодняшний ритм жизни, предъявляет достаточно высокие требования к скорости создания, внедрения и поддержки новых продуктов и технологий, развитию и обновлению существующих технологий и инструментов. Неотъемлемой частью современных технологий и устройств является программное обеспечение обеспечивающее функционирование данных продуктов. Эффективность данного программного обеспечения во многом зависит от правильности выбора среды разработки, технологии и языка программирования использованного для реализации проекта.
Технология программирования во многом определяется языком программирования, на котором пишутся программы. В языке могут быть заложены средства, влияющие на технологичность и архитектуру разрабатываемой системы (например, объектно-ориентированность, модульность и т.п.). Обычно выбирают ту модель разработки и те языки программирования, которые хорошо знают члены коллектива разработчиков. Выбирать новую технологию, которую предстоит осваивать в процессе разработки – риск провалить проект.
Для успешной реализации проекта необходимо изучить требования к конечному продукту, его массовость, специфичность, область применения, ответственность, безопасность, все это повлияет на выбор языка программирования, а следовательно, на выбор команды и среды разработки продукта.
При выборе языка программирования стоит опираться на несколько факторов. Немаловажным из них являются навыки команды разработки, если она уже сформирована или продукт создается устоявшимся коллективом, как внутренний проект или делается для внешнего заказчика, организацией занимающейся разработкой программного обеспечения. Вторым весомым фактором являются требования к безопасности и отказоустойчивости приложения, для специфических устройств, устройств повышенной опасности, медицинских аппаратов, контроллеров устройств входящих в состав центров обработки материалов высокой точности, военной и космической промышленности больше подходят низкоуровневые языки, их узкая применимость и совместимость с небольшим количеством устройств, играет в данном случае положительную роль, повышая эффективность использования ресурсов и безопасность. Это увеличивает срок разработки ПО, предъявляет высокие требования к знаниям команды в предметной области, но обеспечивает необходимую надежность. В случае же когда приложение выполняет роль средства обмена информации, передачи и обработки данных, в том числе не требующих высокой точности результатов, становится возможным использование высокоуровневых языков. Дополнительными факторами в выборе языка программирования могут быть требования обеспечения совместимости со сторонним программным обеспечением, необходимость в наличии интерфейсов взаимодействия с внешними устройствами, другим программным обеспечением и требование функционирования разрабатываемого ПО на определенных аппаратных платформах, сложность возлагаемых на ПО вычислений, специфичность данных передаваемых на обработку приложению и необходимость соединения с внешними базами данных для получения данных и сохранения результатов обработки данных. Немаловажную роль в выборе языка программирования играет область применения ПО, современные языки программирования зачастую ориентированы на создание ПО определенного типа, имеют встроенные средства для реализации конкретных задач. Часть из них предназначены для создания WEB-приложений, не взаимодействующих с аппаратной частью вычислительных систем, это может в свою очередь обеспечивать дополнительную безопасность данных. К таким языкам можно отнести PHP, Python, JavaScript. В противовес им существуют языки, на которых удобнее разрабатывать программное обеспечение, используемое непосредственно на рабочих станциях в качестве прикладных программ, или ПО микроконтроллеров. В данном случае мы говорим о языках С и его потомках, Pascal, Basic и других подобных. На стыке этих областей можно выделить отдельным пунктом язык программирования Java и его виртуальную машину, как средство взаимодействия онлайн интерфейсов, сетевого оборудования, мобильных устройств и аппаратного обеспечения устройств, на которых выполняется данное ПО и прочего программного обеспечения, в том числе с WEB-приложениями. Данный язык очень часто применяется для проверки подлинности данных и идентификации пользователя со стороны клиентской машины в банковских программных продуктах и системах обмена защищенной информацией или информацией, требующей подтверждения «электронной подписью».
В свою очередь выбор среды разработки напрямую зависит от выбора языка разработки ПО, чаще всего для языка программирования существует несколько сред разработки, бесплатных коммерческих и условно бесплатных. Так же отличиями различных сред могут быть наличие определенных функций, упрощающих разработку ПО, таких как контроль синтаксиса, наличие средств отладки, различные удобства в виде подсветки кода, наличие средств контроля версий и возможности совместной разработки ПО группой разработчиков. Все эти функции так же могут стать частью списка требований к будущей среде разработки и помогут сделать правильный выбор.
Существуют так же обратные специфические ситуации, когда выбор среды стоит на первом месте перед выбором языка разработки, такое происходит, когда набор всего необходимого функционала, необходимого для реализации конкретного проекта, присутствует только в одной среде разработки, в таком случае выбор языка определяется автоматически если данная среда предназначена для разработки на конкретном языке, либо выбор ведется из поддерживаемых средой языков в случае, если среда является универсальной. К таким средам относятся Visual Studio, NetBeans, IntelliJ IDEA. Дополнительным фактором в выборе среды является конечная платформа для которой создается ПО, так как на одних и тех же языках программирования создаются программные продукты для различных операционных систем, аппаратных платформ и мобильных устройств, а среды разработки, обеспечивающие максимальную совместимость с конечными платформами, могут быть разными.
Таким образом можно сделать заключение о том, что выбор языка программирования, а также среды разработки, требует внимательного изучения требований к конечному продукту, таких его параметров, как надежность, совместимость с аппаратными средствами, сторонним программным обеспечением, наличие возможности к масштабированию, возможность переноса на другие платформы, необходимость в дальнейшем расширении функционала ПО. Так же следует обратить внимание на избыточность средств конкретного языка и среды разработки для решения поставленной задачи, выбирать максимальный по функциям и возможностям инструмент не всегда целесообразно в случаях решения задач низкой и средней сложности, ввиду отсутствия необходимости в большинстве возможностей предоставляемых такой средой или языком, так как изучение сложного инструмента и сложность его использования для разработки может отнимать большую часть времени процесса разработки, поиска ошибок и отладки, значительно увеличивая срок сдачи проекта. Исходя из составленного, на основе данных требований, чек-листа возможно провести сравнительный анализ и выбрать максимально подходящий для реализации проекта язык программирования и среду разработки.