- PVSM.RU - https://www.pvsm.ru -

Что читать о перспективных языках программирования

image

Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut [1], RedMonk [2], TIOBE Index [3]), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».

Swift

Программист Крис Латтнер втайне от всех работал над собственным языком программирования с 2010 г. Примерно через полтора года после начала разработки к работе подключились другие программисты, но потребовался еще год, прежде чем компания Apple, в которой работает Латтнер, сфокусировалась на проекте.

В 2014 г. Apple представила ООП-язык Swift, который должен прийти на смену Objective-C, чему способствует возможность перевести на новый язык любое приложение, написанное на Objective-C. Swift, предназначенный в первую очередь для разработчиков iOS и OS X, считается более безопасным и быстрым языком по сравнению с Objective-C.

Что почитать сейчас

Что читать о перспективных языках программирования - 2

Лучшей книгой по языку является официальное издание от Apple — «Swift for Programmers [4]». Книги известных преподавателей и программистов Харви Дейтела и Пола Дейтела в особом представлении не нуждаются — они славятся легким изложением материала любой сложности. «Swift for Programmers» содержит множество примеров реальных программ, которые помогут освоить азы создания собственных приложений. Обновленная версия книги вышла год назад.

Что читать о перспективных языках программирования - 3

Книга «Swift for Beginners: Develop and Design [5]», вышедшая в 2014 г., не только рассказывает об основах Swift, но и знакомит со средой Xcode. Издание подойдет всем, кто обладает хотя бы минимумом знаний о программировании на любом языке высокого уровня и хочет научиться создавать программы для iOS, OS X или watchOS.

Однако, несмотря на все обновления, книги неминуемо устаревают вследствие изменений языка. Бороться с этим можно разными способами: например, знать заранее, какие актуальные книги по языку будут выходить в ближайшее время.

Что почитать в будущем

Что читать о перспективных языках программирования - 4

В «Swift 2 Cookbook [6]» представлено более 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.

Что почитать сейчас

Что читать о перспективных языках программирования - 5

Мартин Одерски, автор книги «Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition [7]», является создателем языка Scala. Помимо этого, он разработал поддержку обобщенного программирования в Java (Generics) и создал текущую версию javac, компилятора Java.

В переводе с итальянского «scala» означает «лестница». Книга от Одерски определенным образом напоминает карабканье по лестнице: ступень за ступенью вы будете осваивать Scala, начиная с основных элементов и заканчивая дополнительными возможностями языка.

Вам также может пригодиться книга «Scala in Depth [8]» (автор — Joshua D. Suereth). Конечно, во многих аспектах она уже устарела, но если вы собираетесь изучить паттерны и алгоритмы, можно рассчитывать на актуальность материалов.

Что читать о перспективных языках программирования - 6

«Scala in Action 1st Edition [9]» — более свежий учебник (2013 г.). В нем содержится хороший обзор инструментов, расширяющих возможности языка. Подробно описаны и разобраны MongoDB [10], SBT [11], Scalaz [12], Squeryl [13], H2 [14], jQuery UI [15], ScalaCheck [16], Specs [17], Akka [18], Lift [19], DSLs.

Что почитать в будущем

Что читать о перспективных языках программирования - 7

«Scala High Performance Programming [20]» — это, по заверению авторов, первая книга, которая исследует возможности Scala по созданию высокопроизводительных приложений. Издание будет полезно разработчикам Scala, знающим Lift, а также Java-программистам, заинтересованным в переходе на Scala, но не желающим отказываться от производительности Java-кода.

Релиз книги намечен на июнь.

Что читать о перспективных языках программирования - 8

«Scala Design Patterns [21]» — еще одна книга для Scala-программистов, которая поможет использовать накопленные знания для создания приложений в реальной жизни — своего рода быстрое справочное руководство. В книге рассматривается возможность применения хорошо известных в отрасли стандартов шаблонов проектирования с указанием, когда именно требуется использовать выбранный шаблон, а когда следует искать что-то более подходящее.

Lua

Lua — скриптовый язык, разработанный в далеком 1993 г. сотрудниками Католического университета Рио-де-Жанейро. По возможностям Lua ближе к JavaScript, однако его отличают более мощные и гибкие конструкции. Он получил известность как язык программирования многих игр (в том числе и World of Warcraft), однако может применяться не только для игр, но и там, где требуется использование данных, хранящихся в других файлах.

