Swift или Python: плюсы и минусы.
Практический курс для тех, кто хочет научиться основам программирования на Swift с полного нуля, написать код для реальных проектов и получить первые заказы.
Сегодня предлагаем вашему вниманию перевод статьи, в которой сравниваются два набирающих популярность языка программирования. Всем, кто хочет освоить разработку, но не знает с какого языка начать.
Популярность того или иного языка программирования меняется каждый год. Некоторые из них «выходят их моды», в то время как другие стремительно растут. Последние несколько лет можно выделить 2 крупных языка, которые растут как на дрожжах: Swift и Python.
Согласно недавней статистике PYPL, Python занял первое место по популярности среди языков программирования. Что же можно сказать про Swift? Этот довольно новый язык от Apple скорее всего будет следующим на пьедестале. Swift был выпущен в 2014 году и умудрился занять 10-е место в классификации RedMonk’s 2018 всего за 5 лет. Неплохо для новичка, не находите?
В этой статье мы постараемся разобраться, почему оба этих языка так быстро набирают популярность. А так же поможем с ответом на вопрос: «Если Swift и Python такие популярные, то какой язык выбрать для изучения?»
Python: за и против
Впервые динамический высокоуровневый язык программирования Python был выпущен в 1991 году. Сначала его использовали в основном для написания скриптов и прототипов приложений, но со временем область его применения расширилась. Теперь его используют в том числе и для машинного обучения, обработки данных и разработки серверной части приложений.
Популярность Python и сферы применения
Перед тем как перейти к за и против, давайте взглянем на статистику. Не только PYPL заметил необычный рост популярности Python. В 2017 году Stack Overflow так же объявил Python самым быстрорастущим языком программирования основываясь на данных от Stack Overflow Trends.
Число компаний, использующих этот язык тоже резко возросло. Среди них: Quora, Netflix, Dropbox, Reddit, Facebook, Spotify, Instagram и многие другие.
Популярность Python можно объяснить широкой сферой применения этого языка. Опрос разработчиков Python в 2017 году показал, что его используют прежде всего при анализе данных, затем идет веб разработка, машинное обучение и системная инженерия. Меньше всего он используется в образовательных целях, тестировании ПО и прототипировании.
Основные преимущества Python
Теперь давайте обсудим причины, по которым многие разработчики переходят на Python. Мы уже поговорили о том, что у него очень обширная сфера применения, теперь пора ознакомиться и с другими преимуществами.
Легкий
Главная особенность- это простая структура кода и его удобочитаемость. Python точно не относится к пространным многословным языкам, но выглядит очень похожим на английский. Тем не менее его удобно читать и использовать. Что еще важнее, язык подходит новичкам в программировании. Руководство по стилю оформления кода PEP8 подробно описывает как лучше писать код, чтобы он был понятен другим программистам не зависимо от их уровня разработки.
Многопарадигмальный
Python одновременно является процедурным и объектно-ориентированным языком. Поддержка процедурной парадигмы позволяет переиспользовать код, в то время как объектно-ориентированная методология предоставляет возможность множественного наследования и инкапсуляции данных и функций в одну.
Имеет открытый исходный код
Python имеет открытый исходный код, так что вы можете скачивать и изменять его. Большое сообщество единомышленников постоянно работает над его улучшением.
Интеграция с другими языками
Python это расширяемый и встраиваемый язык, его легко можно интегрировать с C, C++ и Java приложениями.
Мобильный (переносимый)
Python совместим с различными платформами, поэтому нет необходимости менять код, если вы хотите добавить поддержку другой платформы.
Имеет много библиотек
Python достаточно старый язык, поэтому было написано множество библиотек и фреймфорков для различных целей: от веб разработки до машинного обучения. Стандартная библиотека уже предоставляет довольно широкий спектр возможностей. Но помимо этого существуют такие библиотеки как NumPy, Pandas, Plotly, Pipenv и другие. Среди самых популярных: Django, Flask, CherryPy и PyTorch.
Недостатки Python
Для того, чтобы принять взвешенное решение, нужно знать так же и недостатки Python. Даже не смотря на длинную историю этого языка, у него все еще есть слабые стороны.
Мобильная разработка
Если вы хотите стать мобильным разработчиком, то выбирать Python не лучшее решение. Но если вы готовы к приключениям, то можете попробовать освоить кросс-платформенный питоновский фреймворк Kivy для разработки мобильных приложений.
Ограничения по дизайну
В Python имеются некоторые ограничения по дизайну. Это динамически типизированный язык, который использует неявную типизацию, то есть автоматически определяет тип переменной. Иногда автоматика допускает ошибки. Да, вы можете не присваивать переменной тип, но это может вызвать ошибки при выполнении программы.
Большое потребление памяти
Python характеризуется тем, что потребляет много памяти, поэтому его лучше не использовать для трудоёмких задач.
Swift: за и против
Swift довольно молодой язык программирования. Его представили на конференции WWDC в 2014 году. Модный, быстрый, интерактивный – вот основные фишки языка по заявлению Apple. Создатель языка Chris Lattner заявил, что созданию Swift способствовали такие языки, как Ruby, C# частично Python (поэтому между ними можно найти много общего).
Сферы применения и популярность
В июле 2018 Swift достиг 11-й позиции в индексе Tiobe “Топ 50 языков программирования”. В выше упомянутом рейтинге PYPL, Swift располагается на 9-м месте. Логично, что раз Swift был придуман Apple, то и используется он в первую очередь для создания приложений на iOS, ПО для MacOS, watchOS и даже tvOS. Hubspot app, Lyft, Pandora, OpenTable, Airbnb, LinkedIn, Yahoo Weather и Khan Academy, это небольшой список приложений, написанных на Swift
Swift продолжает развиваться. На конференции WWDC 2017 Apple представила Swift 4. В этом году компания представила Swift 4.2 с несколькими улучшениями. Так же Apple анонсировала Swift 5, который будет выпущен в 2019 году. Это означает то, что популярность языка будет только расти.
Главные преимущества Swift
Apple прикладывает все усилия, чтобы сделать легкий и мощный язык программирования для разработчиков. Поэтому список достоинств довольно велик.
Легкий
Apple любит минимализм. Поэтому в Swift простой синтаксис, его легко читать и легко писать на нем. Swift легко понимают разработчики, которые знают другие языки. Этот факт является определяющим при разработке приложения на несколько платформ.
Безопасный
Ещё одна сильная сторона Swift, это его функциональная безопасность. Этот статически типизированный язык позволяет программистам быстро находить ошибки еще до компиляции и устранять их. Более того, с помощью указателя nil разработчики могут избавиться от ошибок компиляции, вызванных нулевыми ссылками (null).
Имеет автоматическое управление памятью
Автоматический подсчет ссылок следит и управляет памятью приложения самостоятельно. Теперь разработчикам не надо тратить время, чтобы делать это самостоятельно. В результате сокращается время на создание приложения.
Имеет открытый исходный код
В Swift появился открытый исходный код в 2015. Это событие сильно повлияло на популярность языка. В 2015 он стал любимым языком пользователей Github, а в 2016-м занял второе место.
Имеет большой потенциал
Благодаря тому, что теперь Swift имеет открытый исходный код, Apple сделала шаг к тому чтобы он стал кроссплатформенный. Теперь он доступен на Linux. Apple так же обещает, что он будет доступен и на Windows. Технический гигант IBM так же сильно поспособствовал развитию языка. Компания представила тестовую среду Swift (Sandbox) и сделала доступным в облаке. Таким образом серверная часть Swift может быть интегрирована с большим числом серверных инструментов.
Функционально совместимый
Благодаря интеграции с библиотекой исполнения программ Objective-C (Objective-C Runtime Library) можно писать программы на Swift, C, Objective-C, и C++ одновременно.
Недостатки Swift
У Swift есть несколько нерешенных проблем из-за того, что язык довольно молодой. Apple работает в поте лица над их устранением, а так же над тем, чтобы сделать Swift многофункциональным. Но все же мы нашли несколько недостатков:
Ограниченный кадровый потенциал
Swift новичок среди языков, в связи с этим талантливых разработчиков пока не так много. Но этот недостаток легко превратить в достоинство тем, кто хочет стать Swift разработчиком. Потребность в них только увеличивается, а конкуренция все еще не большая.
Малое количество библиотек
В Swift все еще довольно мало встроенных функций, которые бы работали одинаково хорошо во всех версиях. Большинство библиотек и фреймворков разработаны для более ранних версий языка и совершенно бесполезны в новых.
Нестабильность
Многие разработчики жалуются на одну и ту же проблему. Из-за изменений, представленных в новой версии языка, Swift ведет себя очень нестабильно. Это значит, что если разработчик хочет перейти на новую версию языка — ему нужно будет переписать код. Правда, эта проблема была частично решена с помощью Swift Migration Tool в XCode, что сделало миграцию на 4-ю версию языка довольно простой задачей.
Python или Swift: Какой язык выбрать в 2019 году?
Теперь, когда вы ознакомились с сильными и слабыми сторонами обеих языков, пришло время выбирать, какой же из них подойдет именно вам?
Что же общего у Python и Swift
Может показаться, что Swift и Python абсолютно разные языки, но тем не менее у них есть много общего. Прежде всего, это простота в использовании. У обоих простой синтаксис и схожесть с английским языком. Каждый программист знает, как грустно бывает, когда IDE показывает “Пропущена «;»” после долгой компиляции. У вас не будет проблем с этим в Swift или Python.
В обоих языках среда программирования RELP, которая способствует быстрому нахождению и исправлению ошибок. Они оба являются многопарадигмальными. Более того, у каждого есть дополнительная среда для более легкого изучения языка (Python IDLE для Python и The Playground для Swift). А также можно найти прекрасную документацию для Swift от Apple, доступную в iBooks.
Итак, мы разобрались, что Swift и Python используются для разных целей. Swift прекрасно подходит для разработки ПО для Apple, а Python имеет широкий спектр применения, но в первую очередь используется для бэкэнд разработки.
Еще одно различие – в производительности. Как понятно из названия, Swift довольно быстр, Apple заявляет, что он в 8.4 раза быстрее, чем Python.
Когда разработчик выбирает язык программирования чтобы начать обучение, он так же принимает во внимание и востребованность на рынке труда. На сегодняшний момент можно найти более 6000 вакансий разработчиков на Swift и 58000 на Python. Средняя зарплата разработчика Python примерно $114,492 в год, Swift — $111,158 в год.
В качестве вывода можно сказать, что выбор языка программирования напрямую зависит от ваших целей. Если вы без ума от мобильной разработки, и операционной системы Apple, то безусловно стоит выбрать Swift. Python хорош в случае, если вы хотите разрабатывать свой собственный искусственный интеллект, бэкэнд или создать прототип.
Какой язык программирования мне выбрать?


