Файл: Техникоэкономический колледж при нао карагандинский индустриальный унивеситет.docx

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

Категория: Не указан

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

Добавлен: 05.05.2024

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ГЛАВА 2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell – языки, которые, по моему мнению, можно отнести ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.

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

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

Все три указанные ниши языков постараемся детально рассмотреть в данной главе. В поиске информации нам помог ресурс Stackoverflow. Итак, для начала представим топ-10 языков программирования за 2017 год (рисунок 1).



Рисунок 1 Топ-10 языков программирования за 2017 год

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

2.1. Javascript


Это один из самых популярных языков программирования. Он находится на первом месте уже несколько лет подряд. Это самый кроссплатформенный язык программирования, который позволяет разрабатывать desktop, веб и мобильные приложения. Javascript имеет много удобных и гибких библиотек. Среди самых популярных стоит отметить React.js. Angular.js и Vue.js. Последняя библиотеке только набирает популярность. Vue имеет хорошую производительность и одна из самых легких для изучения. Тем не менее, ей будет тяжело выйти на столько высокий уровень популярности как другие библиотеки. Рынок уже поделен между React и Angular. 

Библиотека React была разработана компанией Facebook. Она является одной из самых популярных на основе javascript. React позволяет разрабатывать мобильные приложения, сайты и SPA (single page application). React существенно легче в изучении по сравнению с Angular 2.

Angular разработан компанией Google и в последнее время терпит много трансформаций. Сначала все использовал Angular 1, несколько лет назад вышел Angular 2, который более производительней, удобней и быстрее. Сейчас Google разрабатывает Angular 4. Он должен заменить Angular 2 и стать лидером среди javascript библиотек. Посмотрим, что с этого выйдет. В целом, Angular сложный для новичков и хорошо подходи для разработки веб приложения для крупных компаний. 

Кроме приведенных выше библиотек очень популярный node.js. Он позволяет разрабатывать серверную часть на Javascript. Это лучшее решение если вы хотите разработать back-end часть с использованием js. Как видите, javascript универсальный язык программирования. Имеет хорошую гибкость и производительность. Именно это и делает его одним из самых популярных в нашем списке. Я думаю в дальнейшем этот тренд сохранит свою динамику. 

Еще один безусловный плюс JS – его мультипарадигменность. Это значит, что его не нужно компилировать под платформу, на которой ведется разработка. Не нужно подгонять костюмчик, он и так хорошо сидит.

Преимущества JavaScript:

  1. Ни один современный браузер не обходится без поддержки JavaScript.

  2. С использованием написанных на JavaScript плагинов и скриптов справится даже не специалист.

  3. Полезные функциональные настройки.

  4. Постоянно совершенствующийся язык – сейчас разрабатывается бета-вариация проекта, JavaScript2.

  5. Взаимодействие с приложением может осуществляется даже через текстовые редакторы – Microsoft Office и Open Office.

  6. Перспектива использования языка в процессе обучения программированию и информатике.


Недостатки JavaScript:

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

  2. Множество мелких раздражающих ошибок на каждом этапе работы. Большая часть из них легко исправляется, но их наличие позволяет считать этот язык менее профессиональным, сравнительно с другими.

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

  4. 2.2. SQL

Язык структурированных запросов. SQL – формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных. SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. Каждое предложение SQL – это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе.

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

А с помощью языка SQL разработчик приложений работает с базой данных. Записывает или выводит данные из базы данных. Делает различные манипуляции с ней. Таким образом, язык SQL является тем связующим звеном, которое обеспечивает взаимодействие приложения с базой данных и хранящейся в ней информацией.

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


Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

Преимущества:

  1. Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД. Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

  2. Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах.

  3. Декларативность. С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса. Однако не стоит думать, что это полностью универсальный принцип - программист описывает набор данных для выборки или модификации, однако ему при этом полезно представлять, как СУБД будет разбирать текст его запроса. Чем сложнее сконструирован запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных.

Недостатки:

  1. Несоответствие реляционной модели данных. Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие проблемы SQL: повторяющиеся строки, неопределённые значения, явное указание порядка колонок слева направо, колонки без имени и дублирующиеся имена колонок, отсутствие поддержки свойства «=», использование указателей, высокая избыточность.

  2. Сложность. Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.

  3. Отступления от стандартов. Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

  4. Сложность работы с иерархическими структурами. Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения. В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005[16].


2.3. Java

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

Изначально язык назывался Oak («Дуб») и использовался для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения (из Wiki.).

Данная платформа представляет собой целый комплекс технологий, предназначенных для серверов, которые исполняют Java-приложения на клиентских компьютерах. Популярные сервисы в Сети используют в своей основе концепцию Java Enterprise Edition.

Java очень популярный в финансовой и банковской индустрии. В первую очередь благодаря своей скорости работы и уровня безопасности. Java разработчики очень ценятся на рынке труда из-за дефицита. Этот язык программирования достаточно сложный для изучения и для новичков не всегда дается легко. Кроме всего прочего, приложения Android разрабатываются именно на Java. Это основная причина столь значительной популярности этого языка. По статистике Google Trends, динамика идет вниз.  

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

Еще одним плюсом Java является возможность создавать модульные программы, которые используются снова и снова. В общем, это язык, который подходит практически для любых задач, так что без работы вы точно не останетесь. Да и будем честными, это не такой уж и сложный язык с огромным коммьюнити, массой учебного материала в сети и отличной поддержкой.

Особенности хостинга для Java: унифицированный доступ к базам данных; большое количество полезных стандартных массивов, стеков и списков; множество фильтров, настройка ввода и вывода; простота в разработке многопоточных приложений; реализовано автоматичное управление памяттю; категории для работы с запросами и ответами HTTP и многое другое[17].

Достоинства: наибольшая среди всех языков программирования степень переносимости программ; мощные стандартные библиотеки; встроенная поддержка работы в сетях (как локальных, так и Internet/Intranet).

Недостатки: низкое, в сравнении с другими языками, быстродействие, повышенные требования к объему оперативной памяти (ОП); большой объем стандартных библиотек и технологий создает сложности в изучении языка; постоянное развитие языка вызывает наличие как устаревших, так и новых средств, имеющих одно и то же функциональное назначение