От Julia до Ballerina: гид по новым языкам программирования, которые стоит изучать в 2021 году

От Julia до Ballerina: гид по новым языкам программирования, которые стоит изучать в 2021 году

Ежегодно на рынке появляются сотни языков программирования — одни выходят под брендом техкорпораций, другие дополняют существующие языки, а третьи — эзотерические —  создаются в экспериментальных целях. За последние 10 лет по-настоящему «выстрелили» Swift, Kotlin, Go, Rust и TypeScript, но потенциал есть и у других новичков. Составили гид по новым языкам программирования, а заодно вместе с экспертом разобрались, зачем вообще их изучать. 

Содержание

Зачем изучать новые языки программирования

В мире насчитывается более 700 языков программирования, и список постоянно пополняется. А большинство ИТ-команд в крупных компаниях и стартапах использует несколько языков и фреймворков одновременно. Разработчики тоже все чаще становятся билингвами и мультилингвами и осваивают от 2 до 5 языков, в том числе тестируют новые технологии. Зачем это нужно:

  1. Новые инструменты и фреймворки прокачивают скиллы и помогают по-новому взглянуть на тривиальные задачи. Даже если вы не будете применять новые языки в работе, их знание поможет находить нестандартные решения в кодинге.
  2. Есть шанс поймать волну и стать востребованным специалистом до того, как язык станет мейнстримом. Пока остальные будут осваивать базу, вы уже выйдете на продвинутый уровень.
  3. При работе над сложным проектом вам будет проще подобрать нужный язык и фреймворк. Понимая специфику разных языков, вы легко определите, какой инструмент эффективнее решит задачу.
Игорь Челединов, Lead Software Engineer в EPAM. Эксперт в Drupal, PHP, Go. В основном пишет на Go и Rust, но постоянно тестирует новые языки программирования  
— Я изучаю новые языки для собственного развития. Это позволяет держать руку на пульсе, а мозг в напряжении. «Выстрелит» конкретный язык или нет — это вопрос спорный. Я смотрю на это под другим углом: иногда полезно освоить и «хайповое» направление, даже если вскоре о нем забудут. Было немало случаев, когда наблюдался скачок спроса на непопулярные языки. Так, в прошлом году в США выросло число вакансий для программистов, владеющих довольно устаревшим Fortran. Другой пример — Ruby: несколько лет назад этот язык был у всех на слуху, потом его популярность спала, но язык успел занять свою нишу, поэтому инженеры по-прежнему востребованы, а на рынке достаточно вакансий. Сейчас могу отметить еще Zig и Nim — они довольно интересны для изучения. За любым непопулярным языком стоит идея, которая чаще всего отличается от привычных нам. Осваивая новый язык, вы расширяете кругозор и развиваете техническое мышление. Знание специфики языков поможет оптимально выстроить архитектуру проекта и выбрать подходящий инструмент. 

Golang (Go) (2009)

Go (Golang) занимает первую строчку в рейтинге языков программирования, которые хотят изучить как действующие разработчики, так и новички. Его можно сравнить со швейцарским ножом в сфере разработки: Go довольно простой и универсальный, а использовать его можно для целого спектра задач — от создания API до DevOps-инструментов. А еще он пользуется спросом у крупных компаний, которые работают с большими данными. Поэтому владение Go регулярно входит в топ самых высокооплачиваемых навыков. 

Курсы по Go:

10 курсов Golang + профессиональный блог
10 курсов Golang + профессиональный блог
По теме
10 курсов Golang + профессиональный блог

Rust (2010)

Язык Rust соединяет в себе сразу несколько преимуществ — по мощи и производительности он не уступает C++, но при этом считается таким же безопасным, как Java. Еще один плюс — большое коммьюнити разработчиков, которые постоянно выпускают новые инструменты и дополнения. Поддержку Rust выражают и технологические гиганты — к сообществу Rust Foundation уже присоединились Facebook, Amazon Web Services, Google, Huawei, Microsoft и Mozilla.

