Pull to refresh

Comments 19

outptmtrx = triangle * T
следует заменить на
 outptmtrx = inptmtrx * T

В 1.0.0 spy пока работает только у Gadfly и то в бета
using Pkg
pkg"add Compose#master"
pkg"add Gadfly#master"
using Gadfly
spy(ones(33)*sin.(0:(pi/16):2pi)' + cos.(0:(pi/16):2pi)*ones(33)')
Шестилетняя бета наконец-таки закончилась, так что теперь можно не бояться изменений синтаксиса. И пока все спорят, хорошо или плохо начинать индексацию с единицы, взбудораженное сообщество активно закопошилось: выходят новые библиотеки, старые обновляются, стартуют серьёзные проекты.

Можно пару примеров серьёзных проектов на Julia? Я наблюдал за этим языком года 4, и мне всё время казалось, что это чисто академический проект и никто не использует его в production. Если сравнить популярность Julia и Rust, то Rust за эти годы достиг гораздо больше популярности и признания и рассматривается уже как серьёзный конкурент C++. А Julia как будто не нашла свою нишу для реального применения, хотя позиционируется как быстрый и эффективный язык для параллельных вычислений, научного и инженерного применения. Если я не прав и у Джулии всё хорошо, буду только рад за них. :)

Если сравнить популярность Julia и Rust, то Rust за эти годы достиг гораздо больше популярности и признания и рассматривается уже как серьёзный конкурент C++.

Как бы Вы сравниваете несравнимое. Julia всё-таки сильно нишевой язык. Причём в достаточно консервативной области. Он просто не может расти теми же темпами что Rust! Мне кажется уже тот факт, что Julia признана на kaggle говорит о её успехе! Насчет серьёзных проектов не знаю. Но количество доступных пакетов уже радует. Причем растёт. Вобщем на мой взгляд язык очень перспективный.

А как на счет инструментария? IDE, интерактивный отладчик, рефакторинги, автодополнение, language server? Видел на гитхабе разные пакеты, но официальной поддержки со стороны команды разработчиков языка всего этого нет? Juno IDE выглядит очень сыро (на полноценную IDE не тянет) и он, как я понял, на основе Atom, значит будет тормозить всегда и везде.

Есть на проект IDE на eclipse. Правда не знаю живой ли, интересовался этим давно. Есть на vs code. Но практика показывает, что наличие совсем уж крутых IDE народ обычно не останавливает. Я вон на яве в своё время начинал писать черт знает на чём. И ничего, потом всё появилось. Сейчас наверное вообще самый обеспеченный инструментарием язык. Так что не всё так плохо. Главное выкатили более не менее стабильную версию. Сейчас подтянут к ней пакеты, и тогда уже можно будет смотреть на дальнейшее.
А ещё в Julia можно использовать библиотеки С и Fortran. И эта возможность доступна, как говорят, «из коробки» (https://docs.julialang.org/en/v1/manual/calling-c-and-fortran-code/).
Народ, не знаю, может кто меня поправит, но такое впечатление, что версия 1.01 (которую я сейчас поставил), стала значительно сильнее тормозить при компиляции. До того последнее с чем игрался была 0.5. Сейчас разбираться с этим особо некогда (рабочие языки в проекте verilog, java и С++), так, сел немного отвлечься и поиграться. Но в будущем планирую плотненько на джулию присесть.
И ещё, вопрос к автору. Пробовал Ваши примеры с графикой. На spy(W1, title = «x xor y is prime?») ругается. Говорит нет такого метода. Опять же в доках не разбирался, но Вы в аргументах ничего не напутали?
Если про Juno, то да он довольно тормознутый. Еще довольно длительны закачка или подключение больших пакетов, поэтому, если хочется скорости, то лучше выполнять код в REPL, например загрузку пакетов. И на счет отсутствующих методов — как сказано в начале статьи, нужно скачать или обновить пакет Plots или какой-нибудь другой из перечисленных пакетов, spy у них всех работает одинаково. В качестве альтернативы можно еще попробовать Gaston
 ]add Gaston
using Gaston
...
imagesc(W1) # эквивалентно spy
Да нет, я всё делаю в jupyter. Нравится мне он. Тормозит именно при компиляции. Пробовал код перезапускать — всё летает, как и должно быть. Впрочем возможен вариант, что у меня система просто уходила в своп. Довольно много всего открыто, а джулия отожрала полтора гигабайта оперативки. Надо будет попытаться поиграться на свежезагруженной.

Насчёт spy. Всё проверил ещё раз. Не работает. В пакете Plots оно присутствует. Но очевидно не нравятся аргументы. Самое паршивое, по "?" не находится документация. Ругается вот так:
p1 = spy(W1, title = «x % y is prime?»)
— MethodError: no method matching findnz(::Array{Bool,2})
Closest candidates are:
findnz(!Matched::SparseArrays.SparseMatrixCSC{Tv,Ti}) where {Tv, Ti} at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/SparseArrays/src/sparsematrix.jl:1337
findnz(!Matched::SparseArrays.SparseVector{Tv,Ti}) where {Tv, Ti} at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/SparseArrays/src/sparsevector.jl:723