Евгений Картавец Программный директор SkillFactory.
При выборе профессии лучше всего ориентироваться на популярность, востребованность языка среди работодателей, сложность изучения и, конечно же, отрасли. Некоторые языки и наборы языков свойственны даже вполне определенным профессиям: например, Android-разработчику необходимы Java и Kotlin, а чтобы написать приложение на iOS, вам понадобится Swift. Вместе с программным директором SkillFactory Евгением Картавцом разбираем самые популярные языки программирования.

Освойте профессию
«Fullstack-разработчик на Python»
Как оценивают популярность языка программирования?
Почти всем известен индекс TIOBE, компании по разработке софта. Этот рейтинг основан на проценте запросов в поисковиках конкретного языка от запросов по всем языкам и ежемесячно составляется на основе данных из Google, Baidu, Wikipedia, Amazon и Ebay (внимание: Яндекс тут не учитывается). Он не показывает, какой язык лучше, а скорее помогает программистам проверить, насколько актуальные языки они используют.
Профессия / 12 месяцев
Fullstack-разработчик на Python
Создавайте веб-проекты самостоятельно
3 742 ₽/мес 7 483 ₽/мес

Индекс TIOBE — не единственный в своем роде. Вот еще несколько рейтингов, на которые можно опираться: PYPL (Popularity of Programming Language index) — рейтинг GitHub оценивает по Google Trends, к каким языкам чаще всего ищут уроки; Stack Overflow — сервис вопросов и ответов по теме программирования проводит масштабные исследования рынка и опросы разработчиков IEEE — Институт инженеров электротехники и электроники ежегодно публикует на своем сайте рейтинг языков программирования, основанный на 11 параметрах и восьми источниках, включающих соцсети и GitHub. Подробнее о популярности языков и причинах их роста мы писали на Habr. Если вы планируете изучать язык, чтобы потом найти работу с его применением, мы советуем оценивать его популярность по количеству вакансий в вашем городе. Заходите на hh.ru, набираете в поиске Python или C++, и видите количество вакансий с упоминанием языка. Пройдите наш тест и узнайте, какой язык подойдет вам лучше всего.
Какие языки проще, а какие сложнее?
Трудно объективно определить, какой язык проще, а какой сложнее, потому что это зависит не только от его особенностей, но и от вашего бэкграунда, желания разбираться в документации и т.д. Относительно универсальный критерий сложности — близость языка к программированию на машинном коде. Чем ближе к нему язык, тем более он низкоуровневый. Высокоуровневые языки, наоборот, лучше адаптированы для использования программистом. У высокоуровневых языков есть крупные стандартные библиотеки, а значит, большое количество разработанных доступных решений. Низкоуровневые языки предполагают работу с процессором, памятью и другими аппаратными ресурсами: можно контролировать всю изнанку, но из-за этого легче запутаться в синтаксисе. Впрочем, и такая классификация условна: на тему того, какой язык отнести к высокому, а какой к низкому уровню, ведутся споры.
В целом, сложность языка — довольно субъективный вопрос. Для изучения с нуля лучше всего подходят Python и JavaScript. PHP, Swift и Kotlin — немного сложнее. Java и C# — еще сложнее. C++, на мой взгляд, самый сложный. Go — достаточно простой язык, но у него сложная сфера применения, поэтому проще всего на него переходить с другого языка