Игорь Челединов, Lead Software Engineer в EPAM   
— Мне наиболее интересным всегда казался Rust. Раньше его мало кто использовал, поскольку язык считался нестабильным. Но за последний год многое изменилось: Rust перешел из Mozilla в отдельный фонд и получил инвестиции, это стало большим толчком в развитии языка. Теперь он стабилен и удобен, а главное, помогает избежать ошибок, которые возможны в С\С++, и не допускает утечек памяти. Это важно, например, для разработки Embedded/IoT продуктов. Кто купит часы или температурный датчик, которые придется перезагружать раз в сутки? Мне как практику любопытно следить за новостями о включении Rust в ядро Linux в качестве второго языка. Уже идет обсуждение второго патча, а значит, коммьюнити, компании и индустрия в целом заинтересованы в Rust. Если 42% серверов Интернета уже работают на Linux и туда войдет этот язык, то Rust начнет набирать популярность с невообразимой скоростью. В EPAM проектов с Rust становится все больше, и я как раз занимаюсь развитием практики по этому направлению. 

Курсы по теме:

10 актуальных и интересных курсов по Rust + бонус от GitHub
10 актуальных и интересных курсов по Rust + бонус от GitHub
По теме
10 актуальных и интересных курсов по Rust + бонус от GitHub

Kotlin (2011)

Kotlin — язык программирования, разработанный компанией JetBrains, который довольно быстро набрал популярность и встал в один ряд с Java. Его широко используют в мобильной разработке — именно Kotlin применяли при создании приложений Trello, Evernote и Coursera для Android. А Google в 2019 году назвала Kotlin приоритетным языком программирования. Основные преимущества — лаконичность и безопасность. По многим параметрам он превосходит Java, а также считается более простым языком по сравнению с главным конкурентом Scala.

Курсы по теме:

Red (2011)

Red задумывался как универсальный язык для full-stack разработки, который не будет зависеть от других инструментов и тулчейнов. Ближайший собрат Red — это REBOL, запущенный в 1997 году. В отличие от многих аналогов, Red позволяет писать и высоко-, и низкоуровневый код быстро и эффективно. При этом он обладает довольно простым «человечным» синтаксисом. «Красный» язык пока не получил широкую популярность — многим кажется, что он «подозрительно хорош», а его сторонников называют «маленькой программистской сектой». С Red стоит поэкспериментировать, чтобы лучше проследить преемственность языков программирования и проверить, может ли разработка быть настолько универсальной, как говорят создатели. Будущее языка на рынке пока под вопросом — например, блог не обновлялся почти год, а новые фичи не появлялись уже несколько месяцев.

Ресурсы по теме:

Dart (Flutter) (2011)

Объектно-ориентированный, высокоуровневый язык Dart был разработан Google как альтернатива JavaScript. Он легко компилируется в JS или Java для Android, а из очевидных преимуществ Dart выделяют минимальное количество ошибок времени компиляции и мощный встроенный редактор. Сфера применения этого языка — разработка веб-приложений, мобильного ПО и IoT-устройств. Для создания мобильных и веб-приложений на Dart у Google есть специальный продукт — фреймворк и сет средств разработки Flutter. 

Курсы по теме:

Elm (2011)

Функциональный язык, который подходит для создания сложных пользовательских интерфейсов, отличается хорошей скоростью и компилируется в JavaScript. Среди собратьев он выгодно выделяется отсутствием runtime exceptions и ограниченной системой типов (благодаря этому не возникает проблем с недопустимыми типами данных). Еще один большой плюс Elm — компилятор, выдающий подробные сообщения об ошибках и варианты их исправления.  Обычно Elm используют для создания веб-сервисов, поэтому его чаще всего применяют frontend-разработчики. 

Ресурсы по теме:

Julia (2012)

Высокоуровневый и высокопроизводительный язык был разработан специально для научных исследований и аналитики. Его уже использует более 1500 университетов, а Альянс по климатическому моделированию (CliMA) выбрал Julia в качестве основного языка. В сфере статистических и математических вычислений Julia не уступает R и Matlab, но при этом он проще в изучении и работе. Из плюсов языка также отмечают быструю компиляцию кода, высокопроизводительное параллельное выполнение, обширную математическую библиотеку и поддержку облачных вычислений. Создатель Python Гвидо ван Россум считает Julia нишевым языком, который, тем не менее, по оптимизации кода превосходит аналоги. 

Курсы по теме:

Elixir (2012)

