Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».
За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
Swift
Программист Крис Латтнер втайне от всех работал над собственным языком программирования с 2010 г. Примерно через полтора года после начала разработки к работе подключились другие программисты, но потребовался еще год, прежде чем компания Apple, в которой работает Латтнер, сфокусировалась на проекте.
В 2014 г. Apple представила ООП-язык Swift, который должен прийти на смену Objective-C, чему способствует возможность перевести на новый язык любое приложение, написанное на Objective-C. Swift, предназначенный в первую очередь для разработчиков iOS и OS X, считается более безопасным и быстрым языком по сравнению с Objective-C.
Что почитать сейчас
Лучшей книгой по языку является официальное издание от Apple — «Swift for Programmers». Книги известных преподавателей и программистов Харви Дейтела и Пола Дейтела в особом представлении не нуждаются — они славятся легким изложением материала любой сложности. «Swift for Programmers» содержит множество примеров реальных программ, которые помогут освоить азы создания собственных приложений. Обновленная версия книги вышла год назад.
Книга «Swift for Beginners: Develop and Design», вышедшая в 2014 г., не только рассказывает об основах Swift, но и знакомит со средой Xcode. Издание подойдет всем, кто обладает хотя бы минимумом знаний о программировании на любом языке высокого уровня и хочет научиться создавать программы для iOS, OS X или watchOS.
Однако, несмотря на все обновления, книги неминуемо устаревают вследствие изменений языка. Бороться с этим можно разными способами: например, знать заранее, какие актуальные книги по языку будут выходить в ближайшее время.
Что почитать в будущем
В «Swift 2 Cookbook» представлено более 50 рецептов, которые помогут создавать приложения в Swift 2. В учебнике описаны основы установки Xcode и приведены примеры обновления кода со Swift 1.2 до Swift 2.0 с помощью Xcode, а также продемонстрировано, как Xcode помогает тестировать код. Иметь некоторые начальные представления об Objective-C или Swift будет полезно, но изучать представленный в данной книге материал можно и без предварительных знаний Swift. Книга выйдет в апреле этого года.
Scala
Scala — мощный мультипарадигмальный язык программирования, предназначенный для безопасного и быстрого программирования. В Scala полностью поддерживаются возможности функционального программирования. Он является представителем академической среды, за что порой и обвиняется в излишней сложности. Язык был создан в 2001—2004 гг. в одном из самых престижных учебных заведений Европы — в Федеральной политехнической школе Лозанны. Scala — это результат исследований, направленных на разработку улучшенной языковой поддержки компонентного ПО.
Сегодня Scala используется во многих крупных проектах — например, бóльшая часть серверного кода Twitter написана на этом языке. Scala может прийти на смену Java, благодаря тому, что в нем учтены многие ошибки, допущенные при проектировании Java.
Что почитать сейчас
Мартин Одерски, автор книги «Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition», является создателем языка Scala. Помимо этого, он разработал поддержку обобщенного программирования в Java (Generics) и создал текущую версию javac, компилятора Java.
В переводе с итальянского «scala» означает «лестница». Книга от Одерски определенным образом напоминает карабканье по лестнице: ступень за ступенью вы будете осваивать Scala, начиная с основных элементов и заканчивая дополнительными возможностями языка.
Вам также может пригодиться книга «Scala in Depth» (автор — Joshua D. Suereth). Конечно, во многих аспектах она уже устарела, но если вы собираетесь изучить паттерны и алгоритмы, можно рассчитывать на актуальность материалов.
«Scala in Action 1st Edition» — более свежий учебник (2013 г.). В нем содержится хороший обзор инструментов, расширяющих возможности языка. Подробно описаны и разобраны MongoDB, SBT, Scalaz, Squeryl, H2, jQuery UI, ScalaCheck, Specs, Akka, Lift, DSLs.
Что почитать в будущем
«Scala High Performance Programming» — это, по заверению авторов, первая книга, которая исследует возможности Scala по созданию высокопроизводительных приложений. Издание будет полезно разработчикам Scala, знающим Lift, а также Java-программистам, заинтересованным в переходе на Scala, но не желающим отказываться от производительности Java-кода.
Релиз книги намечен на июнь.
«Scala Design Patterns» — еще одна книга для Scala-программистов, которая поможет использовать накопленные знания для создания приложений в реальной жизни — своего рода быстрое справочное руководство. В книге рассматривается возможность применения хорошо известных в отрасли стандартов шаблонов проектирования с указанием, когда именно требуется использовать выбранный шаблон, а когда следует искать что-то более подходящее.
Lua
Lua — скриптовый язык, разработанный в далеком 1993 г. сотрудниками Католического университета Рио-де-Жанейро. По возможностям Lua ближе к JavaScript, однако его отличают более мощные и гибкие конструкции. Он получил известность как язык программирования многих игр (в том числе и World of Warcraft), однако может применяться не только для игр, но и там, где требуется использование данных, хранящихся в других файлах.
Lua является одним из самых производительных скриптовых языков в мире. Он используется в таких проектах, как Redis, nginx, Tarantool, OpenRes.
Что почитать сейчас
Читайте классиков. «Programming in Lua» (3-е издание) — книга, написанная одним из создателей языка Роберто Иерузалимски. Для разработчиков игр издание может стать настольной книгой. В ней рассматриваются практически все аспекты использования Lua, включая необходимые навыки по взаимодействию с С.
Один из самых простых способов изучить Lua вы найдете по этой ссылке: Learn Lua in 15 Minutes.
Что почитать в будущем
К сожалению, на ближайшее время интересных анонсов нет. Относительно новая (по сравнению с другими изданиями) книга вышла в 2015 г. — «Lua Game Development Cookbook». Начинающему гейм-девелоперу в этой книге будет полезно изучить концепцию простых 2D-игр, а затем перейти к современным 3D-проектам. Кроме того, возможности создания сценариев на языке Lua дадут вам полный контроль над игрой.
Однако книга эта не для новичков в Lua — понадобится знание языка, к тому же для создания пользовательских модулей Lua требуются знания С/С++.
Go
Роберт Гризмер, Роб Пайк и Кен Томпсон создали Go в 2007—2009 гг. Язык создавался с прицелом на решение проблем масштабных разработок ПО. Go должен был сделать процесс разработки более эффективным. В отличие от более академических языков программирования, в Go постарались убрать все лишнее. Благодаря лаконичности и простоте языка изучить его будет достаточно просто.
Области применения Go разнообразны. Так, пуш уведомлений во «ВКонтакте» реализован на языке Go. На Go можно писать приложения для iOS и Android, и даже создавать собственную криптовалюту. В общем, где именно использовать Go, вы решите для себя сами, тем более что изучать его можно и без хорошего знания английского языка — существует множество переводов и хорошая подборка статей в хабе на Хабре.
Что почитать сейчас
Один из авторов этой книги — Брайан Керниган — настоящая легенда программирования. Он является одним из соавторов Unix, создателем множества программ под Unix, включая ditroff и cron, автором «The C Programming Language», написанной вместе с Деннисом Ричи в 1978 г.
На данный момент «The Go Programming Language» — наиболее интересный учебник по языку Go. Изучать этот язык вам помогут хотя бы начальные знания JavaScript, Ruby, Python, Java или C++. В книге представлены сотни реальных примеров кода Go, охватывающих все нюансы языка, наиболее важные библиотеки, а также демонстрирующих широкий спектр использования языка.
Что почитать в будущем
Sau Sheong Chang, автор книги «Go Web Programming», написал «Ruby on Rails Web Mashup Projects», «Cloning Internet Applications with Ruby» и еще несколько значимых книг о Ruby. Тем интереснее будет узнать, почему директор лаборатории и прикладных исследований HP Labs в Сингапуре начал писать проекты на Go после Ruby. В «Go Web Programming» рассматривается вопрос создания веб-приложения в Go с использованием современных принципов проектирования. Релиз намечен на 31 мая.
Rust
Rust — мультипарадигменный, функциональный, императивно-процедурный, объектно-ориентированный язык программирования, разрабатываемый с 2006 г. С 2009 г. над Rust работает команда Mozilla Research.
Rust объединяет производительность и безопасность компилируемых языков (С++, не уступая ему в возможностях) со скоростью разработки динамических языков (Python), при этом сохраняет определенный уровень аскетичности. Благодаря действиям большого и открытого сообщества разработчиков в Rust исправлены многие ошибки, допущенные при проектировании C++ и Java.
Что почитать сейчас
Rust продолжает стремительно меняться. Отставание в обучающих материалах на несколько месяцев может поставить ваши знания под угрозу. В обязательном порядке необходимо ознакомиться с официальной документацией — с руководством (также известно как книга «The Rust Programming Language») и с другой документацией.
Что почитать в будущем
Jim Blandy, автор «Programming Rust», майнтенер GNU Emacs и GNU Guile, рассказывает об уникальных преимуществах Rust. В этой книге представлены примеры четкого и экономичного программирования, позволяющего избежать большого количества общих ошибок.
В декабре этого года выйдет книга «Learning Rust», которая позволит C#/C++-разработчикам получить лучшее управление производительностью и памятью. В книге продемонстрированы возможности Rust при разработке крупного и масштабируемого ПО, а также рассмотрены основы языка, включая переменные, процедуры, управление памятью, etc. Прочитав эту книгу, вы сможете создавать сложные приложения в Rust.
Вместо заключения
Процесс смены парадигмы настолько медленный, что готовиться к неизбежному можно начинать прямо сейчас, не дожидаясь, пока ваш любимый язык программирования окончательно устареет. Никто не забудет про C++ уже завтра, но двигаться вперед и узнавать новое нужно уже сейчас. Плюсы выбранных нами языков в том, что их реально использовать в проектах сегодняшнего дня, не ограничиваясь сухой теорией. Вы можете сами попробовать один из перспективных языков и не разочаруетесь в полученном результате.