Від Julia до Ballerina: гід по новим мовам програмування, які варто вивчати в 2021 році

Від Julia до Ballerina: гід по новим мовам програмування, які варто вивчати в 2021 році

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

Зміст

Навіщо вивчати нові мови програмування

У світі налічується понад 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 + професійний блог
По темi
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
По темi
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-канал.

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

Українець створив гру для вивчення мови програмування Assembler
Українець створив гру для вивчення мови програмування Assembler
Українець створив гру для вивчення мови програмування Assembler
Від стрімінгу до менторства: 8 джерел додаткового доходу для розробника
Від стрімінгу до менторства: 8 джерел додаткового доходу для розробника
Від стрімінгу до менторства: 8 джерел додаткового доходу для розробника
Не обов’язково завантажувати себе замовленнями на фрілансі, щоб збільшити дохід. Програміст може заробити і іншими способами — наприклад, кодувати в прямому ефірі або збирати донати на Patreon. Ми вивчили книгу фронтенд-розробника і блогера Флоріна Попа «10 способів заробітку для розробників» і вибрали найцікавіші джерела додаткового доходу.
12 курсів з мови програмування R – від базових до суперпросунутих
12 курсів з мови програмування R – від базових до суперпросунутих
12 курсів з мови програмування R – від базових до суперпросунутих
R — це функціональна мова для статистичної обробки даних і створення візуалізацій. Вона допомагає здійснювати наукові відкриття, отримувати маркетингові інсайти й орієнтуватися в хаосі big data. А ще з її допомогою можна розпізнати найдепресивнішу пісню Radiohead і проаналізувати коментарі на Reddit. Зібрали 12 курсів, які допоможуть освоїти мову R як програмістам, так і фахівцям, далеким від ІТ.
SoftServe запускає бакалаврську програму з квантового програмування в ЛНУ ім. І. Франка
SoftServe запускає бакалаврську програму з квантового програмування в ЛНУ ім. І. Франка
SoftServe запускає бакалаврську програму з квантового програмування в ЛНУ ім. І. Франка