Вы уже знаете, как устроены языки программирования. Пришло время подробнее познакомиться с популярными языками и задачами, которые можно с помощью них решить.
Даня
Наверное, у каждого разработчика есть любимый язык, на котором он все коды пишет? 😏
Айгуль
Всегда есть предпочтения, но разработчики выбирают язык по другим признакам.
Даня
Хм, каким?
Айгуль
Язык должен подходить для задачи.
Разнообразие языков программирования
В пошлых уроках вы узнали, что одну и ту же программу (например, “Hello, World!”) можно написать на любом языке программирования. В таком случае, почему бы не выбрать один ЯП и разрабатывать всё ПО в мире только на нём?
Существует множество причин, почему появляются новые языки программирования.
Например, разработчики могут посчитать, что структура кода недостаточно хороша. В том числе по этой причине был создан язык Kotlin, родственный языку Java. Программы на Kotlin гораздо лаконичнее аналогичных программ на Java.
Например, программа “Hello, World!” выглядит на языке Java так:
Эта же программа на Kotlin потребует значительно меньше знаков:
KOTLIN
funmain() {
println("Hello, World!")
}
Другой причиной появления нового языка программирования является желание разработчиков делать некоторые вещи эффективнее.
Например, некоторые программные языки представляют разработчикам прямой доступ к аппаратному обеспечению (АО) компьютера. Это значит, что разработчики могут получить больше контроля над представлением данных и их хранением в оперативной памяти компьютера. Это позволяет разработчикам писать программы, которые будут, например, использовать меньший объём оперативной памяти или будут выполняться быстрее.
Однако чем больше контроля над аппаратным обеспечением предоставляет разработчикам ЯП, тем сложнее на нём писать и тем больше ошибок разработчики могут совершить в программном коде. Некоторые языки программирования дают разработчикам меньше контроля, но упрощают написание кода. При этом программы на таких языках будут выполняться медленнее.
Например, для разработки компьютерной игры с превосходной графикой, лучшим звуком, продвинутым искусственным интеллектом и многопользовательскими возможностями разработчикам необходимо получить максимальную производительность от АО компьютера. В этом случае разработчики выберут ЯП, который предоставит им максимальный контроль над аппаратным обеспечением, чтобы оптимально настроить конфигурации программы.
И наоборот, если разработчики, например, пишут систему электронного документооборота, которая, как правило, не нуждается в большом количестве ресурсов АО, то они отдадут предпочтение языку программирования, который поможет им написать качественное программное обеспечение с как можно меньшим количеством ошибок.
Некоторые ЯП появились для разработки программ с определёнными функциями. Таким языком программирования является, например, язык R, созданный специально для статистического анализа и представления данных в графической форме.
Существуют и другие причины появления ЯП.
Язык программирования — это не что иное, как инструмент, который разработчики используют для создания программ, и, как и любые инструменты, он должен был максимально подходящим для выполнения задач разработчиков.
Рейтинг языков программирования
Нельзя с точностью сказать, сколько существует языков программирования. Однако есть несколько авторитетных международных индексов востребованности языков и интереса к ним:
TIOBE — основан на данных поисковиков Bing, Google, Yahoo;
Разберём Python и другие популярные языки программирования подробнее.
Обзор языков программирования
Python
Python — это интерпретируемый мультипарадигмальный скриптовый язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
Языком программирования общего назначения (general-purpose programming language) называют ЯП высокого уровня, которые подходят для использования в различных областях применения.
ЯП общего назначения противопоставляются предметно-ориентированным языкам программирования (domain-specific programming language), которые используются в только в определённой области. Например SQL был специально создан для написания запросов к реляционным базам данных.
Скриптовый язык (computer scripting language) или язык сценариев — это, как правило, интерпретируемый язык программирования, который направлен на решение относительно небольших проблем и считается более простым в сравнении с другими типами языков программирования.
Скриптовые языки используются, например, для разработки утилит операционной системы, таких как дисковая утилита и утилита архивирования.
Python был разработан в конце 1980-х Центром математики и информатики (CWI) в Нидерландах. Впервые его представили публике в 1991 году.
Python чаще всего используется для:
веб-разработки;
искусственного интеллекта;
научных вычислений.
Несмотря на то, что Python предназначен для разработки бэкенда системы, существуют фреймворки для фулл-стек (full-stack) разработки, то есть для разработки как бэкенда, так и фронтенда системы. Например, фреймворки Django и Web2Py позволяют разрабатывать пользовательский интерфейс.
Примеры:
часть поискового движка Google;
сеть peer-to-peer BitTorrent;
универсальное описание сцены (Universal Scene Description — USD) компании Pixar;
мессенджер Discord;
сервис для создания и просмотра коротких видео TikTok.
Java
Java — это интерпретируемый мультипарадигмальный язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
Изначально этот язык назывался Oak и был разработан в 1990 году компанией Sun Microsystems, чтобы расширить возможности C++. Этот язык был разработан в соответствии с принципом «напиши один раз — запускай где угодно» (Write Once Run Anywhere — WORA). Этот принцип описывает кроссплатформенность Java.
Кроссплатформенность (cross-platform) — это способность программы выполняться на различных платформах: веб-браузерах, фреймворках, операционных системах, виртуальных машинах и аппаратном обеспечении.
Например, каждый тип процессора работает только с определённым набором инструкций — машинным кодом. Поэтому программы, которые написаны, например, для процессоров Apple M1 или M2, не могут работать на процессорах Intel.
Кроссплатформенность языка Java обусловлена тем, что компилятор Java переводит исходный код в байт-код, который интерпретируется программой под названием «Исполнительная среда Java» (Java Runtime Environment — JRE), или «Виртуальная машина Java» (Java virtual machine — JWM).
JRE представляет собой виртуальный компьютер, который интерпретирует байт-код и переводит его на машинный язык для физического компьютера. Иными словами, разработчику не нужно писать разный исходный код для разных платформ, потому что перевод исходного кода на машинный язык, понятный каждой отдельной платформе, берёт на себя JRE.
Java чаще всего используется для:
веб-разработки;
технологии Интернета вещей (Internet of Things — IoT);
нативных приложений;
компьютерных игр;
нативных мобильных приложений для Android;
научных вычислений;
облачных вычислений (Cloud Computing);
технологий больших данных (Big Data).
Примеры:
пакет прикладных программ для решения задач технических вычислений MATLAB;
набор программных инструментов для работы с большими данными Hadoop;
поисковая система ElasticSearch;
серия компьютерных игр FIFA;
компьютерная игра Minecraft;
онлайн-сервис цифрового распространения компьютерных игр и программ Steam;
мессенджер Telegram.
Kotlin
Kotlin — это интерпретируемый мультипарадигмальный язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
Разработан в 2011 году компанией JetBrains как альтернатива языкам Java и Scala.
Kotlin использует JRE, поэтому программы на Kotlin также являются кроссплатформенными.
Используется так же, как и Java.
Примеры:
облачная платформа Amazon Web Services (AWS);
стриминговый сервис Netflix;
фотохостинг Pinterest;
платформа для изучения языка Duolingo.
JavaScript
JavaScript — это компилируемый мультипарадигмальный язык программирования высокого уровня и общего назначения для разработки фронтенда системы.
JavaScript никак не связан с Java. JavaScript разработан компанией Netscape и вначале назывался LiveScript, в 1995 году был переименован в JavaScript после того, как Netscape получила лицензию от компании Sun Microsystems.
Исходный код на JavaScript часто помещается в файлы HTML. JavaScript помогает управлять различными элементами на странице и делать их более динамичными: прокрутка, вывод на печать даты и времени, создание календаря и другие задачи, которые невозможны в HTML. Также JavaScript может использоваться для создания игр и API.
Благодаря фреймворку Node.js на JavaScript можно также разрабатывать бэкенд системы.
Чаще всего используется для веб-разработки.
Примеры:
мессенджер Discord;
профессиональная социальная сеть LinkedIn;
стриминговый сервис Netflix.
Ruby
Ruby — это интерпретируемый мультипарадигмальный скриптовый язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
Разработан в 1995 году и описан своим создателем Юкихиро Мацумото (Yukihiro Matsumoto) как простой на вид, но очень сложный внутри — прямо как человеческое тело.
Ruby чаще всего используется для:
веб-разработки;
робототехники;
системного администрирования и информационной безопасности;
3D-моделирования.
Примеры:
система управления исходным кодом GitHub;
система контроля версий Git;
площадка для размещения и поиска краткосрочной аренды жилья AirBnB;
крупнейшая в мире база данных о кинематографе Internet Movie Database (IMDb).
C
C — это компилируемый мультипарадигмальный язык программирования среднего уровня (medium-level programming language) и общего назначения для разработки бэкенда системы.
Программный код на языке программирования среднего уровня представляет собой результат промежуточного этапа перевода исходного кода в машинный код — такой код не выполняется процессором напрямую. Языки программирования среднего уровня разработаны, чтобы улучшить инструкции до их выполнения процессором. Например, байт-код Java является языком программирования среднего уровня.
Язык C был разработан 1972 году в компании Bell Labs специально для внедрения операционной системы UNIX. В дальнейшем он поспособствовал созданию многих продвинутых языков программирования, включая C++, Java, C#, JavaScript и Pearl.
Используется для разработки приложений для операционных систем Windows, UNIX и Linux.
Чаще всего используется для:
операционных систем;
драйверов устройств;
системных программ, таких как компиляторы и интерпретаторы;
СУБД;
искусственного интеллекта;
компьютерных игр;
компьютерной графики.
Примеры:
интерпретатор для языка программирования Python;
интерпретатор для пакета программ MATLAB;
компилятор Apple C;
компьютерная игра Doom 3.
C++
C++ — это компилируемый мультипарадигмальный язык программирования среднего уровня и общего назначения для разработки бэкенда системы.
Является расширением C, что позволяет на C++ «писать код в стиле C». В некоторых ситуациях, код может быть написан в любом формате (C или C++). Поэтому C++ является примером гибридного языка программирования.
Первая версия выпущена 1983. Часто рассматривается как объектно-ориентированная версия языка С. Язык С++ предоставляет высокий уровень абстракции для управления большими проектами по разработке, при этом после компиляции производит эффективный код.
C++ используется для создания компьютерных программ и пакетного ПО, таких как игры, офисные пакеты, редакторы графики и видео и операционных систем.
Чаще всего используется для:
операционных систем;
драйверов устройств;
веб-браузеров;
компьютерных игр;
компьютерной графики;
СУБД.
Примеры:
веб-браузер Google Chrome;
веб-браузер Mozilla Firefox;
Microsoft Windows;
macOS;
Blackberry OS;
СУБД MySQL;
пакет приложений Microsoft Office;
растровый графический редактор Adobe Photoshop;
векторный графический редактор Adobe Illustrator;
игровой движок Unreal Engine.
C#
C# (произносится как «си шарп») — это мультипарадигмальный компилируемый язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
С# был разработан в 2000 году компанией Microsoft. В 2003 он стал стандартом ISO. Основан на языках программирования C, C++ и Java.
С# помогает разработчикам создавать XML веб-сервисы и .NET-связанные приложения для Windows и сети интернет.
Чаще всего используется для:
веб-приложений;
приложений для Microsoft Windows;
мобильных приложений;
компьютерных игр;
компьютерной графики;
СУБД;
машинного обучения и искусственного интеллекта.
Примеры:
интегрированная среда разработки Microsoft Visual Studio;
векторный графический редактор CorelDraw;
среда разработки компьютерных игр Unity.
PHP
PHP — это интерпретируемый мультипарадигмальный скриптовый язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
PHP создан в 1995, как скриптовый язык, выполняемый на сервере. PHP обеспечивает связь между веб-ресурсом, сервером и базами данных. После обработки на сервере он превращается в обычный HTML.
Предназначен для создания динамических веб-страниц, которые взаимодействуют с базами данных. Также используется как программный язык общего назначения.
PHP в основном используется при разработке веб-сайтов, связанных с большим объёмами данных — например, чтобы собирать данные с заполненных форм. Также он используется при разработке приложений, чтобы создавать динамический контент страниц.
Чаще всего используется для:
разработки веб-приложений;
выполнения скриптов на сервере;
выполнения скриптов в командной строке.
Примеры:
свободная энциклопедия Wikipedia;
мессенджер Slack;
система управления содержимым WordPress.
Swift
Swift — это компилируемый мультипарадигмальный язык программирования высокого уровня и общего назначения для разработки бэкенда системы.
Был представлен Apple в 2014 году на Worldwide Developers Conference (WWDC). Основан на Objective-C.
Благодаря фреймворку Vapor на Swift можно также разрабатывать фронтенд системы.
Swift, как и Objective-C, используется для разработки нативных приложений для операционных систем iOS, macOS, watchOS, tvOS.
Как системному аналитику использовать знания о ЯП
Системному аналитику следует понимать, какие языки используются для разработки фронтенда и бэкенда системы, чтобы знать, с каким разработчиком обсуждать определённые части ПО.
Например, с JavaScript-разработчиком СА может обсудить особенности реализации логики представления (пользовательского интерфейса), а с Java-разработчиком — бизнес-логику.
Кроме того, так как ЯП имеют специализацию, то есть используются для решения определённых задач, системный аналитик может определить, к какому разработчику ему следует обратиться с вопросами.
Например, если СА необходимо оценить реализуемость функции 3D-моделирования, то он может обратиться к разработчику на языке Ruby.
Бэкенд
Ruby
Ruby
C/C++/C#
C/C++/C#
Swift
Swift
Java
Java
Python
Python
Kotlin
Kotlin
PHP
PHP
Фронтенд
CSS
CSS
HTML
HTML
JavaScript
JavaScript
Правильных ответов: 10, неправильных ответов: 0.
Подведём итоги
Разнообразие языков программирования обусловлено несколькими причинами:
необходимостью совершенствовать структуру кода;
желанием разработчиков решать некоторые задачи эффективнее;
необходимостью разрабатывать программы для решения специализированных и узконаправленных задач.
Наиболее популярными и часто используемыми языками на сегодняшний день являются:
Python — это язык программирования, который используется для разработки бэкенда. Python получил большую популярность при работе с данными, искусственным интеллектом и научными вычислениями.
Java — универсальный язык, который чаще всего используется для разработки бэкенда в веб-разработке. Отличительной особенностью Java является его кроссплатформенность, то есть способность программы выполняться на различных платформах: веб-браузерах, фреймворках, операционных системах, виртуальных машинах и аппаратном обеспечении.
Kotlin — интерпретируемый мультипарадигмальный язык программирования высокого уровня и общего назначения для разработки бэкенда системы. Используется в веб-разработке.
JavaScript — язык, использующийся для разработки фронтенда веб- и мобильных приложений. Во фронтенде веб-приложений язык используется для создания интерактивных страниц, добавления анимации, всплывающих окон, автозаполнения полей.
Ruby — это интерпретируемый мультипарадигмальный скриптовый язык программирования высокого уровня и общего назначения для разработки бэкенда системы. Ruby чаще всего используется для веб-разработки, робототехники, системного администрирования и информационной безопасности, 3D-моделирования.
C — это компилируемый мультипарадигмальный язык программирования среднего уровня и общего назначения для разработки бэкенда системы. Используется для разработки приложений для операционных систем Windows, UNIX и Linux.
С++ — это язык, который используется для разработки бэкенда. Используется для разработки игр, офисных пакетов, графических редакторов и операционных систем.
C# — это язык программирования, созданный инженерами Microsoft. В настоящее время это универсальный язык для разработки бэкенда, на нём пишут игры и различные веб-приложения.
PHP — это интерпретируемый мультипарадигмальный скриптовый язык программирования высокого уровня и общего назначения для разработки бэкенда системы. Используется при разработке веб-сайтов, связанных с большими объёмами данных.
Swift — язык программирования от Apple, при помощи которого разрабатываются приложения для iOS, macOS, watchOS, tvOS.
СА необходимо знать специализацию языков программирования и отличать языки бэкенда и фронтенда.
Draggable item. Ensure your screen reader is not in browse mode and then press space bar to lift.