3 ms·
I've been giving Julia a shot lately because I really like MATLAB syntax and IJulia is awesome for analysis reports. There are a few warts though: 1. I really
by Aleman360 12y ago
I've been giving Julia a shot lately because I really like MATLAB syntax and IJulia is awesome for analysis reports. There are a few warts though:
1. I really don't like how the entire standard library is included in the default namespace. I know this is how MATLAB does it, but my function names are constantly colliding with built-in ones.
2. The documentation is hard to navigate. I'm used to MSDN. Compared to that, providing huge pages of functions with a sentence or two of prose and no examples is not that helpful.
3. Plotting tools need work. Gadfly produces beautiful output but interactivity is weak (you can only zoom in on Y-axis) and it chokes when you tell it to plot a lot of data. It should downsample based on display resolution... I should be able to tell it to graph 100,000 points without crashing my browser.
- thorwwaay 12y ago> but my function names are constantly colliding with built-in ones I'm sure you know this, but the casual drive-by reader may not. Functions with the same name aren't a collision. The parameter types of your function and a builtin of the same name all have to match in order for there to be a collision. In julia "module" introduces a namespace: http://julia.readthedocs.org/en/latest/manual/modules/ http://julia.readthedocs.org/en/latest/manual/modules/
- StefanKarpinski 12y agoGlad you're enjoying Julia :-) > I really don't like how the entire standard library is included in the default namespace. I know this is how MATLAB does it, but my function names are constantly colliding with built-in ones. This may not be obvious, but if you don't use a name from the standard library, then you are free to use it yourself since bindings imported by `using` are done lazily. For example: julia> e = "some message" "some message" julia> Base.e e = 2.7182818284590... julia> println(e) some message julia> Base.e e = 2.7182818284590... On the other hand, if you don't assign to `e` then you can use the built-in definition of `e` like so (in a new session): julia> e e = 2.7182818284590... If you want to use both your own `e` and `Base.e` then you do need to qualify `Base.e` – but this is exactly the same in any other language – if you use the same name from two different namespaces, you have to qualify them. Making the standard library namespace smaller or more granular wouldn't help in any way. > The documentation is hard to navigate. I'm used to MSDN. Compared to that, providing huge pages of functions with a sentence or two of prose and no examples is not that helpful. I definitely agree that our documentation isn't up to the standards of Microsoft. Pull requests are always welcomed and are a lovely way to give back. Over time the documentation will get better – I suspect we're already doing fairly well given the age of the language. > Plotting tools need work. Gadfly produces beautiful output but interactivity is weak (you can only zoom in on Y-axis) and it chokes when you tell it to plot a lot of data. It should downsample based on display resolution... I should be able to tell it to graph 100,000 points without crashing my browser. I'm curious what plotting system does actually let you plot 100,000 points without choking. Automatic downsampling would certainly be a nice advanced feature, but the mature plotting systems I'm familiar with do not do this. For example, neither R nor matplotlib do. Is there some Microsoft plotting library that does?
- tadlan 12y agoBokeh for python does this
- StefanKarpinski 12y agoDefinitely a nice feature.
- unfamiliar 12y ago>I'm curious what plotting system does actually let you plot 100,000 points without choking. Datagraph for OS X handles ~1 million points without breaking a sweat, and it's an interactive GUI application.