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

Высокопроизводительный язык для очень больших данных.

Очередная страница нашей энциклопедии языков программирования посвящена молодому и перспективному языку из мира 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. Базовое руководство – книга без «воды», исключительно теория с практикой.