Хочу все знать. Язык Julia

Высокопроизводительный язык для очень больших данных.
10 июля 2017326451Илья Бубнов3171214

Очередная страница нашей энциклопедии языков программирования посвящена молодому и перспективному языку из мира Data Science — Julia.

Кто, когда и зачем придумал

В 2009 году Стефан Карпински, учёный из Нью-Йоркского Университета, задался целью создать язык, который был бы лишён ограничений MATLAB и R. С реализацией вызвались помочь коллеги из других университетов: Алан Эдельман, Джефф Безансон и Вирал Шах. В течение 3 лет они работали над концепцией нового языка, включающей в себя:

  • быстродействие при работе с большими данными;
  • параллельный тип программирования;
  • поддержку облаков.

Также, по замыслу создателей, язык в будущем составит конкуренцию MATLAB в области визуализации данных, моделировании и прогнозировании. 
В 2012 году группа учёных выложила в сеть первую открытую версию Julia. Кстати, истории названия языка не существует, это «просто красивое женское имя».

Что сейчас

Язык Julia работает с данными быстрее, чем Python, JavaScript, MATLAB, R, и незначительно уступает в производительности Go, Lua, Fortran и Си. Визуализация реализована частично: благодаря библиотекам PyPlot, Winston и Gadfly данные можно отображать в 2D-графиках. Моделирование осуществляется с использованием Python-библиотек, с логичными потерями в качестве и производительности.

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

В рейтинге популярности языков TIOBE Julia уверенно движется к вершине. Год назад она ещё не попадала в первую сотню, а в июньской публикации обосновалась на 49 месте.

Преимущества и недостатки

Объединим указанные плюсы в одном месте:

  • Простой синтаксис. Julia использует сходные с MATLAB и R конструкции — «англоязычные» функции легко запомнить и воспроизвести, никаких машинных символов, структура от Basic или Pascal.
  • JIT-компиляция. Это технология, которая позволяет увеличить производительность путём компиляции байт-кода в машинный.
  • Функциональность. Julia поддерживает библиотеки, написанные на Си и Python, а значит в вашем распоряжении сотни официальных и пользовательских пакетов надстроек.

Главный и единственный недостаток Julia — малое количество внутренних библиотек. Пока поддержка библиотеки, написанных на других языках, это компенсирует. Но если с Си — это оправданно, то использование Python убивает производительность, а значит пропадает смысл использования Julia.

Также пока актуальна проблема во взаимодействии с Windows, в частности с веб-библиотекой iJulia. Но разработчики обещают к следующему релизу устранить эту проблему.

Перспективы

Язык Julia развивается медленно. Релизы выходят в раз в 6-12 месяцев, значит, полноценную версию стоит ожидать лишь к 2019-2020 году. Без качественной программной оболочки Julia не удастся вытеснить с трона MATLAB, но обойти R и Python в области обработки данных вполне по силам.

Возможен сценарий, при котором какой-нибудь IT-гигант выкупит права на Julia. Потребности в улучшенных алгоритмах обработки уже продемонстрировали в Google, когда выпустили Golang, и в Facebook, в случае с Hack. Поэтому будущее у Julia пока выглядит радужным.

Ресурсы

Официальный сайт – руководство пользователя, новости, публикации, сообщество, перечень книг, ссылки на будущие мероприятия – всё можно найти здесь.
Сообщество Вконтакте – для поиска единомышленников и полезных ссылок.
Осваиваем язык Julia – одна из редких русскоязычных книг.
Язык программирования математических вычислений Julia. Базовое руководство – книга без «воды», исключительно теория с практикой.

web_developerpythonr languagejulia
Нашли ошибку в тексте? Напишите нам.