A Matlab Programmer's Take On Julia
2pif.info
2pif.info
https://groups.google.com/forum/?fromgroups#!searchin/julia-...
There is already an emacs mode for Julia: https://github.com/JuliaLang/julia/blob/master/contrib/julia...
I was not aware RStudio was web-based. News to me...
Regarding IDEs: I guess it's a matter of taste. I don't like IDEs, but I wouldn't mind using one as long as it allowed me to code in my editor of choice.
Plotting: I decided to scratch my own itch, and created Gaston, a gnuplot interface. It already offers quite a bit of functionality. It's available at https://bitbucket.org/mbaz/gaston/
nargin vs length: this is something I overlooked when I wrote the article.
I will post a new article with the perspective and knowledge that working on Gaston has given me. I already know what the conclusion will be: julia stands a very good chance of becoming the new standard language for technical computing.
The main reason being that the single most valuable part of Matlab, for me, is its amazing IDE. I've seen a lot of people caught up in debates about languages, obsessing about this feature or that one but it is much more rare to see people argue about the IDE, as if it was merely an afterthought. I find this article guilty of the same crime. The author also dismisses Matlab because a statement with no semicolon prints its result (something I take advantage of often) and other small issues , but there is no mention of everything else you lose when going to Octave. Really?
Maybe I'm spoiled, but I now can't live without seeing all my variables and their size, types and values listed, my ability to quickly execute blocks of code at random, jump around all files, super fast and flexible visualizations, great debugger, profiler, docs at fingertips, etc etc etc all integrated into a single package that just works out of the box. It's development on steroids and I've never seen anything that lets me code faster. I feel sorry for people who code in vim.
I actually see the matrix edge cases as pretty interesting - while they don't reflect the way I'd try to code things, they probably reflect the way someone codes things, and I imagine that their behavior is either due to a nasty implementation detail or oversight by the Julia core team. Either way, it's good to hash this stuff out now.
Is it for the sake of having persistent server sessions that don't go away when you close your client? That could easily be done, and has been done, without resorting to using a web browser. I admit that Emacs with Slime is not a paragon of simplicity and reliability, but I suspect it would be easier to recreate the convenience and polish of a web UI in an independent client (possibly based on a hacked version of Chrome or Firefox, if you really, really like your browser) than it would be to turn a text box into a decent code editor.
Cloud9 IDE is already a decent browser-based code editor. It's already better than the MATLAB editor in just about every way but integration with the interpreter. Using a browser-based IDE will solve both the cross-platform UI issue and the remote access issue.
> Furthermore, in Julia the varargs tuple x will have to be
> processed without the convenience of Matlab's nargin
> function.
I genuinely don't get that. nargin is equivalent to length(x) in this scenario, and Julia's overall handling of default/variable arguments seems significantly more convenient than MATLAB's if nargin < 5
foo = 21;
end
preambles. (s,z,zz) = spectrum(x);
but I end up with variables z and zz that clutter the workspace and take up memory.This is easy to fix with a bit of additional syntax. Using a placeholder to indicate values you don't care about, that would be:
(s,_,_) = spectrum(x);
I don't know if it's simple on the implementation side, but it's easy to read and understand.This is something I'd miss. I use R sometimes only because it's plotting features are so fantastic.
Julia has a stub-free FFI; you don't have to write anything to interface with C. trivial to add your favorite 2D graphics library.
P.S. Don't people know how to interface with Gnuplot?