Lua является одним из самых производительных скриптовых языков в мире. Он используется в таких проектах, как Redis, nginx, Tarantool, OpenRes.

Что почитать сейчас

Что читать о перспективных языках программирования - 9

Читайте классиков. «Programming in Lua [22]» (3-е издание) — книга, написанная одним из создателей языка Роберто Иерузалимски. Для разработчиков игр издание может стать настольной книгой. В ней рассматриваются практически все аспекты использования Lua, включая необходимые навыки по взаимодействию с С.

Один из самых простых способов изучить Lua вы найдете по этой ссылке: Learn Lua in 15 Minutes [23].

Что почитать в будущем

Что читать о перспективных языках программирования - 10

К сожалению, на ближайшее время интересных анонсов нет. Относительно новая (по сравнению с другими изданиями) книга вышла в 2015 г. — «Lua Game Development Cookbook [24]». Начинающему гейм-девелоперу в этой книге будет полезно изучить концепцию простых 2D-игр, а затем перейти к современным 3D-проектам. Кроме того, возможности создания сценариев на языке Lua дадут вам полный контроль над игрой.

Однако книга эта не для новичков в Lua — понадобится знание языка, к тому же для создания пользовательских модулей Lua требуются знания С/С++.

Go

Роберт Гризмер, Роб Пайко и Кен Томпсон создали Go в 2007—2009 гг. Язык создавался с прицелом на решение проблем масштабных разработок ПО. Go должен был сделать процесс разработки более эффективным. В отличие от более академических языков программирования, в Go постарались убрать все лишнее. Благодаря лаконичности и простоте языка изучить его будет достаточно просто.

Области применения Go разнообразны. Так, пуш уведомлений во «ВКонтакте» реализован на языке Go [25]. На Go можно писать приложения для iOS и Android, и даже создавать собственную криптовалюту [26]. В общем, где именно использовать Go, вы решите для себя сами, тем более что изучать его можно и без хорошего знания английского языка — существует множество переводов и хорошая подборка статей в хабе на Хабре [27].

Что почитать сейчас

Что читать о перспективных языках программирования - 11

Один из авторов этой книги — Брайан Керниган — настоящая легенда программирования. Он является одним из соавторов Unix, создателем множества программ под Unix, включая ditroff и cron, автором «The C Programming Language», написанной вместе с Деннисом Ричи в 1978 г.

На данный момент «The Go Programming Language [28]» — наиболее интересный учебник по языку Go. Изучать этот язык вам помогут хотя бы начальные знания JavaScript, Ruby, Python, Java или C++. В книге представлены сотни реальных примеров кода Go, охватывающих все нюансы языка, наиболее важные библиотеки, а также демонстрирующих широкий спектр использования языка.

Что почитать в будущем

Что читать о перспективных языках программирования - 12

Sau Sheong Chang, автор книги «Go Web Programming [29]», написал «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 продолжает стремительно меняться. Отставание в обучающих материалах на несколько месяцев может поставить ваши знания под угрозу. В обязательном порядке необходимо ознакомиться с официальной документацией — с руководством [30] (также известно как книга «The Rust Programming Language») и с другой документацией [31].

Что почитать в будущем

Что читать о перспективных языках программирования - 13

Jim Blandy, автор «Programming Rust [32]», майнтенер GNU Emacs и GNU Guile, рассказывает об уникальных преимуществах Rust. В этой книге представлены примеры четкого и экономичного программирования, позволяющего избежать большого количества общих ошибок.

Что читать о перспективных языках программирования - 14

В декабре этого года выйдет книга «Learning Rust [33]», которая позволит C#/C++-разработчикам получить лучшее управление производительностью и памятью. В книге продемонстрированы возможности Rust при разработке крупного и масштабируемого ПО, а также рассмотрены основы языка, включая переменные, процедуры, управление памятью, etc. Прочитав эту книгу, вы сможете создавать сложные приложения в Rust.

Вместо заключения

Процесс смены парадигмы настолько медленный, что готовиться к неизбежному можно начинать прямо сейчас, не дожидаясь, пока ваш любимый язык программирования окончательно устареет. Никто не забудет про C++ уже завтра, но двигаться вперед и узнавать новое нужно уже сейчас. Плюсы выбранных нами языков в том, что их реально использовать в проектах сегодняшнего дня, не ограничиваясь сухой теорией. Вы можете сами попробовать один из перспективных языков и не разочаруетесь в полученном результате.

Автор: Mail.Ru Group

Источник [34]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/114904

