Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ.(Компьютерные языки программирования).pdf
Добавлен: 28.03.2023
Просмотров: 520
Скачиваний: 6
СОДЕРЖАНИЕ
Глава 1. Компьютерные языки программирования
1.1 Классификация по поддерживаемым методологиям
1.2 Классификация по принадлежности к семействам
1.3 Классификация по ориентации на предметные области
1.4 Классификация по степени абстракции от аппаратуры
1.5 Парадигмы программирования
Глава 2. Объектно-ориентированные языки. Основы объектно-ориентированного программирования
2.5 Объектно-ориентированные языки
Глава 3 Обоснование выбора языка программирования и критерии
Во-вторых, всем тем, кто по роду деятельности так или иначе связан с технологиями. Обоснование выбора языка программирования даст любой разработчик сайта заказчику, любой администратор ресурса компании – копирайтеру. Хотя бы общее знакомство со средой разработки, в которой работают коллеги, позволит быстрее находить общий язык в коллективе и успешнее реализовывать различные проекты.
При выборе языка программирования нужно учитывать множество факторов. Например, если при разработке динамической Web-страницы вы в качестве наилучшего варианта выберите JavaServer Pages (JSP)/сервлеты, другие могут предпочесть PHP или аналогичный язык сценариев. Не существует какого-то одного языка, который является наилучшим выбором. Можно отдать предпочтение определенным факторам, таким как производительность и безопасность корпоративных приложений, по сравнению с другими факторами, такими как количество строк кода. Любое решение сопряжено с какими-то компромиссами.
После получения проекта или задания нужно выполнить подготовительную работу до решения поставленной задачи. Зачастую выбор языка не рассматривается как часть этой подготовительной работы.
При выборе языка для персонального проекта можно положиться на свои личные предпочтения. Здесь может оказаться важным количество строк кода; очевидным выбором будет язык, позволяющий выполнить задачу при помощи 10 строк кода вместо 20. Сначала хочется получить решение, а потом позаботиться об удобочитаемости или производительности.
В проектах для крупных организаций применяется другой сценарий. Для решения конкретной проблемы группы разработчиков создают компоненты, взаимодействующие и взаимосвязанные между собой. На выбор языка могут повлиять такие факторы, как переносимость программы на другую платформу или доступность ресурсов [9].
Правильный выбор языка программирования поможет создать компактное, простое в отладке, расширении, документировании и исправлении ошибок решение. При выборе языка программирования учитываются следующие факторы:
- Целевая платформа.
- Гибкость языка.
- Время исполнения проекта.
- Производительность.
- Поддержка и сообщество.
Выбор языка программирования, особенно первого – задача не из легких. Но будет очень сложно, если не знать английского хотя бы на базовом (школьном) уровне. Конечно, какие-то инструменты русифицируются, другие – переводят на русский энтузиасты, но факт остается фактом.
Да и в дальнейшем найти работу со знанием иностранного языка будет куда проще. Тут уж выгодно учить английским всем:
•наемным работникам, которые смогут устроиться в корпорации с мировым именем;
•фрилансерам, которые смогут работать на англоязычных биржах, где заказов, как правило, больше и оплата выше.
3.1 Критерии выбора языка программирования
Понадобятся сотни часов практики, прежде чем удастся стать сколько-нибудь компетентным в своем первом языке программирования, так что бездумно учить что попало не стоит. Выбор языка программирования зависит от среды разработки, в которой хочется работать, личных предпочтений, перспектив и много другого.
Сперва нужно определиться с целями. Например, на какой платформе (в какой среде) хочется работать: веб, мобильные устройства, игры и 3Д-графика или крупные корпорации.
В веб-разработке нужно выбирать из нескольких сфер ответственности: front-end, back-end, full-stack. Front-end разработчики отвечают за скорость загрузки сайта и правильную работу кода, back-end - написание серверного кода, а full-stack специалисты могут в одиночку выполнить все требования заказчика. Full-stack разработчики сегодня являются самыми востребованными на рынке труда.
Три кита Front-end разработчика – это JavaScript, HTML и CSS. Кроме того, нужно ориентироваться в последних интернет-тенденциях и уметь их применять в повседневной работе. РНР – это базовые знания для back-end специалистов. Это не единственный инструмент, но основа всей back-end разработки. В качестве второго языка нужно учить Ruby или Python. Еще пригодится опыт работы с базами данных, азы JavaScript и SQL. Кроме самих языков программирования нужно изучить все прилагающиеся надстройки.
Для разработки мобильных приложений используются JavaScript для Андроид и Objective-C для iOS. Полезно посетить официальные ресурсы для разработчиков, а в случае работы с iOS еще и познакомиться с интерфейсом и функционалом Xcode – бесплатной среды для создания приложений. Для игр и 3Д-анимации нужен С++.
Тем, кто в перспективе хочет устроиться в одну из высокотехнологичных корпораций и больше не беспокоиться о благополучии завтрашнего дня, хорошо выполняя свои обязанности, нужно исходить из выбора этой самой корпорации. Windows работают с C#, Google и Фейсбук – с Python, а Apple – это Objective-C.
Выбор языка программирования должен основываться на следующих факторах:
1.Востребованность на рынке труда.
2.Легкость изучения.
3.Долгосрочные перспективы.
4.Какие проекты можно разработать на этом языке (выбор языка и среды программирования).
Если с последним пунктом – платформы и подходящие языки программирования кратко перечислены выше – все более или менее понятно, то как быть с остальными пунктами? Indeed.com – ведущий сайт поиска работы в мире – время от времени публикует статистические данные по вакансиям (соотношение предложений и соискателей). Выбор языка программирования хорошо бы делать, основываясь именно на этих данных, но одной только сухой статистикой тоже руководствоваться не стоит [6].
Итак, на одно место разработчика Python, Java, Objective-C или РНР приходится 2,7 специалиста. Если взять данные по JavaScript, то видно, что это определенно рынок продавца – на одно место приходится всего 0,6 программиста. Кроме того, JavaScript развивается куда быстрее, чем любой другой язык, что открывает прекрасные долгосрочные перспективы.
Обоснование выбора языка программирования C ++, С#, Objective-C, РНР или любого другого строится и на легкости изучения. Новичок, особенно тот, который учит язык по книгам или курсам, вряд ли справится со сложными С++ или Java. Сравнительно легко учатся Python, JavaScript или Ruby. Ruby и Python читабельны и отличаются одними из самых активных сообществ.
В том случае, если программирование представляется очень сложной задачей, начать стоит с чего-то более легкого, например, HTML или CSS. HTML не является языком программирования в полном понимании, скорее это язык разметки веб-страниц. CSS – это более современный «помощник» HTML, который позволяет делать страницы более приятными глазу, играть со шрифтами, добавлять дизайнерские элементы оформления сайтов и так далее.
Любой, кто когда-то писал статьи на заказ, наверняка уже сталкивался с HTML, а тем, кто пытался вести свой блог, возможно, знаком и CSS. Да и любой курс основ программирования начинается именно с этих двух элементов, так что знания азов лишними не будут. Учить можно по книгам:
1.Б.Лоурсон, Р.Шарп «Изучаем HTML 5».
2.К.Шмитт «CSS. Рецепты программирования».
Раньше с парой умных книг по CSS и HTML можно было уже претендовать на какую-то должность, сейчас – это плацдарм, с которого нужно двигаться дальше.
3.2 Разработка веб-приложений
Выбор языка программирования PHP или JavaScript – это для веб-разработчиков. Чтобы делать интернет-ресурсы красивее, интереснее и функциональнее понадобится JavaScript. С помощью него можно сделать довольно много очень разных вещей в пользовательском интерфейсе [12].
Наилучшее обоснование выбора языка программирования PHP - именно веб-разработка. Если речь идет о серверной части, подойдут PHP, Python, Ruby и тот же JavaScript. Выбор языка программирования С # - тоже хорошая идея. На С# работают в Microsoft, Python похож на Лего, а Ruby– на пластилин.
Дизайнеры – творческие люди, которые могут считать себя далекими от точных наук. Но писать код – это как писать картину, так что сомнения, касательно того стоит ли вообще учить программирование, нужно отбросить сразу. Есть мнение, что лучше быть первоклассным дизайнером, чем второстепенным программистом, но дизайнеру стоит знать JavaScript хотя бы для воплощения своих идей. Еще подойдут относительно простые Python или Ruby.
Приложения на "Андроид", как правило, разрабатываются в Java. Работать можно на любой операционной системе – распространенность "Андроид"-смартфонов сделала разработку приложений на них очень популярной. Среду для разработки можно установить и на Windows, и на iOS.
Что касается Apple, так тут разработка куда более требовательна к инструментам. Нужно учить Objective-C, комплект средств разработки и инструкцию разработчика от Apple. Работать можно только с «яблочных» устройств – Mac с версией операционной системы от 10.7 и выше.
Такое стремление со стороны подрастающего поколения похвально. Это открывает детям новые возможности и просто невероятные способы самовыражения. Ребенок вполне в состоянии самостоятельно создать короткий мультфильм или незамысловатую игру. Программирование дается детям не сложнее, чем иностранные языки, а еще это открывает больше перспектив уже в подростковом возрасте.
Начать можно со Scratch. Этот сервис ориентирован на детей от 8 лет и позволит создавать мультфильмы, игры, анимацию. Среда распространяется бесплатно. Скорее всего, ребенку даже не понадобится помощь родителей, разобраться в сервисе довольно просто [13].
Кроме языка программирования и английского, нужно знать кое-что еще. Тут все зависит от выбранного направления. Нужно учить фреймворки, алгоритмы, базы и структуры данных, репозитории коды, понимать как работает техника, изучать физику и биологию для создания робов и знать еще много чего другого. Сначала лучше не бросаться в омут с головой, учиться постепенно, читать статьи на профильных ресурсах и понемногу разбираться с новыми терминами.
Самым важным фактором является платформа, на которой программа будет работать. Рассмотрим для примера Java™ и C. Если программа написана на C и должна работать на машинах с Windows® и Linux®, потребуются компиляторы для платформ и два разных исполняемых файла. В случае с Java сгенерированного байт-кода будет достаточно для выполнения программы на любом компьютере, на котором установлена виртуальная Java-машина.
Аналогичный аргумент применим и для Web-сайтов. Они должны выглядеть и работать одинаково во всех браузерах. Использование тегов CSS3 и HTML5 без проверки совместимости с браузерами приведет к разному отображению и поведению сайта в разных браузерах.
Гибкость языка определяется тем, насколько легко можно добавлять к существующей программе новые функциональные возможности. Это может быть добавление нового набора функций или использование существующей библиотеки для добавления новой функциональности. Рассмотрите следующие вопросы, связанные с гибкостью:
Можно ли использовать новую функциональность без подключения новой библиотеки?
Если нет, доступна ли эта функциональность в библиотеке языка?
Если эта функциональность не встроена в язык и не доступна в библиотеке, какие усилия нужно приложить для ее создания с нуля?
До принятия решения необходимо знать, как спроектирована программа, и какие функциональные возможности оставлены на потом.
Хотя сравнение этих языков технически некорректно, рассмотрим Perl и Python. Perl имеет встроенную поддержку регулярных выражений. В Python необходимо импортировать модуль re из стандартной библиотеки.
Время исполнения – это время, необходимое для создания рабочей версии программы, т.е. версии, готовой для работы в производственных условиях и выполняющей предусмотренные функции. При расчете этого времени необходимо учитывать не только логику управления, но и логику представления.
Время исполнения проекта очень зависит от размера кода. Теоретически, чем легче изучить язык и чем меньше объем кода, тем меньше это время.
Например, сайт управления контентом на PHP-сценариях можно разработать за несколько дней, в то время как создание кода сервлетов может занять несколько месяцев, при условии, что вы начали изучать оба языка с нуля.
Каждая программа и платформа имеет определенный предел производительности, и на эту производительность влияет используемый при разработке язык. Существует множество способов сравнения скорости работы в одинаковой среде программ, написанных на разных языках. Можно использовать различные эталонные тесты, хотя их результаты не являются конкретной оценкой производительности какого бы то ни было языка.
Рассмотрим два варианта Web-приложения, написанных на Java и на Python. На основании данных тестирования можно прийти к заключению, что в одинаковой среде приложение, написанное на Java, должно работать быстрее, чем приложение, написанное на Python. А как насчет самой среды? Если средой является одноядерная x86 Ubuntu Intel Q6600, это справедливо, поскольку вычислительная мощность ограничена. А если взять Web-приложение, работающее в облачной среде на Google App Engine? Такое приложение может использовать практически неограниченную процессорную мощность, и обе программы возвратят результаты почти за одно и то же время. Теперь основным фактором выбора будет количество строк кода и удобство обслуживания.