На Java, Python, С/С ++, JavaScript і PHP пишуть мільйони розробників, але хорошому фахівцю потрібно постійно вивчати щось нове. Сайт proglib.io опублікував список рідкісних, незвичайних і/або недооцінених мов програмування, на які варто звернути увагу.
1. Rust
В 2006 році розробник Mozzilla Грейдон Хор почав роботу над створенням мови програмування Rust. Через три роки компанія побачила перспективи в подальшому розвитку проєкту та початку його окремо фінансувати, а вже через рік Rust був офіційно представлений на Mozilla Summit 2010. Кілька років тестування, і в травні 2015 року вийшла перша стабільна версія Rust 1.0.
Зараз цю мову використовують для розподілених клієнт-серверних додатків і системного програмування. Грамотно реалізована модель управління пам’яттю перешкоджає виникненню критичних помилок, які регулярно виникають в коді на схожих мовах. До того ж Rust дуже продуктивний, і розробники часто використовують його як альтернативу С/С ++, переписуючи успадкований код і запускаючи нові проэкти.
2. Hack
У Facebook створили цю мову програмування для поєднання швидких циклів розробки на PHP зі статичною типізацією, що забезпечує надійність і продуктивність. Написаний на ный код виповнюється віртуальною машиною HHVM (HipHop Virtual Machine). Найчастіше Hack застосовується для створення складних веб-сайтів, дозволяючи розробникам використовувати для проєктів динамічне кодування як в PHP. Незважаючи на вражаючий дебют у найпопулярнішій соціальній мережі, мова не отримала широкого розповсюдження. На даний момент Hack активно розробляється.
3. АDA
Ця мова була створена в 1980 році на замовлення Міністерства оборони США для управління автоматизованими військовими комплексами, бортовими системами кораблів, літаків, танків і ракет. Він вузько і гарний лише в своїй предметній області.
Perl не найбільш високооплачувана мова програмування, а JavaScript знову на коні – опитування Stack Overflow
Алголоподобний синтаксис мови був значно розширений, що зробило його більш логічним. Ада – строго-типізована мова з додаванням базових засобів для об’єктно-орієнтованого програмування. Вона має безліч чудових функцій, добре масштабується і вважається однією з найбезпечніших серед мов своєї групи. Названа вона на честь Ади Лавлейс – першого в світі програміста.
4. Haskell
У 80-ті роки минулого століття функціональні мови, до яких відноситься Haskell, були або дуже складними, або легкими і витіюватими. Всі вони були жахливо непрактичними і не мали міцної основи для створення реальних додатків, поки не з’явилася ця чисто функціональна мова програмування з серйозним ставленням до типізації.
Крім простого і елегантного синтаксису, Haskell має пристойну швидкість швидкодію. З моменту прийняття останнього стандарту мови (Haskell 98) пройшло багато часу, і з тих пір провідні реалізації (ghc і hugs) були розширені безліччю додаткових можливостей. Прихильників у мови досі чимало. Використовують її для інвестиційного банкінгу, для проектування програмного забезпечення, а також для розробки системних продуктів. Більш детальну інформацію про Haskell ви можете отримати на офіційному сайті.
5. Erlang
Ще одна вікова мова з відкритим вихідним кодом була створена Ericsson Computer Sciences Lab в середині 80-х років. Компанія переслідувала дві мети: забезпечення ефективної розробки програмного забезпечення та створення системи, стійкої до збоїв програмного і апаратного характеру. Перед розробниками стояло завдання зробити мову з можливістю поновлення додатків «на льоту» без простого обладнання.
В основі Erlang лежить принцип “let it crash” (нехай виходить з ладу), тобто працює механізм, який завершає збійні процеси і запускає нові.
Erlang допускає многопоточность і використовує схожу на JVM віртуальну машину, але на відміну від останньої, він призначений для вбудованих рішень. Є думка, що дивний синтаксис мови відлякує новачків, але така слава абсолютно незаслужена. На Erlang пишуть сучасні системи веб-управління і бази даних, а також розробляють різні чати (включаючи чат Facebook).
6. Racket
Racket – мова на базі Lisp/Scheme. Розробники використовують її для дослідження ідей і тестування прототипів. Одна з головних задач Racket – створення, проектування і реалізація нових мов програмування. Синтаксис мови досить простий, він не типізований і має навчально-орієнтовані бібліотеки, а керівництво по Racket – один з найбільш зрозумілих і добре організованих документів.
Стартує набір менторів/-ок на програму Mentorplace 1.1 IT для молоді, яка прагне розвитку в сфері ІТ
Деякі розробники скаржаться, що в дужках мовуа«пливе»: рядок нерідко закінчується десятьма або дванадцятьма дужками. Проблема може бути і в недостатньо великому співтоваристві послідовників і відсутності можливості підглянути ваші фрагменти коду в режимі онлайн. У будь-якому випадку, високою популярністю Racket не користується, а жаль.
7. Io
Це відносно маловідома мова сценаріїв, що поєднує в собі принципи LISP (весь код – це дані) з об’єктами на основі прототипів і простою моделлю передачі повідомлень. Хоча вона не отримала широкого поширення, функціональність Io добре продумана і заснована на простих конструкціях. Вивчення Io – спосіб зрозуміти базову будову заснованих на прототипах мов (на кшталт JavaScript). Її відмінними рисами є простота і мінімальний синтаксис, досить легкий для сприйняття. Прихильники кажуть, що це відмінна мова програмування загального призначення.
8. Groovy
Groovy – об’єктно-орієнтована мова, створена як доповнення до Java. Вона виглядає і відчувається як Java, але з упором на розширюваність і швидкі інновації. Groovy запозичила основні концепції та ідеї з динамічних мов, на зразок Ruby, Python і Smalltalk, запропонувавши рішення для усунення деяких недоліків Java. Вона розширювана, підтримує просту перевантаження операторів і має гнучку граматику. Хоча Groovy все ще нерозривно пов’язана з Java, з часом, з мови динамічних сценаріїв вона перетворилася в привабливу самодостатню мову програмування.
9. Scratch
Візуальне середовище програмування для дітей у віці від 8 до 16 років було розроблене в Массачусетському технологічному інституті. У Scratch не доведеться писати код – програмувати потрібно за допомогою перетягування візуальних блоків (drag-and-drop). Блоки групуються за призначенням і кожна їх група позначена відповідним кольором для кращого сприйняття. Інтерфейс платформи перекладений російською, так що якщо ви хотіли навчити дитину основам – це хороший варіант.
10. Dart
Створена в Google в 2011 році, Dart повинна була замінити JavaScript або хоча б стати йому гідною альтернативою.
«JavaScript має фундаментальні вади, які неможливо виправити, тому і була створена Dart», – Марк Міллер, творець Dart.
Задумане не здійснилося, JavaScript залишила Dart далеко позаду, і технічний гігант переробив її за зразком CoffeeScript (компілятор Dart-to-JavaScript). Проте на Dart розроблені веб-додатки Google AdSense, Google AdWords і ще багато гідних програм.
11. Q #
Предметно-орієнтована мова від компанії Microsoft була розроблена в 2017 році. Вона використовується для розрахунку квантових алгоритмів і роботи з квантовими комп’ютерами. Синтаксис Q# схожий на C# і F#, але має ряд особливостей. Мова доступна поки тільки в формі окремо розширення для Visual Studio в складі Quantum Development Kit і поставляється разом з квантовим симулятором, на якому і запускається.
12. Clojure
Мова загального призначення, що спрощує підтримку багатопоточності та паралелізму. Clojure є різновидом Lisp і працює на віртуальній машині Java. Маючи просту структуру і синтаксис, вона вирішує чимало пов’язаних з функціональним програмуванням проблем. Працюючи в контексті JVM, мова має доступ до всіх доступних бібліотек з можливістю виклику коду на Java з коду на Clojure і навпаки.
13. Lua
Незважаючи на свою простоту, Lua вважається мультипарадигменною мовою, що підтримує імперативний, функціональний і об’єктно-орієнтований підходи. Вона працює швидше ніж інші інтерпретовані мови і стала надзвичайно популярною в геймдеві. Код на ній ідеально підходить для різних скриптів, тому Lua підтримується не тільки ігровими движками. Adobe Photoshop, Angry Birds, Apache HTTP Server, Tarantool, веб-браузер Firefox, MediaWiki і World of Warcraft – такий далеко не повний перелік програм, які «дружать» з Lua.
Мови програмування – це інструменти для виконання вашої роботи. Постарайтеся опанувати ними і не бійтеся періодично освоювати нові. Часто вони потрібні для вирішення допоміжних завдань, на зразок написання скриптів. Навіть якщо ні, вивчення мов програмування – гарне тренування для розуму, що розширює базові уявлення про професію і дозволяє підтримувати ваші навички в актуальному стані. Інвестуйте в себе і ви завжди будете затребуваним фахівцем. Успіхів!