Stacktrace:
[1] macro expansion at /home/eugenk/.julia/packages/Plots/7o1Vu/src/recipes.jl:1034 [inlined]
[2] apply_recipe(::Dict{Symbol,Any}, ::Type{Val{:spy}}, ::UnitRange{Int64}, ::UnitRange{Int64}, ::Surface{Array{Bool,2}}) at /home/eugenk/.julia/packages/RecipesBase/Uz5AO/src/RecipesBase.jl:275
[3] _process_seriesrecipe(::Plots.Plot{Plots.PlotlyJSBackend}, ::Dict{Symbol,Any}) at /home/eugenk/.julia/packages/Plots/7o1Vu/src/pipeline.jl:408
[4] macro expansion at ./logging.jl:320 [inlined]
[5] _plot!(::Plots.Plot{Plots.PlotlyJSBackend}, ::Dict{Symbol,Any}, ::Tuple{Plots.Spy}) at /home/eugenk/.julia/packages/Plots/7o1Vu/src/plot.jl:171
[6] #plot#132(::Base.Iterators.Pairs{Symbol,String,Tuple{Symbol},NamedTuple{(:title,),Tuple{String}}}, ::Function, ::Plots.Spy) at /home/eugenk/.julia/packages/Plots/7o1Vu/src/plot.jl:57
[7] #plot at ./none:0 [inlined]
[8] #spy#208 at /home/eugenk/.julia/packages/RecipesBase/Uz5AO/src/RecipesBase.jl:350 [inlined]
[9] (::getfield(Plots, Symbol("#kw##spy")))(::NamedTuple{(:title,),Tuple{String}}, ::typeof(spy), ::Array{Bool,2}) at ./none:0
[10] top-level scope at In[19]:1
Честно признаюсь. Не смотрел. Просто сейчас совсем другие дела, а джулия у меня отложена на некое счастливое будущее. Но за ссылку огромное спасибо. Вобщем как я и думал. Выкатили новую версию, но библиотек к ней пока не подогнали. Считаю что рассматривать это как недостаток не стоит. Просто болезнь роста, не более.
P.S. Автору. Ещё один баг. Нет функции linspace(Ваш пример с 3D-графиком на Makie). Она есть в документации по 0.6.2, но в доках 1.0.1 её нет. Похоже уже убрали. Наверно что-то с версиями напутано. Потому и spy у меня не работает. Вы откуда джулию брали? Я несколько часов назад ставил с julialang.org/downloads (Generic Linux Binaries for x86 64-bit). У Вас похоже что-то более старое. В принципе этого и следовало ожидать. Недавно обновились. Пакеты ещё не стабильны. Это жизнь :))
У меня был юпитер от juliapro 0.6.4, все проги набил еще тогда. А потом я старый юпитер поженил с джулией 1.0.1, перекачав все пакеты. Сейчас запустил в Repl (julia 1.0.1) — spy и всё остальное работает, значит проблема в дружбе юпитера с графическими пакетами. Нда уж, с пакетами действительно придется ждать, пока их до конца перенесут на новую версию. Да и юпитер в анаконде весит много, так что меня расстроило его исключение из Джулия про. В общем со свежатиной всегда нужно быть готовым напарываться на такие ошибки, лишь бы энтузиазм не отбило
У меня был юпитер от juliapro 0.6.4, все проги набил еще тогда. А потом я старый юпитер поженил с джулией 1.0.1, перекачав все пакеты.

Тогда как говорится суду всё ясно, можно расстреливать :)))
У Вас скорее всего в юпитере запускается всё та же 0.6.4. Я у себя джулию снёс полностью, включая каталог ~/.julia и поставил 1.0.1 начисто. Во всяком случае если у Вас нормально вызывается linspace, то это точно не 1.0.1. Можете глянуть и убедиться docs.julialang.org/en/v1/base/arrays linspace там нет.
Вобщем-то я к этому отношусь спокойно. Такие вещи неизбежны. Для меня гораздо важнее, что с джулией я не связан по рукам и ногам библиотеками (как с питоном и numpy к примеру).
Да нет, в моём юпитер вполне создаются Notebook Julia 1.0.1, а на счет Макие, примеры с их сайта, а на 1.0.1 качается но не запускается. Пока для себя решил пользовать базовые возможности, а для всяких наворотов придется ждать

Некоторое время назад ходили разговоры об утечках памяти в Julia. Что с этим сейчас?


Так вроде даже Tensorflow обернули.

Sign up to leave a comment.

Articles