Евгений Картавец,
ex-программный директор Skillfactory
Python

Сложность: подходит для неподготовленного новичка. Обилие готовых библиотек (многие из которых предназначены для работы с big data) и фреймворков, а также простой синтаксис позволяют практически сразу начать программировать. Профессии: Fullstack-разработчик / Data scientist / Data engineer / Data analyst. Продукты: Sims 4, YouTube, Instagram, Dropbox, Bittorrent. Преимущество Python — в его многогранности и широком применении. Его можно использовать как в веб-разработке (фреймворк Django, например, достаточно прост для того, чтобы новичок быстро разобрался в основах его использования) и работе с данными, так и в написании скриптов. Вы можете заниматься анализом данных для банковских систем, автоматизацией простых задач, разрабатывать приложения, совершенствовать голосовые помощники или обучать нейросеть (для этого, кстати, есть веб-сервисы типа Google Colaboratory, где можно бесплатно пользоваться мощным процессором TPU). Python сейчас все активнее набирает популярность среди программистов. Из-за простоты кода его часто используют в командных проектах, что облегчает разработчикам жизнь: можно не тратить время на разбор чужого материала.
PHP

Сложность: по синтаксису PHP близок к С и Java. Но не стоит пугаться: на самом деле это относительно легкий, гибкий и доступный новичку язык. При базовых представлениях об HTML и CSS можно сразу написать простой одностраничный сайт. Продукты: WordPress, Facebook, VK, Wikipedia. Профессии: Веб-разработчик PHP — серверный язык веб-разработок, он подходит для создания одностраничных или комплексных высоконагруженных сайтов. Он «оживляет» статичные HTML-страницы, поэтому на нем оптимально разрабатывать динамические сайты вроде соцсетей, форумов, интернет-магазинов и блогов. Мощный и высокопроизводительный PHP подходит и для проектирования баз данных тех же магазинов. Его можно использовать на многих операционных системах: язык ладит с Windows, Unix, Linux. При работе с ним нужно быть крайне внимательным, потому что из-за гибкости языка легко ошибиться в коде, а найти проблему потом бывает непросто. У PHP бесчисленное количество сообществ. На официальном сайте структурировали основные информационные рассылки. Почти в любой соцсети можно оперативно найти живое сообщество и обратиться за помощью.