Функциональный, динамический, компилируемый язык общего назначения работает на виртуальной машине Erlang, и это дает ему несколько преимуществ. Главные плюсы Elixir — отказоустойчивость, возможность метапрограммирования, многозадачность и высокая производительность. Его используют как финтех-компании, так и e-commerce-площадки, а также соцсети, например, Pinterest и Discord. Решения на базе Elixir легко масштабировать, при этом сам язык довольно простой. За свою недолгую историю язык успел обзавестись несколькими фреймворками, поэтому его уже можно применять для full-stack разработки.

Ресурсы по теме:

TypeScript (2012)

В 2010-х Microsoft хотела создать альтернативу JavaScript. Так появился TypeScript — улучшенная и дополненная версия JS, на которую сегодня равняются многие разработчики языков. Например, создатели Python периодически подсматривают функции у TypeScript. А многие компании использует его в работе — Google Analytics и Google Cloud Platform частично базируются на TS. 

TypeScript — это язык-надстройка с открытым исходным кодом. Поэтому количество дополнительных фреймворков и инструментов для него постоянно растет. К плюсам также можно отнести статическую типизацию, которая выгодно отличает TypeScript от JavaScript. Еще один аргумент в его пользу — удобство и функциональность. Благодаря этому TS обошел Python в рейтинге самых любимых языков среди программистов от StackOverflow.

Курсы по теме:

Crystal (2014)

Быстрый, как C, удобный, как Ruby, но более гибкий, чем JavaScript — так характеризуют Crystal создатели языка. Его используют и для мелких enterprise-продуктов, и для блокчейн-проектов, и для гейм-разработки. Еще один плюс — растущее коммьюнити, которое верит, что в перспективе Crystal может полностью заменить Ruby. Эту точку зрения подтверждает и все большее число инструментов, совместимых с Crystal. Например, фреймворк Lucky и Kemal, а также новый язык программирования Mint, созданный специально для одностраничных приложений.

Ресурсы по теме:

Swift (2014)

Изначально Apple создавала компилируемый язык Swift для разработчиков на iOS и macOS, но постепенно его стали применять и при работе с другим ОС, в том числе с Android. Более того, программисты могут создавать свои версии языка и в целом экспериментировать с его возможностями. Например, его все чаще используют для разработки игр. У Swift немало общего с C, C++, а также Objective-C. В дополнение ко всему вышеперечисленному язык быстрый, безопасный, простой в использовании и пр этом востребованный.

Курсы по теме: 

ReasonML (2016)

Этот объектно-функциональный язык появился на свет из желания разработчиков Facebook придумать более простой, быстрый и безопасный вариант JavaScript, так что его синтаксис очень похож на JS. Формально ReasonML — это расширение синтаксиса функционального языка OCaml и набор инструментов для него, поэтому он предполагает использование обеих экосистем: и JavaScrip, и OCaml. Из плюсов языка часто отмечают его иммутабельность, строгую систему типов и возможность достаточно простой интеграции с JS. Кроме того, ReasonML хорошо подходит для разработки React-приложений.

Курс по теме:

Ballerina (2017)

Сравнительно новый язык программирования, созданный компанией WSO2 для работы в облаке. Ballerina представляет собой статичный типизированный язык общего назначения. Его синтаксис достаточно простой и основывается на сочетании Go, Java, JavaScript и Python. Особенно интересным и перспективным для изучения Ballerina делает кроссплатформенность и направленность на интеграцию: специальные модули обеспечивают легкое взаимодействие различных сервисов, что упрощает работу программисту.

Курс по теме:

Microsoft Power Fx (2021)

Один из самых молодых языков программирования, официально представленный всего несколько месяцев назад, был создан Microsoft для работы на платформе Power Platform и основан на синтаксисе функций Excel. В основе этого функционального декларативного языка общего назначения лежит концепция low-code. Работать с Microsoft Power Fx сможет даже человек с минимальным знанием кодинга — и это одно из главных преимуществ языка. К тому же поддержка крупной корпорации гарантирует, что Microsoft Power Fx будет применяться в индустрии.

Курс по теме:

Какой язык программирования выбрать новичку 

Новички обычно начинают с Python, Java, C, C# или Ruby, но можно выбрать для старта более новые языки программирования, например, Go или Rust.

