Sounds like a good business idea
Someone should just rewrite Matlab in Julia
I wouldnât be entirely surprised to learn Mathworks was working on it
Iâm not sure thatâs the case. Matlabâs performance has improved markedly over the past five years. Theyâve also been hiring LLVM compiler experts (looks like they have two openings right now, in fact). I believe theyâve even specifically targeted the performance of some of our microbenchmarks. I attribute at least some of this to my impression that theyâre feeling the heat from Julia.
So while Matlab users may not be able to thank Julia for a reduction in cost, I do think Julia is indirectly responsible for Matlab getting faster.
Iâm pretty sure it is.
The main virtues I appreciate in MATLAB are not as polished in Julia.
Julia is superior language.
Yet it is still not a superior development environment for the classic use case of MATLAB.
@ChrisRackauckas,
I totally agree with you. The minute I hear someone says âCompile from source yourselfâŚâ Iâm losing any interest. This is the model of Linux users and there is a reason it only has ~5% in the desktop world. People donât want this experience from their tools.
The workflow and the user experience are very important. Currently, in my use case, they are more important then better performance. The nice thing as a MATLAB user is MATLAB getting better and better ta this as well.
@mbauman, Knowing some people who are after this.
The vast improvement in MATLAB isnât because of Julia, it is because the world has made a vast improvement in JIT (I guess revolution started with Googleâs v8).
Iâd also more than assume MATLAB wants to keep this as an advantage compared to Python.
Clearly I donât know whatâs happening inside the board rooms at The Mathworks. This is just my reading of the tea leaves. Iâll also note that the student pricing at my university decreased from $15/year to free over the past five years and that Mathworks has sent employees to JuliaCon. Again, not evidence of Julia being a threat, but take it as you will.
I could do this on my first days with Julia (and python). Yet on Matlab i canât understand most of the code.
True story , Iâve recently been trying to reverse engineer some matlab code from a book and itâs not at all intuitive. working code and yet iâm having a terrible time understanding how the syntax relates to what itâs doing.
also too, automatic extension of arrays is an AWFUL thing. talk about the potential for bugs.
for me the main hang-up is still the julia start-up time(I apologize for bringing this up). I have been in the position of demonstrating results real-time and a 5-8 second pause before anything happens is a bit annoying.
I donâ think thatâs the language so much as the toolboxes that are available. if you are doing DSP work there is very sophisticated functionality available. at a price, of course. but in big business the price is not a problem. well unless you start multiplying it by 50x or 100x, then itâs not so trivial.
I doubt this seriously. the installed base in industry is just huge for matlab. more likely they simply see juliaâs JIT/LLVM stuff as a good idea and are trying to figure out how useful it might be to their product.
however I could see them being a little worried about the academia market. remember they, like a lot of technology software companies use the drug dealer model, get them hooked in school for free so that they are asking for it when they are employed. or, even better, so that putting âmatlab experienceâ on your resume becomes important.
I was a contact point for mathworks to my employer for some time and so i was part of some expert talks (on both sides) about âHow can we make your MATLAB experience even better?â. To me it sounded (~2012) like they already had started to go into the JIT/LLVM direction. At least they were aware of âotherâ JIT projects and the first time i mentioned julia (~2013) they were not surprised. In my and a lot of othersâ opinions julia has the potential to grow in a matlab dominated field.
But.
As long, as i still can measure
julia> using Plots
julia> gr()
Plots.GRBackend()
julia> @time plot(rand(800,2))
19.060756 seconds (44.71 M allocations: 2.171 GiB, 7.39% gc time)
i donât really see julia (in the current form) as competitor (and the 19s isnât even the full waiting time, it takes another 7s for the window to display).
In the long run, the pay-to-use/ closed source software business model fails in the most technologically advanced sectors. At least in free societies.
for me, Julia is better than Matlab because it is an exciting adventure, with free opportunities awaiting to think of completely new ways of doing things that werenât possible before, the performance or speed is not the selling point for me, rather it is my preference for the collective cooperative language design
A pretty awesome package for system identification in Julia just got tagged:
And you can see and learn how it works internally, difficult with Matlab tools that have a nice GUI, but you donât know what is happening behind the scene.
In Matlab
tic
plot(rand(800,2))
toc
Elapsed time is 3.384138 seconds.
In Julia
julia> gr()
Plots.GRBackend()
julia> @time plot(rand(800,2))
19.639205 seconds (46.48 M allocations: 2.267 GiB, 7.05% gc time)
But why plot.jl running so slow??
If we rewritten Matlab in Julia, how can we use Matlab complex build-in function?
Another open resource Octave, Octave
I shouldnât do this, itâs really off-topic, butâŚ
julia> using GR
julia> @time plot(rand(800,2))
qt5ct: using qt5ct plugin
4.781961 seconds (10.73 M allocations: 541.670 MiB, 5.03% gc time)
julia>
I hate to say this, but donât use plot. use the backend you want to use directly.
Some packages are just terrible for start-up time and plot is one of them, and has been for some timeâŚ
It is running quite fast, but for the first time it is compiled, which takes time. This has been discussed at length, please search the forum archives. Also, note that compilation times improved markedly for what will be v1.2 (but I didnât benchmark Plots.jl).
I donât think @anon67531922 meant this comment seriously â it was a joke. That said, there have been various libraries in the initial history of Julia that tried to provide Matlab-like library functions, but AFAIK all are abandonned in the practical sense. I think the consensus may be that the benefits of having a consistent, modular, idiomatic API in Julia that is worth the transition cost.
could you elaborate on this? I have not seen any discussions on compile time improvements and thus it would be great if you could point to the relevant discussions.
julia> using PyPlot
julia> @time plot(rand(800,2))
1.166039 seconds (1.54 M allocations: 77.209 MiB, 2.12% gc time)
2-element Array{PyCall.PyObject,1}:
PyObject <matplotlib.lines.Line2D object at 0x13ca47a90>
PyObject <matplotlib.lines.Line2D object at 0x13ca47be0>
julia>
just donât use Plots if you care for immediate plotting. PyPlot is a high quality plotting package that uses the famous Python package Matplotlib.
Time to first plot has indeed been discussed at length in this forum.
But generally, some reasons, why I think Matlab has still a strong presence in technical computing, has been posted some time ago in a similar thread about the Designated Target Audience of Julia.
https://discourse.julialang.org/t/designated-target-audience-of-julia-1-0/11804
Is Julia a direct competitor to Matlab and should Matlab be scared? In some areas, yes.
However, I see python/scipy/matplotlib and octave as more direct competitors to the common use case of base Matlab. And there the foss equivalents are a viable alternative.
What is often omitted in discussions, important functionality is fully or partly missing in all the contenders:
- For industry use Simulink is really important (automotive, telecom and aviation). There is simply no equivalent in Python, Julia, R or Octave. Similar for toolboxes targeting real-time systems or formal code verification.
- Tight integration with leading commercial software packages (e.g. LabView, Comsol etc)
- Comprehensive and consistent documentation with example code for all functions
- A beginner friendly, just working out-of-the-box, tightly integrated environment(ide/debugger/profiler)
your link points to : âSorry, you donât have access to that topic!â
Thanks, I corrected the link.