Отличительной чертой ИТ-индустрии является быстрый и даже безжалостный темп изменений. Несколько лет назад многих вполне устроило бы хорошее знание всего пары языков программирования. В целом такого количества знаний будет достаточно и в наше время, но тем не менее, когда вы сосредоточитесь на изучении какого-либо одного инструмента работы — будь то платформа, операционная система, язык программирования — вы станете заложником его успеха или неудачи.

Чтобы не остаться за бортом современных технологий каждый программист должен постоянно учиться, и особенно следить за появлением новых языков программирования, не говоря уже о том, что ему нужно учитывать опыт экспериментаторов.

В курсе последних тенденций программирования должны быть и ИТ-менеджеры: если требуется команда соискателей, обладающих познаниями в новых областях программирования или рассматривается возможность найма подрядчиков, то стоит уделить некоторое время тому, чтобы узнать, какие языки пользуются популярностью в среде программистов и какая от них может быть польза для вас.

Издание InformationWeek предлагает ознакомиться с подборкой из шести актуальных языков программирования, которые в ближайшее время из нишевых могут перейти в мейнстрим. Этот перечень был составлен исходя из данных TIOBE Index, оценивающего популярность языков программирования на основе подсчета результатов поисковых запросов, содержащих название языка. Во внимание принимались данные рейтинга популярности языков программирования аналитической фирмы RedMonk, которая анализирует языки программирования, использующиеся в репозиториях GitHub.

Swift

Если вы пишите мобильные приложения, которые пользуются всё большей популярностью среди разработчиков, вам наверняка придётся столкнуться с платформой iOS, а значит — со Swift (совсем недавно появился Swift 2). В декабре прошлого года Apple перевела его в разряд открытых проектов, порт для Linux уже готов и к его разработке присоединятся другие компании.

Но не стоит думать, что с появлением Swift нужно бросать изучение других техник программирования. Согласно TIOBE Index, язык Swift — «рекомендуемый к ознакомлению», но не «доминирующий». После того как Apple объявила о приоритетности Swift, специалисты TIOBE Index ожидали, что язык Objective-C резко начнёт терять популярность, но, как показала практика, программисты пока с осторожностью мигрируют на Swift.

Противоположной точки зрения придерживается RedMonk. Компания подсчитала, что за IV квартал 2015 г. Swift поднялся в списке с 68 места на 22 — беспрецедентный случай в истории рейтинга. Изучать язык можно с помощью официального руководства и блога Apple, где публикуются последние новости, статьи и мануалы для разработчиков. Objective-C, на смену которому может прийти Swift, разместился на десятой строчке рейтинга RedMonk.

Go

Язык Go шесть лет назад разработала Google. Это открытый язык разработки. Его созданием занимался Кен Томпсон, который известен своим вкладом в создание языка программирования Cи и ОС UNIX. Неудивительно, что синтаксис Go перекликается с наследием языка Cи. Фундаментальные структуры Cи, такие как Generic-типы, полиморфизм и ориентация объектов, используются и в Go, что облегчает переход на него Cи-разработчиков.

Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах. В выпуске Go 1.5 инструментарий языка полностью избавлен от кода на Си и не требует для сборки наличие Си-компилятора. Одна из причин, почему Go представляет интерес для программиста — это средство разработки под Docker.

R

Это язык программирования и программная среда для статистических вычислений, анализа и визуализации данных. R доступен под лицензией GNU GPL и распространяется в виде исходных кодов. Код был открыт в 1995 г. В нём используется интерфейс командной строки, хотя доступны и несколько графических интерфейсов пользователя, а также средства интеграции в офисные пакеты. Все эти качества делают R популярным выбором для тех, кто работает с большими данными.

Среди разработчиков R ценится за его способность генерировать диаграммы и графики. Задачи, которые могли бы потребовать несколько сотен строк кода на другом языке, на R могут быть написаны в несколько строк. Это не означает, что R является единственным выбором для работы с большими данными. С написанием приложений Big Data хорошо подходит Python. Означает ли это, что стоить изучать и R, и Python? Ответ да: в связке два эти инструмента неплохо дополняют друг друга.