Станьте веб-разработчиком и найдите стабильную работу на удаленке
Kotlin

Сложность: поскольку одной из целей создания языка было упростить Java, синтаксис Kotlin — интуитивно понятный и лаконичный. Профессии: Android-разработчик / Backend-разработчик. Продукты: Uber, Pinterest, Basecamp. Российская компания JetBrains представила язык Kotlin в 2016 году как альтернативу Java. Благодаря официальной поддержке Google он стал языком разработки приложений на Android. При этом он совместим с Java: код обоих языков можно использовать в одном и том же проекте. Помимо разработки Android, Kotlin используют и в серверных, и в клиентских приложениях для веб-разработок и backend. Сообщество Kotlin живое, хоть и немногочисленное, многие общаются на форумах или в Slack. Язык развивается не очень быстро, несмотря на открытость исходного кода.
Swift

Сложность: философия языка — простота и производительность, так что у него понятный, логичный и удобный синтаксис. В нем легко разбираться, если у вас уже есть база из высокоуровневых языков, но и без нее все не так сложно. Профессии: iOS-разработчик Продукты: Safari, Procreate, Kickstarter, VSCO На Swift создают продукты для экосистемы Apple: приложения для iOS, Mac, Apple Watch, Apple TV. В этом его преимущество и недостаток. С одной стороны, разработчики на iOS востребованы, их немного, поэтому можно будет быстро найти работу. С другой стороны, приложения сильно завязаны на своей экосистеме, и на других платформах они работают с трудом, на костылях. При этом делать функциональные и красивые приложения на Swift — проще. Разрабатывая их, вы будете сталкиваться и с UI-дизайном, и с дополненной реальностью. Swift многое взял из языка Objective-C, поэтому не лишним будет знакомство и с ним, чтобы в дальнейшем развиваться в направлении разработок для iOS. Обычно продукты Apple закрыты для сообщества, но у Swift открытый исходный код, что полезно как языку, так и комьюнити.
Go

Сложность: синтаксис Golang минимален, а широкая стандартная библиотека позволяет быстро разобраться в управлении командами. Профессии: Backend-разработчик Продукты: YouTube, архитектура Ozon, backend Wildberries Go разработали инженеры Google. Это (так же, как Swift и Kotlin) — компилируемый язык, который выступает альтернативой C++ для высоконагруженных приложений. На нем можно писать сетевые приложения на промышленном уровне, поэтому на Go все чаще обращают внимание крупные ритейлеры (вроде Ozon). По сравнению с остальными языками, этот — очень молодой (2009 год), но у него достаточно быстро растущее комьюнити, которое взаимодействует по Google-рассылке.
JavaScript

