Хочу все знать. Язык 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. Базовое руководство – книга без «воды», исключительно теория с практикой.
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.