Comments 19
outptmtrx = triangle * T
следует заменить на outptmtrx = inptmtrx * T
Шестилетняя бета наконец-таки закончилась, так что теперь можно не бояться изменений синтаксиса. И пока все спорят, хорошо или плохо начинать индексацию с единицы, взбудораженное сообщество активно закопошилось: выходят новые библиотеки, старые обновляются, стартуют серьёзные проекты.
Можно пару примеров серьёзных проектов на Julia? Я наблюдал за этим языком года 4, и мне всё время казалось, что это чисто академический проект и никто не использует его в production. Если сравнить популярность Julia и Rust, то Rust за эти годы достиг гораздо больше популярности и признания и рассматривается уже как серьёзный конкурент C++. А Julia как будто не нашла свою нишу для реального применения, хотя позиционируется как быстрый и эффективный язык для параллельных вычислений, научного и инженерного применения. Если я не прав и у Джулии всё хорошо, буду только рад за них. :)
Если сравнить популярность Julia и Rust, то Rust за эти годы достиг гораздо больше популярности и признания и рассматривается уже как серьёзный конкурент C++.
Как бы Вы сравниваете несравнимое. Julia всё-таки сильно нишевой язык. Причём в достаточно консервативной области. Он просто не может расти теми же темпами что Rust! Мне кажется уже тот факт, что Julia признана на kaggle говорит о её успехе! Насчет серьёзных проектов не знаю. Но количество доступных пакетов уже радует. Причем растёт. Вобщем на мой взгляд язык очень перспективный.
А как на счет инструментария? IDE, интерактивный отладчик, рефакторинги, автодополнение, language server? Видел на гитхабе разные пакеты, но официальной поддержки со стороны команды разработчиков языка всего этого нет? Juno IDE выглядит очень сыро (на полноценную IDE не тянет) и он, как я понял, на основе Atom, значит будет тормозить всегда и везде.
И ещё, вопрос к автору. Пробовал Ваши примеры с графикой. На spy(W1, title = «x xor y is prime?») ругается. Говорит нет такого метода. Опять же в доках не разбирался, но Вы в аргументах ничего не напутали?
]add Gaston
using Gaston
...
imagesc(W1) # эквивалентно spy
Насчёт 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
А так хотелось посмотреть :)
У меня был юпитер от 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 к примеру).
Некоторое время назад ходили разговоры об утечках памяти в Julia. Что с этим сейчас?
Так вроде даже Tensorflow обернули.
Графика в Julia. Странные паттерны, отражение треугольника от прямой и построение нормалей сферического кота в вакууме