Очень субъективно, но всё же: - если нужно считать время от времени что-то по мелочи, то долгий первый запуск Julia и её пакетов (первые секунды) доставляет некоторый дискомфорт, R тут удобнее - синтаксис где-то очень похож, а где-то сильно другой, это поначалу отвлекает. Тоже всё логично и стройно, но логика немного другая - работа с массивами удобная - удобные инструменты для параллельных вычислений - можно свободно использовать циклы и они будут очень быстрые. Из-за этого аналогичные вещи можно писать сильно компактнее и читаемее. Не нужно говорить, что отлаживать такой код - на порядки проще и приятнее, чем код со всякими apply() из R - на скорую руку написанный код без каких-то заумных оптимизаций работает сильно быстрее, чем в R - если в ключевых местах сразу задавать типы переменных, то код сразу получается весьма быстрым. Так что если скорость выполнения не супер критична, то не нужно по нескольку раз переписывать одно и то же в поисках большей производительности, можно сразу писать начисто. С R на поиски более быстрого варианта у меня уходило порой очень много времени - родной plot() Julia побогаче, чем родной plot() R, и даёт более красивую и современную "журнальную" графику - в любой момент можно развернуть код до низкого уровня и если вместо лаконичной записи получается огромная простыня, значит скорее всего где-то недоуказан тип какой-то переменной, и Julia пытается спрогнозировать все возможные варианты. Так что даже без запуска можно найти проблемное место и поправить. Станет быстрее - можно напрямую использовать код и все пакеты из R через RCall. Это сильно упрощает миграцию с R и совместную работу с коллегами, использующими R. Достаточно обернуть имеющийся код на R в вызов RCall и дальше можно продолжить писать на JuliaТак что если нужно что-то быстро поправить в уже имеющемся R-скрипте, то быстрее так на R и поправить. Но если скорость выполнений или скорость отладки важна, то Julia тут сильно приятнее, и я пишу сразу на ней. Старый R-код с вычислениями переписал на Julia, и он без всяких оптимизаций стал где-то на три порядка быстрее. Там где скорость не важна, переписывать не имеет смысла, запускаю напрямую в R или обёртках из RCall
|