TypeScript

Это творение Microsoft, которое было представлено в 2012 г. и позиционируется как средство разработки веб-приложений, расширяющее возможности JavaScript. Для большинства разработчиков, которые работают с JavaScript, слабым местом этого языка является отсутствие средств объектно-ориентированного программирования, что не позволяет вырваться за рамки написания простых сценариев. И здесь на помощь приходит TypeScript: в качестве отправной точки он предлагает средства статической типизации, дополнительные классы и интерфейсы. Это позволяет масштабировать разработку сложных JavaScript-приложений.

По сути, TypeScript — это надстройка над JavaScript. То есть любой корректный код на JavaScript также является корректным кодом на TypeScript. Фактически, после компиляции программу на TypeScript можно выполнять в любом современном браузере или использовать совместно с серверной платформой Node.js. Кроме того, TypeScript можно использовать с другими пакетами, такими как JQuery, так что программист получит дополнительный опыт с этими процедурами. Ещё более привлекательным TypeScript делает то, что на нём строится Angular 2. Это Open Source JavaScript-фреймворк, использующий шаблон MVC. Наличие богатого функционала во многом повлияло на то, что он находит свое применение во все большем количестве веб-приложений, являясь на данный момент одним из самых популярных JavaScript-фреймворков.

Groovy

Groovy — это гибкий и динамичной язык для виртуальной машины Java (JVM). Он дополняет Java функционалом, привлечённым из таких языков программирования, как Python, Ruby и Smalltalk. Groovy был создан в 2004 г., затем права на него приобрела компания SpringSource (создатель Java-фреймворка Spring). Последняя в итоге была куплена VMware, а руководство развитием Groovy было передано компании Pivotal.

Однако Pivotal, последние годы поддерживающая разработку Groovy и Grails (программный каркас для создания веб-приложений на Groovy), объявила о прекращении спонсирования этих проектов начиная с 31 марта. Релизы Groovy 2.4 и Grails 3.0 будут последними под крылом Pivotal. Оба проекта стали частью фонда Apache и продолжат развиваться как Open Source-проекты.

Вы можете использовать Groovy как скриптовый язык, или вы можете рассматривать его как объектно-ориентированный язык, или как надмножество Java. Язык может использоваться в любом Java-проекте, так как код Groovy совместим с Java-кодом. Синтаксис Groove нельзя назвать громоздким, его легко перекомпилировать в кодовую базу Java и обратно.

Возможности Groovy, отличающие его от Java, включают статическую и динамическую типизацию, встроенный синтаксис для списков, ассоциативных массивов и регулярных выражений, а также перегрузку операций. Groove недавно обновил интерфейс, его популярность начинает расти. За прошлый год он стал четвёртым в TIOBE Index по темпу роста.

Rust

Это экспериментальный язык программирования, разрабатываемый Mozilla. Он потребуется для разработчиков, которые решают задачи безопасности системных инфраструктур, скорости обработки данных и распараллеливании процессов вычислений. Rust был создан для движка Servo в 2014 г.. Отличительная особенность движка — распараллеливание множества действий, таких как рендеринг и парсинг HTML. (Servo заменяет Gecko, используемый в Firefox). Он портирован Samsung на Android и процессоры ARM.

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, выход за границы буфера и т. п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование, а также обобщённое программирование. Недавно вышел релиз Rust 1.6.

Вывод

Языков программирования существует великое множество, более того — постоянно будут появляться новые, дорабатываться старые, поэтому изучить даже некоторую их часть представляется очень непростой задачей. Но это не повод отчаиваться. Нужно понимать, что именно из разнообразия задач проистекает существование такого количества средств разработки. Поэтому вам требуется определить, какие цели вы ставите перед собой. Очертив их, следует просто подобрать для их реализации правильный инструмент.