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

Количество и многообразие применяемых сейчас языков программирования безмерно. Тем не менее, большинство фирм останавливается на небольшой их подгруппе при решении любых задач программирования. Разработчики неизменно пишут код на испытанным Java, C++, JavaScript, PHP и Ruby.

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

Ceylon 1.0.0

Напоминает: Java (но не является его версией)

Язык программирования Ceylon работает на JVM и Node.js и при этом избавлен от множества наболевших проблем Java. Вместо XML он использует сходный с JSON декларативный синтаксис для данных древовидной структуры, обладает статической типизацией и системой модулей, и поддерживает ряд отсутствующих в Java структур - последовательность, пересечение и объединение.

Clojure 1.6

Напоминает: Lisp

Clojure представляет собой Lisp для JVM, так как он работает на JVM и обладает полным доступом к каркасам и библиотекам Java. Создатели Clojure объявляют язык инструментом для функционального программирования, рассчитанным на параллельность, а значит, он хорошо подходит для многоядерных и распределенных приложений. Clojure лучше всего подойдет программистам с математическим или научным образованием. На поскольку растет парадигма функционального программирования, Clojure заслуживает тщательного рассмотрения за пределами вычислительной науки.

Egison 3.3.3

Напоминает: Lisp

Egison является функциональным языком, призванным осуществлять распознавание шаблонов по отношению к целому ряду типов данных. Создатель Egison, Сатоши Эги, утверждает, что распознавание шаблонов в существующих языках программирования поддерживается, только если данные хранятся в упорядоченной форме вроде списка. Egison позволяет по-разному выражать распознавание шаблонов исходя из типов данных (для списков против наборов), обрабатывать нелинейные шаблоны, такие как многократное появление одной и той же переменной в шаблоне, и создавать функции, принимающие и возвращающие шаблоны.

Groovy 2.2

Напоминает: Java

Его можно назвать "Java плюс", так как Groovy представляет собой синтаксическое расширение Java, работающее на JVM и использующее библиотечные классы Java. Однако Groovy изобилует возможностями, которых нет в Java: статическая и динамическая типизация, перегрузка операторов, встроенная поддержка регулярных выражений и оператор "?", обеспечивающий безопасную проверку пустых объектов без обертывания выражений в массу синтаксического сахара. Groovy используется на сайтах LinkedIn и Wired, и крупнейшие среды разработки, такие как Eclipse и IntelliJ, теперь поддерживают его.

Hack 1.0

Напоминает: PHP

Facebook уже создал собственную среду выполнения для PHP под названием HHVM, так почему бы не создать новый вариант PHP? Hack, придуманный Facebook, сохраняет быстрый цикл разработки и легкость использования PHP, добавляет статическую типизацию объектов и лямбда-выражения и обеспечивает безопасность и надежность. Большинство существующего PHP кода будет работать в Hack, теоретически упрощая переход с PHP на Hack, но сейчас трудно сказать, завоюет ли Hack  такую же популярность, как PHP.

Jeeves

Jeeves позволяет усилить политику конфиденциальности применительно к тому, как данные двигаются в приложении. Справка для реализации данного языка на Python поясняет, что это выходит за пределы констатации, может ли конкретный пользователь видеть значение, позволяя определить, может ли упомянутый пользователь видеть значения, полученные из данного значения. Правила касательно того, как движутся такие данные, создаются и управляются отдельно от самой программы. С учетом того, сколь важной стала защита данных в программировании, Jeeves получит гораздо больше внимания в будущем.

Julia 0.2.1

Напоминает: Python

Julia служит для технических и научных расчетов, базирующихся на распараллеленной и распределенной обработке больших объемов числовых данных. Julia компилируется в машинный код с помощью LLVM-компилятора, и по ряду ключевых контрольных показателей он намного опережает Matlab, Mathematica и R, также разработанных для математики и иных наук. Он поддерживает подобную Lisp функцию макросов для расширения функционала языка. Кроме того, Julia может использовать математические и научные библиотеки Python.

Nimrod 0.9.2

Напоминает: Python, Pascal

Nimrod является императивным языком программирования со статическим контролем типов, дающим программисту максимум возможностей и эффективность при выполнении. Nimrod компилируется в C, C++ или Objective-C и не нуждается в виртуальной машине или среде выполнения. Язык предназначен для системного программирования, поскольку способен напрямую обращаться к оборудованию и включает в себя указатели на очищаемую сборщиком мусора и управляемую вручную память. Язык позволяет определять операторы и макросы, и были написаны привязки для большинства популярных библиотек и сторонних приложений: Windows и POSIX API, GTK2, OpenGL и др.

OCaml 4.01

Большая часть языков программирования относится к одной из трех категорий: функциональная (Lisp), императивная (C) или объектно-ориентированная (Java). OCaml умеет все перечисленное, и некоторые недавние проекты OCaml возмутили спокойствие, включая Hack и Mirage OS от Xen Project. Его статическая типизация не привлечет сторонников динамической типизации, но на него определенно стоит обратить внимание, поскольку вслед за ним идут другие языки: к примеру, F# от Microsoft.

Racket 6.0

Напоминает: Lisp, Scheme

Будучи разновидностью Scheme, являющегося вариантом Lisp, Racket применяется и для создания языков, и для прикладного программирования. В отличие от других Lisp-подобных языков, система макрокоманд Scheme включает в себя сам компилятор, поэтому в язык можно добавлять возможности так, словно они являются собственными конструкциями Racket.