Ссылки в тексте:

[1] GitHut: http://githut.info/

[2] RedMonk: https://redmonk.com/sogrady/category/programming-languages/

[3] TIOBE Index: http://www.tiobe.com/tiobe_index?page=index

[4] Swift for Programmers: http://www.amazon.com/Swift-Programmers-Deitel-Developer-Paul/dp/0134021363/ref=sr_1_1?s=books&ie=UTF8&qid=1456928342&sr=1-1&keywords=Swift+for+Programmers

[5] Swift for Beginners: Develop and Design: http://www.amazon.com/Swift-Beginners-Boisy-G-Pitre/dp/0134044703

[6] Swift 2 Cookbook: http://www.amazon.com/Swift-2-Cookbook-Kyle-Begeman-ebook/dp/B01BP23IM8/ref=sr_1_5?s=books&ie=UTF8&qid=1455896505&sr=1-5&keywords=swift&refinements=p_n_publication_date%3A1250228011

[7] Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition: http://www.amazon.com/Programming-Scala-Comprehensive-Step-Step/dp/0981531644

[8] Scala in Depth: http://www.amazon.com/Scala-Depth-Joshua-D-Suereth/dp/1935182706/ref=la_B00BMU4U3U_1_2?s=books&ie=UTF8&qid=1457531278&sr=1-2

[9] Scala in Action 1st Edition: http://www.amazon.com/Scala-Action-Nilanjan-Raychaudhuri/dp/1935182757/ref=la_B00EACZ3BU_1_1?s=books&ie=UTF8&qid=1457532073&sr=1-1

[10] MongoDB: http://www.mongodb.org/

[11] SBT: http://code.google.com/p/simple-build-tool/

[12] Scalaz: http://code.google.com/p/scalaz/

[13] Squeryl: http://squeryl.org/

[14] H2: http://www.h2database.com/

[15] jQuery UI: http://jqueryui.com/

[16] ScalaCheck: http://code.google.com/p/scalacheck/

[17] Specs: http://code.google.com/p/specs/

[18] Akka: http://akka.io/

[19] Lift: http://liftweb.net/

[20] Scala High Performance Programming: http://www.amazon.com/Scala-Performance-Programming-Vincent-Theron-ebook/dp/B01BKL1PGA/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1457535569&sr=1-1

[21] Scala Design Patterns: http://www.amazon.com/Scala-Design-Patterns-Ivan-Nikolov/dp/1785882503/ref=sr_1_1?s=books&ie=UTF8&qid=1457537606&sr=1-1

[22] Programming in Lua: http://www.amazon.com/Programming-Lua-Roberto-Ierusalimschy/dp/859037985X/ref=sr_1_1?ie=UTF8&qid=1456935781&sr=8-1&keywords=Programming+in+Lua

[23] Learn Lua in 15 Minutes: http://tylerneylon.com/a/learn-lua/

[24] Lua Game Development Cookbook: http://www.amazon.com/Game-Development-Cookbook-Mario-Kasuba/dp/1849515506/ref=la_B017Y60AJ8_1_1?s=books&ie=UTF8&qid=1457539497&sr=1-1

[25] реализован на языке Go: https://habrahabr.ru/company/vkontakte/blog/265731/

[26] криптовалюту: https://habrahabr.ru/post/277099/

[27] хабе на Хабре: http://habrahabr.ru/hub/go/

[28] The Go Programming Language: http://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440/ref=sr_1_1?s=books&ie=UTF8&qid=1457543999&sr=1-1&keywords=Go

[29] Go Web Programming: http://www.amazon.com/Web-Programming-Sau-Sheong-Chang/dp/1617292567/ref=sr_1_1?s=books&ie=UTF8&qid=1457544079&sr=1-1&keywords=Go&refinements=p_n_publication_date%3A1250228011

[30] руководством: http://doc.rust-lang.org/book/README.html

[31] другой документацией: http://doc.rust-lang.org/index.html

[32] Programming Rust: http://www.amazon.com/Programming-Rust-Jim-Blandy/dp/1491927283/ref=sr_1_1?s=books&ie=UTF8&qid=1457545811&sr=1-1&keywords=Rust

[33] Learning Rust: http://www.amazon.com/Learning-Rust-Paul-Johnson-ebook/dp/B01CR5GCWA/ref=sr_1_7?s=books&ie=UTF8&qid=1457545849&sr=1-7&keywords=Rust

[34] Источник: https://habrahabr.ru/post/279193/