Новые языки программирования появляются каждый год. Одни из них разрабатываются технологическими корпорациями для собственных нужд, а другие создаются энтузиастами в экспериментальных целях. При том что за последние 10 лет по-настоящему востребованными на рынке стали Swift, Kotlin, Go, Rust и TypeScript, потенциал есть и у многих других новичков. Сегодня мы познакомим вас с новыми языками программирования и попытаемся разобраться стоит ли вообще их изучать.
Есть ли необходимость в изучении новых языков программирования?
В мире насчитывается более 700 языков программирования, и этот список постоянно растет. При этом большинство IТ-команд в крупных компаниях и стартапах использует несколько языков и фреймворков одновременно. Разработчики тоже все чаще становятся билингвистами и мультилингвистами, осваивая от 2 до 5 языков, в том числе новых. Зачем это нужно?
Новые инструменты и фреймворки прокачивают умения и позволяют по-новому взглянуть на тривиальные задачи. Даже если вы не будете применять новые языки в работе, их знание поможет находить нестандартные решения в кодинге. Также у вас есть шанс стать востребованным специалистом до того, как язык станет мейнстримом. Пока остальные будут осваивать базу, вы уже выйдете на продвинутый уровень. И, наконец, при работе над сложным проектом вам будет проще подобрать нужный язык и фреймворк. Понимая специфику разных языков, вы легко определите, какой инструмент эффективнее решит задачу. А познакомиться с популярными и не очень языками в демо-режиме можно на сайте Learn X in Y minutes (https://learnxinyminutes.com/). Это проект постоянно обновляется и дополняется коммьюнити разработчиков.
«Выстрелит» конкретный язык или нет — это спорный вопрос. Но было немало случаев, когда наблюдался рост спроса на непопулярные языки. Так, например, в 2020 году в США выросло число вакансий для программистов, владеющих довольно устаревшим языком Fortran. Другим примером может послужить Ruby, который несколько лет назад был у всех на слуху. Позже его популярность спала, но язык успел занять свою нишу, поэтому на рынке все еще достаточно вакансий для знающих этот язык. Сегодня довольно интересными для изучения выглядят Zig и Nim. Не забывайте, что за любым непопулярным языком стоит идея, которая чаще всего отличается от привычных нам, поэтому, осваивая новый язык, вы расширяете кругозор и развиваете техническое мышление.
Go (Golang) (2009)
Go (Golang) занимает первую строчку в рейтинге языков программирования, которые хотят изучить как действующие разработчики, так и новички. Его часто называют «швейцарским ножом» в сфере разработки. Go довольно простой и универсальный, а использовать его можно для разных задач — от создания API до DevOps-инструментов. Кроме того, он пользуется спросом у крупных компаний, которые работают с большими данными. Поэтому владение Go регулярно входит в топ самых высокооплачиваемых навыков.
Rust (2010)
Язык Rust соединяет в себе сразу несколько преимуществ. По мощи и производительности он не уступает C++, но при этом по безопасности памяти он превосходит многих конкурентов. Еще один плюс — большое сообщество разработчиков, которые постоянно выпускают новые инструменты и дополнения. Поддержку Rust выражают и технологические гиганты. Так, например, в число соучредителей Rust Foundation вошли Facebook, Amazon Web Services, Google, Huawei, Microsoft и Mozilla. Кстати, именно сотрудник Mozilla Грэйдон Хор в 2006 году инициировал работу над новым языком, который впоследствии стала поддерживать и сама компания.
Раньше Rust мало кто использовал, поскольку язык считался нестабильным. Но за последний год многое изменилось. Rust перешел из Mozilla в отдельный фонд и получил инвестиции, что стало большим толчком в развитии языка. Теперь он стабилен и удобен, а главное, помогает избежать ошибок, которые возможны в С и С++, и не допускает утечек памяти, что очень важно, например, для разработки Embedded/IoT продуктов. Уже идет обсуждение второго патча, а значит, что сообщество, компании-соучредители и индустрия в целом заинтересованы в Rust. Если 42% серверов интернета уже работает на Linux и туда войдет этот язык, то Rust быстро наберет популярность.
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 стоит поэкспериментировать, чтобы лучше проследить преемственность языков программирования и проверить, может ли разработка быть настолько универсальной, как говорят создатели. Будущее языка на рынке пока что под вопросом и, судя по последним постам в блоге разработчиков, его развитие продвигается медленно. У создателей уходит много времени на разработку довольно простых функций, так что грандиозные планы по захвату full-stack индустрии пока откладываются.
Dart (Flutter) (2011)
Объектно-ориентированный, высокоуровневый язык Dart был разработан Google как альтернатива JavaScript. Он легко компилируется в JS или Java для Android, а из очевидных преимуществ Dart выделяют минимальное количество ошибок времени компиляции и мощный встроенный редактор. Сфера применения этого языка — разработка web- и мобильных приложений, а также программного обеспечения для IoT-устройств. Для создания мобильных и web-приложений на Dart у Google есть специальный продукт — фреймворк и сет средств разработки Flutter.
Elm (2011)
Этот функциональный язык, который подходит для создания сложных пользовательских интерфейсов, отличается хорошей скоростью и компилируется в JavaScript. Среди собратьев он выгодно выделяется отсутствием runtime exceptions и ограниченной системой типов, благодаря чему не возникает проблем с недопустимыми типами данных. Еще один большой плюс Elm — компилятор, выдающий подробные сообщения об ошибках и варианты их исправления. Обычно Elm используют для создания web-сервисов, поэтому его чаще всего применяют frontend-разработчики.
Julia (2012)
Высокоуровневый и высокопроизводительный язык Julia был разработан специально для научных исследований и аналитики. Его уже использует более 1500 университетов, а Альянс по климатическому моделированию (CliMA) выбрал Julia в качестве основного языка. В сфере статистических и математических вычислений Julia не уступает R и Matlab, но при этом он проще в изучении и работе. Из плюсов языка также отмечают быструю компиляцию кода, высокопроизводительное параллельное выполнение, обширную математическую библиотеку и поддержку облачных вычислений. Создатель Python Гвидо ван Россум считает Julia нишевым языком, который тем не менее по оптимизации кода превосходит аналоги.
Elixir (2012)
Функциональный, динамический, компилируемый язык общего назначения работает на виртуальной машине Erlang, что дает ему несколько преимуществ. Главные плюсы Elixir — это отказоустойчивость, возможность метапрограммирования, многозадачность и высокая производительность. Его используют как финтех-компании, так и e-commerce площадки, а также социальные сети, например, Pinterest и Discord. Решения на базе Elixir легко масштабировать, при этом сам язык довольно простой. За свою недолгую историю язык успел обзавестись несколькими фреймворками, поэтому его уже можно применять для full-stack разработки.
TypeScript (2012)
https://www.typescriptlang.org/
В начале второго десятилетия XXI века компания Microsoft планировала создать альтернативу JavaScript. Именно так и появился TypeScript — улучшенная и дополненная версия JS, на которую сегодня равняются многие разработчики языков. Например, создатели Python периодически подсматривают функции у TypeScript, а многие компании используют его в работе. Так, например, Google Analytics и Google Cloud Platform частично базируются на TypeScript. TypeScript — это язык-надстройка с открытым исходным кодом. Поэтому количество дополнительных фреймворков и инструментов для него постоянно растет. К плюсам также можно отнести статическую типизацию, которая выгодно отличает TypeScript от JavaScript. Еще один аргумент в пользу этого языка — удобство и функциональность. Благодаря этому TypeScript обошел Python в рейтинге самых любимых языков среди программистов от StackOverflow.
Crystal (2014)
Быстрый, как C, удобный, как Ruby, но более гибкий, чем JavaScript. Именно так характеризуют Crystal создатели языка. Его используют и для мелких enterprise-продуктов, и для блокчейн-проектов, и для разработки игр. Еще один плюс — растущее сообщество, которое верит, что в перспективе Crystal может полностью заменить Ruby. Эту точку зрения подтверждает и все большее число инструментов, совместимых с Crystal. Например, фреймворк Lucky и Kemal, а также новый язык программирования Mint, созданный специально для одностраничных приложений.
Swift (2014)
https://developer.apple.com/swift/
Изначально Apple создавала компилируемый язык Swift для разработчиков на iOS и macOS, но постепенно его стали применять и при работе с другим операционными системами, в том числе и с Android. Более того, программисты могут создавать свои версии языка и в целом экспериментировать с его возможностями. Например, его все чаще используют для разработки игр. У Swift немало общего с C и C++, а также Objective-C. В дополнение ко всему вышеперечисленному, этот язык быстрый, безопасный и простой в использовании.
ReasonML (2016)
Этот объектно-функциональный язык появился на свет из желания разработчиков Facebook придумать более простой, быстрый и безопасный вариант JavaScript, так что их синтаксисы очень похожи. Формально ReasonML — это расширение синтаксиса функционального языка OCaml и набор инструментов для него, поэтому он предполагает использование экосистемы и JavaScrip, и OCaml. Из плюсов языка часто отмечают его неизменяемость, строгую систему типов и возможность достаточно простой интеграции с JavaScript. Кроме того, ReasonML хорошо подходит для разработки React-приложений.
Ballerina (2017)
Ballerina — это сравнительно новый язык программирования, созданный компанией WSO2 для работы в облаке. Ballerina представляет собой статичный типизированный язык общего назначения. Его синтаксис достаточно простой и основывается на сочетании Go, Java, JavaScript и Python. Особенно интересным и перспективным для изучения Ballerina делает кроссплатформенность и направленность на интеграцию: специальные модули обеспечивают легкое взаимодействие различных сервисов, что упрощает работу программисту.
Microsoft Power Fx (2021)
https://docs.microsoft.com/en-us/power-platform/power-fx/overview
Один из самых молодых языков программирования, официально представленный всего несколько месяцев назад, был создан Microsoft для работы на платформе Power Platform и основан на синтаксисе функций Excel. В основе этого функционального декларативного языка общего назначения лежит концепция low-code. Работать с Microsoft Power Fx сможет даже человек с минимальным знанием кодинга. И это является одним из главных преимуществ языка.
Какой язык программирования выбрать новичку?
Если вы только начинаете свой путь в программировании, то совершенно неважно, какой язык осваивать первым. Главное, определить направление, которым вам будет интереснее заниматься: frontend, backend, мобильная разработка, IoT или что-то другое. Так вы сузите список языков для оптимального выбора. Если анализировать мейнстримные направления, то еще долго будет популярным TypeScript — он уже становится стандартом в web-разработке. Swift тоже будет востребован, поскольку на данный момент это один из немногих инструментов разработки под устройства компании Apple.
Желательно также понимать, какие компании используют определенный язык разработки и сколько в него инвестируют. Например, в Dart (Flutter) и Go (Golang) активно инвестирует Google. В Rust — Google, Microsoft, AWS и Facebook. В TypeScript много вкладывает Microsoft, а в Swift — Apple. В Kotlin инвестирует JetBrains. Как видите, в основном это гиганты индустрии. Обратите внимание на продукты, написанные на этих языках, чтобы понять будут ли продолжаться инвестиции в развитие языка в будущем. Также следует обратить внимание на сообщество и тот язык, на котором вам больше всего будет удобнее общаться с единомышленниками.
Новички обычно начинают с Python, Java, C, C# или Ruby, но можно выбрать для старта более новые языки программирования, например, Go или Rust. И помните, что инженер, который хорошо владеет азами, может легко освоить любой новый язык. Можно стать высококлассным узким специалистом в одной области, а можно знать несколько языков и видеть, как вещи работают на стыке технологий. Чем больше у вас в руках будет правильных инструментов, тем более качественный и интересный продукт вы сможете создать.
Следите за новостями на нашем Telegram-канале: https://t.me/infocity_az