Опубликован релиз языка программирования Julia 1.7, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT...Подробнее: https://www.opennet.me/opennews/art.shtml?num=56262
Прекрасный язык. Быстрый, современный, продуманный. Гораздо лучше помойного тормознутого Питона, который непонятно на каком основании влез в нишу BigData и DataScience.
На основании первого.
Первый язык для бигдаты конечно же кобол.
Cobol же для бизнеса, банки там итп. Научные вычисления только Фортран, там массивы правильно в памяти хранятся
Julia хранит матрицы в таком же формате как и Фортран - упаковка по колонке. И нумерация элементов с единицы.
Сейчас есть что-то проще питона для машинного обучения? Нет, потому бухтим и ждем замену питоняки.
> Сейчас есть что-то проще питона для машинного обучения?Julia?
серьезно? для машинного обучения? не неу можно конечно. но сколько будет камней по дороге ещё не известно.
Ну, по крайней мере в Julia нет различий между массивом для машинного обучения и массивом, как языковой конструкцией. Чего не скажешь о Python, где массив, как конструкция языка, для вектороной обработки совершенно не пригоден.
Самая главная проблема?
> Самая главная проблема?То, что проблемы производительности решаются написанием кода на C (как в numpy)? - Да!
А какие с ней проблемы в части математики? И, собственно, камни уже все известны. 3 года в проде. Скорее, галька, чем камни. А вот в питоне шаг вправо, шаг влево - непреступная скала. Когда упираешься в то, что за разумное время что-то конкретное обсчитаться не может.
ну там у нас есть nympy. хотя честно сказать не уверен, что сработает для всех . обсчет задач для ученых вполне. а вот где то еще не уверен. впрочем питон хорош как язык коротких и быстрых скриптов. когда задача не растягивается на длинное полотно. там еще имеются свои проблемы с потреблением памяти при таких больших прогах на питоне. так что не скажу что идеальный язык. но удобный точно. по крайней мере в коротких обсчетах формул. где требуется не долгая работа однотипных или меняющихся функций. в той же инженерке вполне работает на ура. а для таких программ с особой "комбайностью" я бы вообще посоветовал си и питон как обвязка сверху.
Короткие формулы легко пишутся на любом скриптовом языке. Но вот раскрыть вычислительную часть на питоне невозможно. На Julia - не проблема. Тех она для учёных и хороша. Начал с маленьких формул. Не хватило - дописал на ней же то, чего не было. И ни проблем с производительностью, ни проблем с контролем памяти.
Python применяет матметоды Numpy - к объектам Numpy (С, С++, Fortran). Julia быстрее не будет считатьь матрицы, резать строки, факторизовать итд. В лучшем случае она будет делать это так же. Но синтаксис её замудренее, и жаль, в остальном отличный ЯП. Но для DS ML - "универсальный клей" Python все же удобнее, слишком хорошо продуман синтакис, образцово.
Что тут обсуждать?.... Если мне надо обработать, допустим, зигзагами по диагоналям квадратной матрицы со стороной 10^6 на Julia я могу легко написать такой код. На питоне, конечно, написать могу. Но только результата выполнения не дождусь. Потому что numpy не имеет готовой функции, которая будет подобным образом обрабатывать матрицу. Да и с читаемостью питона - отдельный разговор.
Есть Tensorflow для С++.Ну, а /me гонял мышиное обручение на Матлабе и на R.
Питоняка спрашивал как ему нажать 2 кнопки, и чтобы стало красиво, а ты про программирование :)
> Питоняка спрашивал как ему нажать 2 кнопкиПрогресс.
Ну, кнопку "сделать шедевр" ведь так и не изобрели. Вот, может сделают две кнопки - "сделать" и "шедевр". :)
не пишу на питоне, но мне интересно следующее.вот есть задача описанная мат. моделью и математически подтвержденная 146%
когда эту задачу пропускаем через питон, на выходе получим тот же результат 146%? , там же синтаксис насколько знаю - шаг в лево, шаг в право и конечный результат может быть другим.Машинное зрение, обучение, биг дата - питону можно доверять? может он влиять на данные/алгоритмы, к тем результатам в которых нельзя ошибиться?
Можно доверять питону распознавание снимков на раковую опухоль у детей?
у детей, у взрослых. какая разница? обучение идет по определенному алгоритму. распознавание тоже.
1. как это всё зависит от языка программирования - для меня загадка. странные глюки - мы тут не столько отступов сделали - ну для этого тестирование есть.
2. если про качество результата - есть механизмы (статистические) контроля качества обучения. они или выполняются или нет. но опять же. это веротяностная оценка. т.е. система с определенной вероятностью делает правильный прогноз.
3. сертификация. опять же. васе недостаточно написать питонячий скриптик (и даже недостаточно его протестировать на паре картинок), чтобы его стали запускать на кластере рядом с томографом. там обычно очень много всякого между толпой васей и этим томографом в плане бюрократии.
4. любая подобная система, не работает 100% автономно. это система поддержки принятия решений для врача. и врач уже ставит или не ставит диагноз.
5. но... никто не застрахован от того, что в команду разрабтки наберут джунов из индии, контроль качества будет недостаточным (т.к. все равно же врач проверит), сертификация будет пройдена автоматически (т.к. поставщик является надежным много лет), а врач в конце цепочки окажется некомпетентным, т.к. на парах пил спирт и тискал будущих медсестер.
c'est la vie, и питон тут самый маленький риск )
если еще точнее - то в п.2 оценивается даже не процент правильных прогнозов, а процент неправильных. и соббсно минимизируется.
> Машинное зрение, обучение, биг дата - питону можно доверять?Нет, нельзя. Были же уже публикации химиков, где из-за ошибки в библиотеке питона исследования за несколько лет ушли в пустоту.
В астрономии питон, вроде бы, уже откровенно запрещён к использованию.
Ерунда полная. Ошибка библиотеки != ошибка языка.
А сколько ракет взорвалось и полетело не туда из-за сишечки и плюсов... ууу...
Может не будем кидаться в крайности?
Там нет "сишечки" и "плюсов".
Почитайте про техстек и автоматизацию в ОПК.
Большинство языков fortran-based, а все что управляет ориентацией снарядом в пространстве - работает в рил-тайм и писано на ассемблере. Да там есть обвязки Сишные, что в QNX, что в VxWorks, но ассемблер задран сильно выше уровня аппаратной абстракции, вплоть до логики и ещё выше по стеку.
Ошибка в программе на С != ошибка языка. Питон не нужен.
Вопрос то про технологию был. Нафиг такой язык, где невозможно нормально отладить и проверить код. Пусть этим питоном в школах балуются. В науке ему не место.
> Вопрос то про технологию был. Нафиг такой язык, где невозможно нормально отладить
> и проверить код. Пусть этим питоном в школах балуются. В науке
> ему не место.Не надо плохому в школе учить, а то в результате это дерьмо потом в науку потянут...
По поводу астрономии ссылки есть какие-нибудь?Ошибка в библиотеке, строго говоря, не значит ничего в плане качества языка.
Ты плуг в коде ошибку сделал, а виноват питон? Ты когда пальчик кухонным ножом порежешь кто виноват? Нож или твои кривые руки?
> Ты плуг в коде ошибку сделал, а виноват питон? Ты когда пальчик
> кухонным ножом порежешь кто виноват? Нож или твои кривые руки?Незабудь пожалуйста оставить этот комент, когда найдут очередную ошибку в цешной проге и растоманы с питонистами начнут ныть про безопасность языка.
Для меня все ЯП, фреймворки и тд лишь инструменты для разных задач. Что-то юзаю, о чём-то могу и не знать. И отношение к ним одинаковое. Те кто топит за одно и втупую обсирает другое(попеннет переполнен этой категорией больных) мне по-определению чужды ибо идиоты. Я одинаково презираю тех кто форсит за си или за раст или ещё за что-то и гадит другие технологии. Все вы плуги патологические. Сайонара.
Особенность большинства ПО на Питоне отсутстие обработки ошибок. Ну что может пойти не так?
Портянки маловменяемых сообщений о том, что конкретно трет яйца и почему , никому не нужны, нужно надёжное ПО. Но как бы не был прост Питон, хорошего не нем написано как то мало.Но это скорее проблема, когда непрофессионалы пытаются делать что то крупное или хитрое на Питоне, причем ВЕРЯ в стабильность библиотек, многие из которых ужасны.
Это не плохо. Всегда надо стремиться к большему. Плохо только пяткой в грудь бить, и не слушать замечаний.
80% всех ML-проектов в медицине написаны на Python, он основной язык в DL-платформах/фреймворках. Вот эти все самые про чтение КТи рентгеновских снимков - везде удав. Аж тошнит иногда от него.
Медицинский софт очень часто ещё и под только виндовс. Это отдельный весьма странный мир со странными клиентами и странными программистами....
>(; a, b) = xэто особенно прекрасно) гораздо нагляднее чем a, b = x.a, x.b
питон хорош для учёных, что-то делает, но мало шансов проверить или переделать другими студентами
Что ты несешь?
> питон хорош для учёных, что-то делает, но мало шансов проверить или переделать
> другими студентамискрипт питона не переделать? а ты случаем не перепутал с чистым бинарем? и то можно влезть и поправить. хотя кто сейчас hex редакторы видел)))
черт возьми питонячий скрипт простым блокнотом в винте или любым текстовиком в лине можно открыть и посмотреть. парень ты наверно питон только в ютубе видел?))
питон - язык для непрограммистов (в данном случае ученых). На нем можно писать исключительно write-only код, но это не проблема, т. к. питон нужен для одноразовых скриптов: накидал со стековерфлоу сниппеты, запустил, скопировал вывод скрипта в буфер обмена, удалил через Shift-Delete скриптец нахрен мимо корзины, а содержимое буфера вставляешь в курсовую. Вот это прямое назначение питона.
Питон - это полноценный язык программирования. Просто твоё больное сознание низвело его до уровня скрипта.
Уж кому питон не нужен, так это учёным. Питон успели запихнуть в учебные планы университетов, поэтому несколько лет у него ещё есть. Но сейчас Джулию потихоньку ставят базовым ЯП. Студенты подрастут, питона больше не будет.
>Студенты подрастут, питона больше не будет.Питон - это профессиональный язык программирования. Просто твоё больное сознание низвело его до уровня учёбного языка.
Повторяй эту мантру почаще
> Питон - это профессиональный языкОдна проблема - нет такой области, где он был бы нужен и не создавал бы проблемы. То, что студенты его пытаются пихать куда ни попадя его не делает профессиональным.
Единственный нормальный питон.
От синтаксиса питона у Julia, к счастью, только list comprehension. Остальное - нормальное.
>нормальное
Нормальное?
Питон хоть автономный, а Julia гвоздями к LLVM приколочена.
Убьёт Python?
Нет как и тайпскрипт ничего не сделает с джаваскрипт, например.
Не убьет. У Julia выше порог вхождения, плюс это не ООП в привычном понимании.
А большинство людей даже ООП понимают на уровне "штука, чтобы делать окошки и кнопочки".Конечно, почитавши документацию языка и описание фич, можно найти это довольно привлекательным.
Собираюсь на досуге углубиться в эту тему.
> У Julia выше порог вхожденияу неё синтаксис проще питона. Каких-то нерегулярностей языка типа один стиль для numpy, другой для циклов, третий для cython, у неё тоже нет. Просто пока ещё не пишут о ней на каждом заборе, но она реально проще для освоения.
Так он ещё не углублялся, тяжео с дивана встать.
>> У Julia выше порог вхождения
> у неё синтаксис проще питона... она реально проще для освоения.Поприятнее. Но работа с файлами и там и там брайнфак подобна.
Если с помощью сторонних библиотек файл не переварить, изящным способом, то как для любителей Питона, приходится использовать конвертеры фалов...
https://www.juliafordatascience.com/cheat-sheets/
Вот, за это спасибо, схоронил.
MATLAB–Python–Julia cheatsheet
https://cheatsheets.quantecon.org/
>Убьёт Python?Только после того, как Rust убъёт C.
То есть скоро. Спасибо за точный прогноз.
Ну то есть тыЩЩа-другая лет у нас есть легко? Спасибо :)
> поэтому этот формат действительно встречается в дикой природе, и кажется безвредным его приниматьНе всё, что встречается в дикой природе - можно безвредно принимать. Хотя, если в меру, то можно
Очередной велосипед.
Массачусетский технологический институт (December 2011).
Ты наверное родился позже, а теперь ревнуешь, что не тебя назвали Юлей.
Как дата влияет на велосипед?
Велосипед от MIT - уже не велосипед что ли?
В колесах меньше углов.
То что быстрый - хорошо. То что оброс спецсимволами - плохо.Читабельность кода - особо важна в DataScience, т.к. тут код перечитывается не 8 раз, а все 20, причем не-программистами. И отвест
Python никуда не лез, его взяли на вооружением сами DS-ты именно за читаемость. А что до скорости - Numpy быстр, быстрее Pandas и так ничего нет.
Немного не так. Взяли то, что попалось под рукой. А потом обрасло библиотеками, а переписывать лень.
>динамическая типизация
>производительность близкая к программам на языке Си( ͡° ͜ʖ ͡°)
У неё не простая динамическая типизация. Она под каждый тип аргументов создаёт свои методы функций и компилирует их. Второй вызов будет использовать уже готовый откомпилированный код.
> У неё не простая динамическая типизация. Она под каждый тип аргументов создаёт
> свои методы функций и компилирует их. Второй вызов будет использовать уже
> готовый откомпилированный код.А в огороде бузина ...
Адепты Джулии считают, что изобрели (нет) tracing/method JIT, который "почти совсем как самая настоящая компиляция" (нет) и сводит на нет (тоже нет) все недостатки динамической типизации ...
Разве это не стандартная оптимизация при JIT?
(которая не всегда применима)
> стандартная оптимизация при JIT?Стандартная для чего? Каждый язык с динамической типизацией по-своему это понимает. В явном виде множественные методы - это фишка Джулии.
>>динамическая типизация
>>производительность близкая к программам на языке Симожно писать без указания типов, может даже будет и быстро (если компилятор сможет догадаться), если не сможет, то медленно
можно с указанием типов, тогда быстро всегда
но допустимо написать и так (но лучше не нужно)
julia> function unstable(flag::Bool)
if flag
return 1
else
return 1.0
end
end
unstable (generic function with 1 method)Не надо было бы им динамику вообще делать, но вот все питонистов заманивать хотят.
Вообще у них что из матлаба взято, то ничего, а остальное похуже.
А почему именно Юля, а не Марина или Ольга, например?
Языки с женскими именами всегда красивые. Ada, Ruby.... Марина же будет вызывать нехорошие военно-морские ассоциации. Ольга - что-то непонятное и сложно произносимое.
Но ведь и Джулия может вызвать нехорошие геноцидные ассоциации с Юлием Цезарем, например.
Предоставьте письменные заявления от пострадавших от Цезаря... А вот странности восприятия marine и olga у англоговорящих будут точно.... Я бы, например, не хотел пользоваться языком RHBZ, VDV или VMF или SVR....
>Предоставьте письменные заявления от пострадавших от Цезаря...Получается и Чингиз Хан душкой был. Я верно понял правила игры?
Согласно ангосакскому сознанию, он был дикарём и к римскому праву отношения не имел.
А кого волнует сознание англосаксонских дикарей?
Марина (особенно субмарина) -- это великолепно, прекрасно, величественно!
А то что, у кого-то там какие-то комплексы -- ну так это их проблемы. Таблеточки надо вовремя принимать.
Свидетельств против Юлия Цезаря более чем достаточно http://cyclowiki.org/wiki/%D0%A3%D1%87... и среди пострадавших даже тогда было много юристов!
> Свидетельств против Юлия Цезаря более чем достаточноНу вот когда они подадут иск в суд в части задевания их чувств из-за использовании названия ЯП Julia, тогда и поговорим.
Слава Богу, что не в честь песни группы А-Studio или не в честь марки кофе.
Lisa
Чтоб ты спросил.
вобще-то, язык назван в честь французского математика Гастона Мориса Жюлиа (Gaston Maurice Julia).
Даёшь больше закорючек в тексте программ, а то brainfuck поднадоел. Есть у меня такая прога, всем же код понятен?
!{_}!#.$!@/#$*(_#!$%,/^$%^*(_&%?#^*^(*(_)(_)))+.
Это к математикам. У них много непонятных символов. Julia просто их позволяет оттуда использовать один в один. Символ радикала, надеюсь, не надо объяснять?
Не совсем. Подробнее
> Даёшь больше закорючек в тексте программ, а то brainfuck поднадоел. Есть у
> меня такая прога, всем же код понятен?
> !{_}!#.$!@/#$*(_#!$%,/^$%^*(_&%?#^*^(*(_)(_)))+.ты че у меня питонячьи регулярки спер?)))) шутка, но такое на питоне видел. не сразу просек что делает. в питоне такое тож можно в легкую. но это все равно будет обернуто в что то более понятное. вот перл....... там есть асы покруче))
Давно уже пора на эмоджи в программировании переходить. Эти ваши архаичные смайлики отстали от жизни.
Давно уже можно использовать то что кому нравится, а не полыхать по любой фигне.
Ну чего вы, вот например плоты,using Plots
x = 1:10; y = rand(10); # These are the plotting data
plot(x, y)оп и красота и свестит и пердит
http://docs.juliaplots.org/latest/tutorial/точказапятая есть, что еще надо ?
https://makie.juliaplots.org/stable/ поживее. А https://juliagraphics.github.io/Luxor.jl/stable/example/more.../ красивше.
ну и нафиг оно кому надо ? домики сердечки рисовать
Рисовать exp(-((x-4)^2+(y-4)^2)^2/1000) + exp(-((x+4)^2+(y+4)^2)^2/1000) + 0.1exp(-((x+4)^2+(y+4)^2)^2)+0.1exp(-((x-4)^2+(y-4)^2)^2)
Так не рисуй. Тебя чё, заставляет кто-то? Психопат ёпт🤣
А с другой стороны:> Julia is dynamically typed, feels like a scripting language,
acc = Atomic{Int64}(0)
Прям вот ощущаю теплоту и ламповость скриты.
Плюсы закончились на точказапятой.
А с другой стороны вот естьusing Mmap
A = rand(1:20, 5, 30)
s = open("/tmp/mmap.bin", "w+")
# We'll write the dimensions of the array as the first two Ints in the file
write(s, size(A,1))
write(s, size(A,2))
# Now write the data
write(s, A)
close(s)# Test by reading it back in
s = open("/tmp/mmap.bin") # default is read-only
m = read(s, Int)
n = read(s, Int)
A2 = mmap(s, Matrix{Int}, (m,n))
Но тут вот чем дальше тем больше покидает ощущение нужности этой штуковины
using JLD
A = rand(1:20, 5, 30)
save("myfile.jld", "arr", A)
A = load(myfile.jld", "arr")
JLD2 в чисто джулийной реализации, а не JLD. А так, ещё можно BSON.jl, Blosc.jl, Parquet.jl и пр. из https://github.com/orgs/JuliaIO/repositories... Или даже обёртку для версионности https://juliadynamics.github.io/DrWatson.jl/dev/real_world/
опеннетные пользователи жульки - обычные жс нпм,карго усеры качающие всеподряд и не разбирающиеся в самом языке. чувак же цепочку нужности типов(усложненных) пытался развернуть.
И конкурсы у них тоже интересные...
Для импортозамещения Julia не пойдет. Да и платный он.
Так что Python & Fortran & C++ - наше фсё.
Юлия подойдёт ;)
> Да и платный он.Кто платный? Julia под MIT лицензией. Julia Computing предоставляет платную поддержку и своих программеров для консультации. Но не требует платить за использование.
Своё пиши для импортозамещения, а не воруй как привык.
Какой-то он шляпный. И куда с этой Julia? Не прокормишься. PHP наше всё)
Если кормиться в вебе, то лучше Ruby или Go. На Julia сейчас либо исследовательские проекты, где денег мало. Либо там, где деньги вообще не считают, но уже не в России. Впрочем, интерес к ней растёт. Недавно для singularity.net искали программистов именно на Julia.
Так Ruby вроде умер или всё же жив? А что по Go?
> Так Ruby вроде умер или всё же жив?Зарплаты на нём не снижаются. Интерес со стороны заказчиков опять появляется.
> А что по Go?
Переносить логику, которая должна быть быстрой. Для тех, кому Java и Rust не нравятся.