Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia.
Основное беспокойство:
1) Количество библиотек,
2) Возможное наличие багов в языке,
3) Размер коммьюнити.
Здравствуйте, MaximVK, Вы писали:
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia.
А что не устраивает в питон?
Периодически слышу про julia, но не пойму ее киллер-фичи
Здравствуйте, MaximVK, Вы писали:
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia.
Я как-то смотрел, но не пошло. Меня беспокоит не столько перечисленное, сколько тот факт, что не найдёшь потом никого со знанием языка. Ну и все статьи выходят с примерами на Питоне. Не хочется самому всё имплементировать.
Здравствуйте, Буравчик, Вы писали:
Б>А что не устраивает в питон?
Почти всем, кроме большого количества библиотек.
Б>Периодически слышу про julia, но не пойму ее киллер-фичи
1) компилируемый, ощутимо быстрее питона,
2) концептуально стройный, построенные с нуля и заточенный под ds/ml задачи
3) намного более адекватная типизация, чем у питона,
4) лучше с функциональщиной,
5) лучше с многопоточностью,
6) мультидиспатч,
7) метапрограммирование
Здравствуйте, Nuzhny, Вы писали:
N>Я как-то смотрел, но не пошло. Меня беспокоит не столько перечисленное, сколько тот факт, что не найдёшь потом никого со знанием языка. Ну и все статьи выходят с примерами на Питоне. Не хочется самому всё имплементировать.
Да, тут ты прав. Я использую пока для домашних проектов. Время от времени приходится писать какого-нибудь клиента, который уже есть для Питона (Binance, ClickHouse REST client). Но в целом, если есть код для Питона, то переписать его под Julia больших проблем нет. А вот для рабочих проектов — это да, проблема. Мы уже так в скалу поиграли
Здравствуйте, MaximVK, Вы писали:
MVK> Основное беспокойство: MVK> 1) Количество библиотек, MVK> 2) Возможное наличие багов в языке, MVK> 3) Размер коммьюнити.
4) "In particular, do not sexualize the term "Julia" or any other aspects of the project. While "Julia" is a female name in many parts of the world, the programming language is not a person and does not have a gender." (отсюда). Люди, сосредоточены на гендерной повестке вместо продукта, что заставляет задуматься.
5) С параллелизацией вычислений (собственно, единственная его киллер-фитча) раньше там было все очень и очень плохо (никакая аутентификация, лимитирование, распределение ресурсов и т.д.) и не было планов на исправление этого.
Здравствуйте, Anton Batenev, Вы писали:
AB>Здравствуйте, MaximVK, Вы писали:
MVK>> Основное беспокойство: MVK>> 1) Количество библиотек, MVK>> 2) Возможное наличие багов в языке, MVK>> 3) Размер коммьюнити.
AB>4) "In particular, do not sexualize the term "Julia" or any other aspects of the project. While "Julia" is a female name in many parts of the world, the programming language is not a person and does not have a gender." (отсюда). Люди, сосредоточены на гендерной повестке вместо продукта, что заставляет задуматься.
Ну это еще с Ады началось. Зато как звучит: Всю ночь про%&£?я с Julia
AB>5) С параллелизацией вычислений (собственно, единственная его киллер-фитча) раньше там было все очень и очень плохо (никакая аутентификация, лимитирование, распределение ресурсов и т.д.) и не было планов на исправление этого.
А можно что-то подробней про это? Можно в виде ссылок.
Здравствуйте, MaximVK, Вы писали:
MVK>Привет,
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia. MVK>Основное беспокойство: MVK>1) Количество библиотек, MVK>2) Возможное наличие багов в языке, MVK>3) Размер коммьюнити.
Здравствуйте, MaximVK, Вы писали:
MVK>Привет,
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia. MVK>Основное беспокойство: MVK>1) Количество библиотек, MVK>2) Возможное наличие багов в языке, MVK>3) Размер коммьюнити.
Совершенно правильное беспокойство. По гамбургскому счету, ресурсы, которые будут впустую потрачены на борьбу с Джулией эффективнее пустить на оптимизацию Python там, где это действительно нужно.
Здравствуйте, MaximVK, Вы писали:
MVK> А можно что-то подробней про это? Можно в виде ссылок.
Судя по https://docs.julialang.org/en/v1/manual/distributed-computing/ с тех пор ничего не поменялось. Все так же full-mesh связность всех нод, которые запускаются по passwordless ssh, а дальше между собой "Subsequent master-worker and worker-worker connections use plain, unencrypted TCP/IP sockets".
AB>Судя по https://docs.julialang.org/en/v1/manual/distributed-computing/ с тех пор ничего не поменялось. Все так же full-mesh связность всех нод, которые запускаются по passwordless ssh, а дальше между собой "Subsequent master-worker and worker-worker connections use plain, unencrypted TCP/IP sockets".
А скажите, для чего в HPC нужно шифрование? Чтобы тормозов прибавлять?
Здравствуйте, Miroff, Вы писали:
M>Совершенно правильное беспокойство. По гамбургскому счету, ресурсы, которые будут впустую потрачены на борьбу с Джулией эффективнее пустить на оптимизацию Python там, где это действительно нужно.
Здравствуйте, Anton Batenev, Вы писали:
AB> С> А скажите, для чего в HPC нужно шифрование? Чтобы тормозов прибавлять? AB> Все данные, передаваемые по сети (или через любую другую недоверенную среду), должны быть защищены от MITM. Или вопрос был в чем-то другом?
Если нам нужен High Performance и "сеть" это проводочки между серверами в одной стойке в охраняемой комнате data centre, то прикручивать шифрование это, мягко говоря, неразумно.
А иначе, там написано: "Securing and encrypting all worker-worker traffic (via SSH) or encrypting individual messages can be done via a custom ClusterManager."
Здравствуйте, Anton Batenev, Вы писали:
С>> А скажите, для чего в HPC нужно шифрование? Чтобы тормозов прибавлять? AB>Все данные, передаваемые по сети (или через любую другую недоверенную среду), должны быть защищены от MITM. Или вопрос был в чем-то другом?
В этом и вопрос. У вас есть свой собственный кластер со своей собственной сетью. С чего бы этой сети считаться недоверенной?
А если хочется шифрования в такой сети, то есть IPSec.
Здравствуйте, Слава, Вы писали:
С> В этом и вопрос. У вас есть свой собственный кластер со своей собственной сетью. С чего бы этой сети считаться недоверенной?
А с чего бы ей считаться доверенной? Начиная от межконтинентальной/трансграничной/междатацентровой передачи данных и заканчивая потенциальным вторжением злоумышленника на один+ хостов внутри контура.
С> А если хочется шифрования в такой сети, то есть IPSec.
IPSec худо-бедно работает точка-точка или между оборудованием одного вендора. В промышленных масштабах это не применимо.
P.S. В каких-то вырожденных случаях мы можем принять риски и отказаться от защиты (но это скорее должно быть исключением нежели правилом). Но для решения, которое претендует на универсальность, данные возможности должны идти по умолчанию и из коробки. Возможно когда-нибудь они там будут, но пока они в зачаточно-игрушечном состоянии.
Здравствуйте, Anton Batenev, Вы писали:
AB>4) "In particular, do not sexualize the term "Julia" or any other aspects of the project. While "Julia" is a female name in many parts of the world, the programming language is not a person and does not have a gender." (отсюда). Люди, сосредоточены на гендерной повестке вместо продукта, что заставляет задуматься.
Я прочитал тот абзац и в упор не увидел, где там "гендерная повестка".
Сначала идет просьба не атаковать кого-либо по какому-либо признаку, принадлежности к той или иной социальной/религиозной/половой группе.
Просьба сначала подумать, не оскорбит ли участника дискуссии написанное.
Обычные правила хорошего тона, нармальные на любом форуме, в т.ч. и на РСДН.
Потом говорится, что Julia — это просто название ЯП, и у него нет пола.
Никакой "повестки" я тут не вижу.
Повестка — это когда говорится "мы топим за Х", где Х меньшинство, "потому что они недопредставлены в сообществе" и проч.
Там подобного нет.
Здравствуйте, MaximVK, Вы писали:
MVK>Да, тут ты прав. Я использую пока для домашних проектов. Время от времени приходится писать какого-нибудь клиента, который уже есть для Питона (Binance, ClickHouse REST client). Но в целом, если есть код для Питона, то переписать его под Julia больших проблем нет. А вот для рабочих проектов — это да, проблема. Мы уже так в скалу поиграли
На сколько я понял — хоть на оффсайте написано более общо и общеупотребительно — основная цель создания Julia в том, чтобы заменить множество до сих пор используемых для научных и околонаучных вычислений ЯП (Fortran, Matlab, R, Python, C, C++) одним ЯП, который был бы лишен ограничений данных языков, но обладал достоинствами оных, также включая новые фичи.
Т.е.:
— код компилируется динамически при помощи LLVM, и оптимален по производительности, сравномо с Fortran/C
— Но явно его компилировать не надо, и для пользователя он интерпретируемый с динамической типизацией, как Python и Matlab
— Поддерживаются блокноты, как в Python
— Но нет GIL, как в Python
— Поддерживаются алгебраические типы данных, полноценные лямбды
— Поддерживается параллелизм из коробки, с корутинами и GPU
— Есть встроенный менеджер пакетов
— Бесплатный и открытый, в отличие от Matlab и Mathematica.
Если нет такой задачи что-то вычислять, то и выгоды от использования Julia может и не быть.
Здравствуйте, MaximVK, Вы писали:
MVK>Привет,
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia.
Мы использовали для написания HFT trading system. Вся бизнес логика на julia, trading framework, api с++
Tick to Trade < 2us 99% (это включает в себя framework + Julia logic)
Клевый язык. Все очень удобно. Интеграция с С++ на ура (memory layouts mapping c++<->julia)
Ну и быстро все.
Ну и вообще приятно на нем писать. Библиотек много, все что нужно есть в принципе.
Здравствуйте, MaximVK, Вы писали:
MVK>Кто использовал Julia в рабочих проектах? Очень хочется уйти с Питона в скриптовых и ML задачах, смотрю в сторону Julia.
Отличная числодробилка на внутреннем кластере получилась. В ML не зашло, там и библиотеки у питона обширнее и поддержка работы в облаках более взрослая.