Сложность: можно выучить JavaScript быстро, главное — отрабатывать теорию на практике в тренажерах (подборка хороших интерактивов и обучалок). Уже за полгода можно освоить документацию, поскольку логика у него простая и гибкая. Язык мощный, а его инструменты просты и доступны Профессии: Frontend-разработчик / Fullstack-разработчик / Веб-девелопер. Продукты: Frontend сайтов программируют только на Javascript, так что он используется на большинстве сайтов. JavaScript — язык веб-разработок. Изначально на нем можно было программировать только frontend сайтов, но сейчас, благодаря Node.js, который выступает в роли веб-сервера, можно писать и серверные приложения. Язык делает сайты интерактивными и высокопроизводительными. А чтобы эффективно использовать возможности языка для создания красочных сайтов, нужно уметь пользоваться инструментами верстки HTML и CSS, знать один из популярных фреймворков (React, Vue или Angular). В веб-разработках сообщество большое, так как fullstack- и frontend-разработчики нужны всем. Сайтов огромное количество, мы пользуемся ими каждый день, и их всегда нужно улучшать. Кроме того, такие проекты можно вести самому с нуля вплоть до самого релиза, что тоже очень ценно, если вам привычнее инди-разработка.

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
C#

Сложность: C# изначально перенял синтаксические конструкции языков C++ и Java, так как его разработали специально, чтобы упростить последние. У него хороший набор фреймворков (.Net, Xamarin) и библиотек. Профессии: Разработчик игр / Fullstack-разработчик / Backend-разработчик. Продукты: Это универсальный язык программирования. На нем можно писать серверную часть сайтов, десктопные приложения, серверные приложения и даже игры. На российском рынке популярен движок Unity 3D, который позволяет на языке C# писать игры для любых платформ: для PC, мобильных устройств, приставок или VR. На нем удобно писать оконные приложения и веб-приложения или даже корпоративное программное обеспечение (например банковское обслуживание). Так как язык входит в пятерку самых популярных, он узнаваем, и в целом из-за обширной синтаксической семьи C# его сообщество масштабное и активное. Вы можете быть как инди-разработчиком, так и работать в команде — у вас всегда найдутся единомышленники и помощники.
C++

Сложность: синтаксис у C++ устроен сложнее, чем у тех же Python или C#. Однако использование языковых средств и концепций этого языка даст лучшее понимание теории программирования и может облегчить изучение других языков в дальнейшем. Профессии: C++ разработчик / Разработчик игр Продукты: на нем написан движок REDengine, на котором создали «Ведьмака» и Cyberpunk 2077, CCleaner, продукты Adobe, Autocad, Telegram, Microsoft 365 C++ — это один из фундаментальных языков программирования. Он быстрый, на нем вы можете заниматься оптимизацией, архитектурой ПО, решать задачи по автоматизации процессов, создавать системы моделирования. На нем можно писать с нуля программы, антивирусы, драйверы — все, что ближе к железу. Продукты, которые требуют более глубокого понимания основ программирования (роботы, нейросети), лучше создавать на C++. Из-за сложности языка сообщество программистов более сплоченное: активнее делится кодами и библиотеками языка. Можно даже наткнуться на горячие споры: кто-то считает, что C++ идеален в качестве первого языка, а другие относятся к языку со скепсисом и не видят смысла изучать его первым.
Java