Игорь Челединов, Lead Software Engineer в EPAM. Эксперт в Drupal, PHP, Go. В основном пишет на Go и Rust 
 — Если вы только начинаете, то совершенно неважно, какой язык осваивать первым. Главное, определить направление: frontend, backend, мобильная разработка, Интернет вещей или что-то еще. Так вы сузите список языков для выбора. Если анализировать мейнстримные направления, то еще долго будет популярным TypeScript — он уже становится стандартом в веб-разработке, к тому же его пытаются адаптировать под embedded-устройства. Swift тоже будет на волне, поскольку пока это один из немногих инструментов разработки под устройства компании Apple.  Определившись со сферой, изучите рынок. Нужно понимать, какие компании используют определенный язык разработки и сколько в него инвестируют. Например, в Dart (Flutter) и Golang активно инвестирует Google. В Rust — Google, Microsoft, AWS и Facebook. В TypeScript много вкладывает Microsoft, а в Swift — Apple. В Kotlin инвестирует JetBrains. Как видите, в основном это гиганты индустрии. Обратите внимание на продукты, написанные на этих языках, чтобы понять, будут ли продолжаться инвестиции в развитие языка в будущем.  И еще один момент. Выбирать и изучать языки проще с единомышленниками. Например, можно присоединиться к сообществу. В Беларуси действует коммьюнити по frontend, Python и многим другим направлениям — Golang, PHP, Java. А в русскоязычном коммьюнити разработки игр на Rust уже полторы тысячи участников. Хорошим стартом в данный момент могут быть TypeScript или Dart. Новичку они дадут возможность попробовать свои силы почти в любом направлении. Для новичков в backend подойдет Golang — он простой, с низким порогом входа, что позволяет быстро перейти от обучения к написанию кода. В мобильной разработке есть два основных направления: для Android лучше выбрать Java либо Dart, для iOS — Swift. Новички, кому по душе frontend, могут начинать с TypeScript. А вот Erlang и Elixir — очень специфические языки. Первый обычно использовался там, где требуется одновременно обработать большое количество соединений, например для стриминговых серверов. Elixir основывается на Erlang, и в данный момент в enterprise его практически нет. Впрочем, в нишевых языках нет ничего плохого. Язык программирования — это, в первую очередь, инструмент в руках инженера, и не всегда это должен быть «швейцарский нож». Инженер, который хорошо владеет азами (базовыми алгоритмами и структурами данных), может легко освоить любой новый язык. Можно стать высококлассным узким специалистом в одной области, а можно знать несколько языков и видеть, как вещи работают на стыке технологий. Чем больше у тебя в руках правильных инструментов, тем шире твой взгляд и тем более качественный и интересный продукт ты можешь создать.

Хочете повідомити важливу новину? Пишіть у Telegram-bot.

А також підписуйтесь на наш Telegram-канал.

Читайте также

Доказательная медицина: 9 курсов для развития медицинской грамотности
Доказательная медицина: 9 курсов для развития медицинской грамотности
Доказательная медицина: 9 курсов для развития медицинской грамотности
Киберграмотность помогает защититься от интернет-мошенников, финансовая грамотность учит обращаться с деньгами, а медицинская — помогает выжить. Но почему-то именно ей уделяют меньше всего внимания — только 4% людей знает, как оказать первую помощь пострадавшему или самому себе. Собрали для новичков 9 полезных курсов по медицине, которые помогут разговаривать с врачами на одном языке и даже спасти человеку жизнь в экстренной ситуации.
GlobalLogic будет обучать одесских студентов-айтишников реальному IT
GlobalLogic будет обучать одесских студентов-айтишников реальному IT
GlobalLogic будет обучать одесских студентов-айтишников реальному IT
Украинец создал игру для изучения языка программирования Assembler
Украинец создал игру для изучения языка программирования Assembler
Украинец создал игру для изучения языка программирования Assembler
От стриминга до менторства: 8 источников дополнительного дохода для разработчика
От стриминга до менторства: 8 источников дополнительного дохода для разработчика
От стриминга до менторства: 8 источников дополнительного дохода для разработчика
Не обязательно загружать себя заказами на фрилансе, чтобы увеличить доход. Программист может подзаработать и другими способами — например, кодить в прямом эфире или собирать донаты на Patreon. Мы изучили книгу фронтенд-разработчика и блогера Флорина Попа «10 способов заработка для разработчиков» и выбрали самые интересные источники дополнительного дохода.