9 языков программирования, которые обязательно нужно выучить в 2021 году
9 языков программирования, которые обязательно нужно выучить в 2021 году
С эволюцией новых процессоров, логических плат и потребностью в большей производительности новые языки программирования, такие как Go и Rust, набирают популярность. Разработчиков часто спрашивают: «Что учить дальше?». Индустрия меняется очень быстро, и всегда есть что-то новое. Но вопрос в том, как выбрать следующий язык?
Ваши знания, интересы и карьерные цели — главный ключ. Есть известные языки, правящие в индустрии, как Python и JavaScript, с которыми трудно ошибиться.
Но что, если хочется попробовать что-то менее популярное? Чтобы помочь, мы собрали несколько новых языков программирования, у которых есть шанс стать стандартами индустрии. Выбирайте оружие внимательно.
9. Kotlin
Влияние: JavaScript, Java, C#, Scala
Kotlin — статически типизированный язык для современных мультиплатформенных приложений. Разработан командой JetBrains, впервые появился в 2011 году. Создан как промышленно-сильный объектно-ориентированный язык, лучший Java, и полностью совместим с Java-кодом для постепенной миграции.
Помимо методов и классов ООП, Kotlin поддерживает процедурное программирование через функции. Также поддерживает интерполяцию строк в стиле Linux/Perl-шелла и вывод типов.
Kotlin обладает инфиксной нотацией, безопасностью от null-указателей и функциями-расширениями. На Google I/O 2017 Kotlin был объявлен официальной платформой разработки Android. Стал третьим языком, полностью совместимым с Android после C++ и Java.
Язык используют Pinterest, Square, Trello, Amazon Web Services, Uber, а Corda имеет более 90% кода на Kotlin.
8. Elm
Влияние: Standard ML, F#, Haskell, OCaml
Elm — приятный язык, специально созданный для веб-браузерных графических интерфейсов. В отличие от JavaScript, он не генерирует исключения во время выполнения. Вместо этого Elm использует вывод типов для обнаружения проблем при компиляции и даёт понятные подсказки.
Язык фокусируется на трёх факторах: производительность, удобство, надёжность. Включает выразительный набор конструкций: let-выражения, анонимные функции, if-выражения, case-выражения, интерполяцию списков.
У Elm своя виртуальная система, но нет поддержки высших типов. Поэтому нет абстракций для общих операций — например, нет обобщённых map и filter.
Некоторые компании, использующие Elm в продакшене: NoRedInk, Futurice, Gizra, Hearken, PivotalTracker и др. С ростом мобильных устройств Elm имеет большой шанс пробиться на рынок и закрепиться надолго.
7. Julia
Влияние: Fortran, Lisp, Lua, Python, Perl, Ruby, MATLAB
Julia — высокоуровневый язык для численного анализа и вычислительной науки. Имеет обширную математическую библиотеку, распараллеливание выполнения, изощрённый компилятор и числовую точность.
Включает открытые библиотеки Fortran и C для обработки сигналов, линейной алгебры, обработки строк и генерации случайных чисел. Программы на Julia организованы вокруг множественной диспетчеризации, давая возможность определять поведение функций для различных комбинаций типов аргументов.
Julia не навязывает конкретный стиль параллелизма. Даёт различные ключевые строительные блоки для распределённых вычислений, делая её достаточно гибкой для поддержки широкого спектра стилей параллелизма и позволяя пользователям добавлять свои.
Не только быстро и легко создавать веб-приложения на Julia, но и результат быстро реагирует и легко используется. Многие известные компании уже используют Julia: Facebook, McAfee, Zulily, Disney, Capital One, IBM, Forio.
6. Elixir
Влияние: LFE, Clojure, Erlang, Ruby
Elixir разработан для создания реально-временных распределённых приложений. Это динамический функциональный язык, использующий Erlang VM (BEAM), известный низкой задержкой и отказоустойчивостью. Цель языка — улучшить производительность Rails-приложений на разных CPU.
Код Elixir запускается на виртуальной машине Erlang (BEAM) и компилируется в байт-код Erlang. Если работаете с обработкой данных, сетевыми приложениями или банковским ПО — отличный вариант. Но если не делали функциональное программирование, возможно, будет непросто.
Всё в Elixir — выражение, функции вызываются без влияния на время выполнения. Язык делает акцент на функциях высшего порядка и рекурсии вместо циклов с побочными эффектами. Также: сопоставление с образцом, лёгкая конкурентность, ленивые и асинхронные коллекции с потоками.
Elixir успешно используется в Moz, Pinterest, Inverse, Bleacher Report. Проводит ежегодные мероприятия в Европе и США, а также мелкие конференции и локальные встречи.
5. Rust
Влияние: C#, Ruby, C++, Alef, Haskell, NIL, Cyclone, Limbo, Erlang
Rust — системный язык программирования от Mozilla. Занял первое место в категории «Most Loved» опроса Stack Overflow 2016 и 2017 годов. Дизайн кода уточнялся через движок разметки Servo и компилятор Rust. Очень похож на C++ и имеет лёгкий синтаксис.
Rust создан для безопасного, конкурентного и практического программирования, поддерживает императивные процедурные и функциональные методы. Не для разработки энд-юзер приложений, а для «железа» — в частности, для лучшей безопасности памяти (предотвращение сегфолтов) с сохранением производительности.
Вместо автоматического сборщика мусора (как в Java и Go), Rust управляет памятью и ресурсами через RAII (Resource Acquisition Is Initialization) с опциональным подсчётом ссылок. Кроме того, даёт детерминированное управление ресурсами с минимальными накладными расходами и предпочитает размещение в стеке.
Список корпоративных пользователей впечатляет: Telenor Digital, SmartThin, Dropbox, Wire, Braintree, daZta, Ather, Onesignal, Faraday, Clever Cloud.
4. Crystal
Влияние: C, Ruby, C#, Python
Crystal — объектно-ориентированный язык, надеющийся принести C-подобную производительность в высокоабстрактный мир веб-разработчиков. Синтаксис в основном вдохновлён Ruby — плюс низкий порог входа для опытных Ruby-разработчиков.
Crystal опирается на LLVM для генерации нативного кода, используя все оптимизации тулчейна. Более того, статически типизирован — любые ошибки типов будут пойманы раньше, а не упадут в runtime.
Язык обладает системой макросов, поддерживает перегрузку операторов и автоматический сбор мусора. Имеет выделенный синтаксис для лёгкого вызова нативных библиотек, устраняя необходимость перереализовывать низкоуровневые задачи. Также использует «зелёные потоки» (fibers) для конкурентности.
Читайте: 20 величайших программистов всех времён
Crystal сейчас в стадии разработки. Всё равно несколько смелых уже используют его в продакшене: Neopoly GmbH, Appmonit, Bulutfon, Protel.
3. Groovy
Влияние: Python, Java, Smalltalk, Objective-C, Perl
Groovy — объектно-ориентированный скриптовый язык, впервые вышедший в 2003, стабильный релиз — 2007. Так как он динамически компилируется в байт-код Java, бесшовно интегрируется с любой Java-библиотекой. Если программировали на Java или другом языке с фигурными скобками, Groovy освоите быстро.
Groovy также набирает популярность, потому что повышает продуктивность разработчиков и даёт доступ к веб-фреймворку Grails. Наполнен крутыми фичами: поддержка NoSQL, мощные view-технологии, подключаемость и многое другое.
В отличие от Java, Groovy имеет и динамическую, и статическую типизацию, нативную поддержку регулярных выражений, вспомогательные методы, перегрузку операторов и оператор безопасной навигации для автоматической проверки null-указателей. Также нативная поддержка многих языков разметки: HTML, XML.
Язык используют гиганты: Oracle Sales Cloud, eXo platform, LinkedIn, XWiki Saas, DataMelt, Mastercard, Netflix, Airbus, Apache OFBiz.
2. R
Влияние: S, XLispStat, Common Lisp, Scheme
Язык R не новый, но стал популярнее в последние годы благодаря революции больших данных. Появился в 1993, теперь широко используется 데이터-майнерами и статистиками для анализа данных и разработки статистического ПО. Имеет как CLI, так и графический фронтенд.
R насыщен операторами для вычислений над матрицами, эффективной работой с данными, промежуточными инструментами анализа. Объектно-ориентированные фичи сильнее, чем у большинства языков статистических вычислений.
Структуры данных R: массивы, матрицы, датафреймы, векторы, списки. Расширяемая объектная система имеет объекты для временных рядов, геопространственных координат, регрессионных моделей. Кроме того, R работает как общий инструмент матричных вычислений с производительностью, сравнимой с MATLAB или Octave.
Читайте: 8 лучших языков программирования для ИИ
R использует политический прогнозист FiveThirtyEight для моделирования шансов президентских выборов 2008/2012/2016 и промежуточных 2010/2014. Также Республиканский и Демократический национальные комитеты используют R для выявления потенциальных избирателей и управления усилиями для максимального явки.
1. Go
Влияние: C, Python, Smalltalk, Alef, CSP, Modula, Pascal, Limbo, BCPL
Go выпущен Google в 2009 году для решения проблем кодирования, с которыми крупные организации сталкиваются ежедневно. Простота, легкость использования, фичи конкурентности и производительность — главные причины, почему разработчики довольны Go. В 2016 году получил награду «Язык года» по TIOBE.
Go даёт две фичи, заменяющие наследование классов: первая — «Embedding» (встраивание), рассматриваемое как автоматизированная форма композиции; вторая — «Interfaces» (интерфейсы), обеспечивающие полиморфизм. Встроенные фичи и библиотечная поддержка для написания конкурентного кода — не только для CPU-параллелизма, но и для асинхронности.
Читайте: 50 оттенков законов программирования
Язык включает инструменты отладки, тестирования и проверки кода: go test для тестов и микробенчмарков, go fmt для форматирования кода и многое другое. Также отладка и профилирование, детектор гонок и инструментация рантайма (например, паузы сборщика мусора).
У Go много крупных корпоративных пользователей: YouTube, Dropbox, Cloudflare, Netflix, BBC, Soundcloud, Zerodha, MaxCDN, Tumblr, Twitter, Yandex, Yahoo, Wikia, Uber, CoreOS.
Промышленные технологии
- Выбор идеального языка программирования для решений Промышленного IoT
- Топ 10 языков программирования для облака, которые должен освоить каждый разработчик
- Основы программирования микропроцессоров
- Топ-13 B2B SaaS-компаний 2021 года: Доказанные лидеры и инноваторы
- GLTR: надежный статистический инструмент для идентификации ИИ-сгенерированного текста
- Bosque: новый язык Microsoft без циклов для повышения качества кода
- Топ-17 книг по программированию для прокачки навыков кодинга в 2021 году
- Топ-7 трендов цепочек поставок, формирующих 2021 год
- Программирование ЧПУ: разбираем G-код и M-код
- Революция в интеграции линий: современные вызовы и решения