Сложность: Сложнее, чем Python, но проще, чем C++. Довольно сильно похож на C# как по синтаксису, так и по сложности освоения. А большое количество обучающих материалов разного уровня доступно бесплатно. Профессии: Тестировщик ПО / Android-разработчик/ Java-разработчик. Продукты: архитектура Netflix, Spotify, Uber, веб-приложение Twitter Java стал вездесущим из-за своей универсальности и надежности. Про него слышали даже те, кто далек от программирования, потому что на языке написаны продукты, которыми мы пользуемся каждый день (Android-приложения, игрушки, десктопные ПО, банковские системы). Он кроссплатформенный, благодаря JVM (Java Virtual Machine) его можно запускать везде. Его чаще используют в компаниях, а не в инди-проектах. У Java одно из самых мощных сообществ. Вы сможете найти много разных проектов с открытым исходным кодом, обратиться за помощью и использовать готовые решения для своих кодов, развивая и совершенствуя их. Тест: Какой язык программирования вам подойдет?
Java-разработчик
Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.
Какой язык программирования выбрать новичку в 2023 году
Мы проанализировали популярность, уровни зарплат и собрали подборку, которая поможет выбрать язык программирования для изучения в 2023 году.
Совсем недавно закончилась «Битва языков программирования 2022». А в этой статье поговорим о том, какой язык программирования стоит изучать уже в 2023 году.
Сейчас насчитывается больше 8 000 разных языков программирования (ЯП), и их количество постоянно растёт. Каждый год, если не месяц, появляются новые, в том числе созданные just for fun, но популярных и востребованных всё же гораздо меньше. На какие из них стоит обратить внимание новичку?
Отвечая на этот вопрос, мы проанализировали несколько самых известных языков и сравнили их популярность по двум рейтингам: TIOBE и Stack Overflow. Также мы изучили уровень зарплат для каждого языка из статьи и проанализировали порог вхождения. В статье рассматриваются JavaScript, Golang, C++, Python, Java, Swift и Kotlin из мобильной разработки.
JavaScript
Популярность
Этот язык находится на 7–ом месте по индексу TIOBE, строящемуся на основе подсчёта результатов поисковых запросов, содержащих название ЯП. В 2022 году рейтинг JavaScript вырос на 0,9%. На графике ниже показана динамика изменения рейтинга языка с 2002 года.
Что касается индекса Stack Overflow, то JavaScript находится на 17–ом месте. Он нравится 61,46% пользователей ресурса (индекс составлен с учётом 22 544 голосов).
Уровень зарплат
По данным Хабр Карьеры, медианный уровень зарплаты программистов на JavaScript — 150 000 рублей. Этот показатель не вырос, но и не снизился с 2021 года, что может говорить о стабильном спросе на разработчиков, специализирующихся на этом ЯП.
Порог вхождения и перспективы
По мнению самих разработчиков, у JavaScript относительно невысокий порог входа, что делает его весьма популярным и востребованным. Его стоит изучать потому, что технологии на базе языка повсеместны. Так, он исполняется у любого пользователя сети в браузере и применяется в бэкенде. При этом задачи, для решения которых используется JS, могут быть очень сложными.
Перспективы у JS хорошие — его популярность вряд ли будет снижаться в ближайшие несколько лет. Хотя бы потому, что это единственный язык программирования такого класса, который поддерживается браузерами. Плюс он подходит для работы с серверными технологиями.
Golang
Популярность
Golang — относительно молодой ЯП, созданный командой Google. За примерно десять лет он поднялся до 12-го места в индексе TIOBE. В 2021 году он занимал 19–ю позицию. Вот динамика изменения рейтинга ЯП с момента его появления в 2010 году.
В индексе Stack Overflow он занимает 8–е место. С ним предпочитают работать 64,58% пользователей ресурса.
Уровень зарплат
По данным Хабр Карьеры, медианная зарплата разработчиков Golang составляет 205 000 рублей, с ростом на 3% по отношению к 2021 году. Рост зарплат может быть свидетельством увеличения популярности языка от года к году.
Порог вхождения и перспективы
По этому показателю Golang несколько проигрывает JavaScript, поскольку язык изучают в основном профессиональные разработчики, которые программируют и на других языках. Как правило, язык изучают в связке с PHP и Python.
Тем не менее многие программисты считают, что Go подходит и для изучения в качестве первого ЯП. Это полный язык по Тьюрингу, а его достоинства — простота и лаконичность. С помощью Golang можно решать задачи практически любого уровня сложности.
С++
Популярность
Согласно индексу TIOBE «плюсы» занимают 3–ю позицию, поднявшись с 4–го места в 2021 году. За год рейтинг языка увеличился на 4,21%. Ниже — динамика популярности с 2002 года.
А вот согласно индексу Stack Overflow язык занимает 25–е место. Он нравится 48,39% пользователей ресурса.
Уровень зарплат
Медианный уровень, по данным Хабр Карьеры, — 150 000 рублей. По сравнению с 2021 годом уровень зарплат вырос на 9%.
Порог вхождения и перспективы
У этого языка довольно высокий порог вхождения. Желательно иметь хотя бы базовое представление о том, что такое программирование, как работает аппаратное обеспечение ПК и ОС. При работе с языком требуется контролировать типы данных, а также выделение и освобождение памяти.
Спрос же на разработчиков С++ остаётся стабильно высоким. Их приглашают на работу в компании разного масштаба, включая такие крупные, как Microsoft, Amazon и Google.
Python
Популярность
По данным индекса TIOBE, Python занял в 2022 году 1–е место, его показатель популярности вырос с 2021 года на 3,76%. Судя по динамике изменения рейтинга, востребованность специалистов по этому ЯП постоянно растёт.
В индексе Stack Overflow язык занимает 6–е место. Его выбирают 67,34% пользователей ресурса.
Уровень зарплат
По данным Хабр Карьеры, Python-программисты получают около 140 000 рублей. При этом с 2021 года этот показатель упал на 7%. Падение может быть связано с ростом количества программистов, работающих с этим ЯП, и вследствие этого ростом предложения на рынке.
Порог вхождения и перспективы
Язык считается несложным для изучения. До уровня Junior его могут освоить люди без технического образования. Что касается перспектив Python, то его популярность растёт год от года. Причина — несмотря на относительную простоту, ЯП позволяет разрабатывать серьёзные проекты со сложной архитектурой.
Java
Популярность
В индексе TIOBE Java находится на 4–ом месте, тогда как в 2021 ЯП занимал 3–ю позицию. Язык много лет занимает ведущие позиции рейтинга, перемещаясь в первой пятёрке. Вот динамика изменения рейтинга.
А вот по версии индекса Stack Overflow он находится на 28–ом месте. Язык нравится 45,75% пользователей ресурса.
Уровень зарплат
Согласно данным Хабр Карьеры медианная зарплата Java-разработчика составляет около 200 000 рублей. За год зарплаты в среднем выросли на 13%.
Порог вхождения и перспективы
По мнению ряда разработчиков, порог вхождения в Java средний. Чтобы научиться программировать на языке, нужен технический английский, чтобы разбираться в документации. Требуются общие знания ООП, паттернов проектирования, а также общее хорошее знание Java в объёме Sun’s java tutorial.
Стоит отметить, что Java — язык программирования, который используется в энтерпрайзе. В мире нет крупных компаний, которые не используют Java. В ближайшие лет 10 никто не сможет отказаться от этого языка, поскольку на нём написано множество продуктов, модулей и т. п.
Swift
Популярность
Согласно индексу TIOBE язык Swift занимает 15–е место по популярности среди разработчиков. Стоит отметить, что за год ЯП опустился сразу на 5 позиций, в прошлом году он занимал 10–е место. Вот динамика изменения популярности языка с 2014 года.
Что касается индекса Stack Overflow, то Swift занимает 12–е место. Язык нравится 62,88% разработчиков.
Уровень зарплат
Хабр Карьеры говорит о том, что Swift-разработчики получают около 200 000 рублей, за год зарплаты остались на прежнем уровне. Это может говорить о стабильном спросе на специалистов по этому ЯП, который остаётся примерно на одном и том же уровне из года в год.
Порог вхождения и перспективы
Он довольно низкий по сравнению с другими языками. Начать работать после получения базового опыта и знаний можно в пределах года с момента начала изучения Swift. При этом, если раньше кодовая база имела 75 000 кодовых строк, то сейчас это количество сокращено более чем на две трети.
У языка отличные перспективы, поскольку экосистема Apple, для поддержки устройств которой и создан язык, продолжает активно развиваться. Практически у любой относительно крупной компании есть приложение на iOS, что означает, что спрос на разработчиков не будет падать в ближайшие несколько лет.
Kotlin
Популярность
Согласно индексу TIOBE Kotlin занимает 23–е место. Это относительно новый язык, который ещё просто не успел войти в первую двадцатку или тем более десятку. Тем не менее его популярность постепенно растёт. Так, с прошлого года рейтинг ЯП вырос на 0,58%.
По индексу Stack Overflow язык занимает 11–е место. Он нравится 63,29% разработчиков.
Уровень зарплат
Тезис о росте популярности языка подтверждает и уровень зарплат разработчиков, которые специализируются на Kotlin. По данным Хабр Карьеры, медианная зарплата программиста на Kotlin составляет около 185 000 рублей. За год этот показатель увеличился на 3%.
Порог вхождения и перспективы
По мнению разработчиков, порог вхождения в Kotlin низкий по сравнению с другими языками. Ещё быстрее его можно освоить, если разработчик хотя бы на базовом уровне знает Java. При этом родные для Java итераторы и коллекции поддерживаются им «из коробки».
Интересный факт: в Google считают, что Kotlin открывает больше возможностей, чем Java. Его популярность постепенно растёт — некоторые компании предпочитают переходить на Kotlin с Java. Плюс это универсальный язык, на котором можно написать и Android-приложение, и сервис, и приложение для ПК. В ближайшие лет 5 его популярность будет расти, так что и спрос на Kotlin-разработчиков будет стабильно высоким.
Так что же выбрать?
Мы рекомендуем выбирать тот язык программирования, принципы развития и сфера применения которого ближе к вашим профессиональным интересам. Скажем, если вы собираетесь выбрать своей отраслью Data Science, то вам нужен Python. Если хотите посвятить себя мобильной разработке, то без Java, Swift или Kotlin не обойтись.
Так что приведённые данные относительно места разных ЯП в индексе или уровня зарплат разработчиков — лишь ориентир, но далеко не главный фактор, которым стоит руководствоваться при выборе языка программирования, который вы собираетесь начать учить в 2023 году.
Нужно ли вам учить Swift?
Swift — это язык программирования, разработанный в компании Apple. На нем можно писать приложения для десктопа, мобильных приложений, серверов. У него есть среда Playground, в которой можно увидеть результат программирования на лету. Ну и вообще — язык Apple. Должен быть хорошим, разве нет?
Немного матчасти
Во всех наших предыдущих статьях мы использовали JavaScript, называя его языком программирования. Технически это верно, но настало время немного прояснить, сравнив со Swift.
Когда вы пишете на JavaScript, ваш код исполняется построчно в браузере, как будто актер на сцене читает реплики по телесуфлеру. Поэтому JavaScript принято называть скриптовым языком.
Если вы откроете чужую программу на JavaScript, вы сможете залезть в код, поменять его, и программа заработает по-новому. Можно выдрать нужную функцию или данные прямо из кода, потому что программа для JavaScript хранится и исполняется в понятном человеку виде.
Swift — в чистом виде язык программирования: в его стандартном виде вы сначала пишете всю программу, потом компилируете ее и запускаете. Компиляция — это превращение программного кода в технический код для процессора: на входе было то, что могли прочитать вы, а на выходе — то, что может прочитать компьютер. Если скрипт — это сценарий для актера на сцене, то компиляция — это отснятый фильм на киноленте.
После компиляции вы уже не можете с легкостью заглянуть в программу и что-то в ней поменять, там всё зашифровано и сжато. Зато такую программу процессор исполняет гораздо быстрее, чем скрипты.
iOS, macOS и деньги
В Swift есть библиотеки для разработки приложений для Маков, Айфонов и Айпадов. Это большой и богатый рынок (все еще), а зарплаты программистов на Swift высоки.
Но важно понимать, что Swift пока что не язык мобильной разработки, а именно язык экосистемы Apple. Существуют решения, чтобы компилировать код Swift на Андроид, но они скорее костыльные.
Идеальный сценарий для Swift — программа для Мака, для Айфона и Айпада, написанные в одной и той же логике. Но не программа для Айфона, Андроида, Мака и Виндоуса — до такого Swift еще не дошел.
Производительность
Это именно то, чего хотели добиться разработчики Swift — скорость работы программ и выполнения кода. Как заявляет Apple, Swift в 2,5 раза быстрее Objective-C и в 8 раз быстрее, чем Python 2.7.
Цель, к которой стремятся разработчики языка — сделать его быстрее, чем С++, который часто признаётся самым быстрым языком программирования.
Надо ли вам, чтобы программа была молниеносной? В идеале — да, но не всегда ради этого нужно переходить на новый язык программирования. Если программой пользуется небольшое число людей, а задача некритичная, то повышение скорости может быть не так заметно. А вот переписывание программы на новом языке может быть болезненным. Так что скорость — не всегда самоцель.
Лаконичный синтаксис
Если брать за критерий количество строк кода, которые нужно написать для решения задачи, то Swift идёт в первой десятке по минимализму. Это легкочитаемый язык, так же как и Python, но с фигурными скобками вместо отступов.
Такой код легко читается даже теми, кто не знает Swift, но знает любой другой язык программирования. В нём всё логично, структурно и понятно.
Посмотрите на пример кода на Swift:
let myPeople = ["Аня": 67, "Паша": 8, "Коля": 33, "Женя": 25] for (name, money) in myPeople
Вот так можно выбирать одно из множества значений (пример из документации Swift):
let vegetable = "красный перец" switch vegetable
Видимый результат
Для Swift есть специальный инструмент Playground — своего рода интерактивная песочница, где программист сразу видит результаты работы программы. Иногда это в несколько раз увеличивает скорость разработки и помогает быстро разобраться с проблемным участком кода.
Безопасный код
Идеология языка такая: меньше уязвимостей и больше безопасности для самого кода и системы. Разработчики исходили из того, что программист не должен держать всё в голове и предусматривать каждую нештатную ситуацию. Пусть за него это делает компьютер. Например, не нужно специально следить за доступом и утечкой памяти, потому что Swift берёт это на себя.
Ещё он защищает от ошибок, связанных с неправильным управлением железом и от несанкционированного доступа к участкам памяти, которые не задействованы в программе. Штатные ошибки Swift тоже обрабатывает эффективнее того же С++, где каждое исключение нужно прописать вручную.
Что учить сейчас?
Если вы уже программируете на разных языках — определенно рассмотрите Swift. Ничего лучше для разработки под Apple сейчас нет.
Если Swift будет вашим первым языком, начните лучше с Python. Он более универсальный и разносторонний. Потом сможете перейти на Swift и другие языки.
Если вам нужен быстрый результат и сразу выкатывать программы на сайт или в интернет, лучше посмотрите на JavaScript. У этого языка самый короткий путь от идеи до реализованного продукта на любом устройстве.
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
