Julia – язык программирования

Julia — высокоуровневый высокопроизводительный свободный язык программирования с динамической типизацией, созданный коллективом авторов: Стефан Карпински,
Джефф Безансон, Вирал Шах. 21 января 2019 был выпущен релиз 1.1.0, а предыдущая версия 1.0.3 – релиз с длительным периодом поддержки. В чем основное отличие от других средств разработки? Разумеется Julia содержит в комплекте поставки набор библиотек для выполнения операций вычислений с плавающей точкой, линейной алгебры, генерации псевдо-случайных чисел (в том числе с помощью алгоритма PCG32). Но в отличие от интерпретируемого R Julia использует JIT-компиляцию, что существенно увеличивает быстродействие, что может быть полезно как для больших вычислений, так и для выполнения симуляций. Также существует возможность реализации многопоточности и использование вычислений с помощью CUDA. Также приятно, что библиотеки Си и Фортаран могут подключаться напрямую.
Удобство разработки обеспечивается средой Juno (расширение Atom), которая позволяет быстро и удобно получать и организовывать доступ к написанным программам, выводить графики, анализировать состояние сессии, что полезно для отладки.

Julia поддерживается системами тестирования Travis-CI и Codecov. И практически “из коробки” позволяет выполнять тестирование развертывания пакета с последующими тестами по покрытию кода. Это немаловажный аспект, так как есть возможность автоматизированной валидации кода при правильном написании серии тестов. Таким образом, вы всегда можете провести проверку и убедиться, что тот или иной пакет работает должным образом (разумеется если вы или разработчик создали набор тестов).
Julia быстро прогрессирует в рейтинге языков и возможно будет занимать топовые позиции потеснив R Project.

При переходе на версию 1.0.0 некоторые модули написанные для пред-релизной версии 0.6.0 не работают (и не будут работать без адаптации кода). Пока сохраняется возможность использования версии 0.7.0 (промежуточная), но со временем эта версия совершенно устареет. Один из пакетов из области клинических исследований – ClinicalTrialSampleSize уже длительное время не обновлялся и скорее всего уже не обновиться под версию 1.х.х, поэтому мною был написан модуль CTPSS для выполнения рутинных расчетов выборки и мощности клинических исследований. В модуле также реализованы Owen’sQ и Owen’sT функции, а также функция PowerTOST рерайтинг известного пакета PowerTOST среды вычислений R Project. Приглашаю всех желающих для валидации и аудита кода.