I think there’s a lot to be said for the level of polish that years of development has given RStudio; just like with R’s library ecosystem, hitting every niche use case inherently takes a long time, even if we have all the day-to-day stuff.
I didn’t mean it as a jibe, but I can see that it could have seemed that way.
RStudio is a very neat, easy to use interface that pretty much works out of the box. Occasionally you may wish it was more configurable, but mostly it does the job. I think that would be the first thing one would miss: it works out of the box.
Juno is very neat. I had to check first to make sure we were talking about the same thing. I think of it as Atom. When I launch spotlight and type ‘Juno’ nothing happens, when I type ‘Atom’ I get atom-juno. So right away we have a marketing problem here.
Out of the box, Juno comes out all black, not very easy on the eye IMHO. I had to learn to configure it to select lighter colors (I’m not complaining, just describing a newbie experience).
The editor and console move all over the place, sometimes above, sometimes below, sometimes even split 3 or 4 ways. Not great when you’re a newbie. So before I get started using Juno, I typically spend 10 seconds organizing my windows. Perhaps there is a feature to “freeze” the windows, but I’m not that advanced yet.
The plots usually don’t work (whether it’s Plots, Gadfly or some other package I tried). When they do, they pop up in unexpected places.
I haven’t found an equivalent to View(df)
to view a dataframe named df
as if it were a spreadsheet: I’ve tried things like display(df)
which just spills the data into the console, if I remember correctly. I don’t see a conveniently located icon equivalent to RStudio’s View feature.
And lastly, I find execution in the console to lag. It is instantaneous in RStudio, but always takes a second or two in Juno. I realize this may be a problem with my setup, but I have never had problems with RStudio, which I’ve used on Windows/MacOS/Ubuntu.
All these other configurable things are certainly great and I look forward to the point where I can benefit from them.
It’s great to get this feedback from you, thanks for taking the time to describe your experience!
Undoubtedly there’ll be someone who would find a light theme hard on the eyes, so it’s a bit difficult to select a good default here
If you have found an arrangement you’re happy with, you can uncheck the Use Standard Layout
option in the julia-client settings. Atom should then remember the pane layout for the next start.
Yeah, Plots.jl integration is a bit wonky I think – we should definitely improve on that. Not sure what you mean with “pop up in unexpected places” though – the Juno plot pane should stay where it is.
There’s no spreadsheet data viewer in Juno yet; definitely something we should implement to make data exploration easier.
Does execution only lag when you’re evaluating something in the console for the first time? If so, then that’s just some delay of starting Julia and loading packages etc. If not, then something might be wrong; should you be interested in debugging this I’d be happy help you over at the Juno gitter.
True fact: professional Starcraft banned snow maps because light colored backgrounds were hurting the eyes of the progammers and cutting practice times.
Moral of the story: you should really be using a dark background in any text editor if you’re working all day. No editor for professionals should have a light default. I for one really really like the default Atom scheme, but obviously YMMV.
There was a time that they didn’t work well, but they should be very reliable (with Plots.jl), though I agree they jump around.
Thanks for taking the time to answer in full. I can relate to some of the issues but not all, which explains the difference in our perception
In fact the View
function is really great, but that is actually R itself, not RStudio (though RStudio intercepts the popup nicely and provides a tab instead). Would be awesome to have in Juno.
On the other hand, I’ve never had panes jumping around, Plots.jl (master) works perfectly in the plot pane with most backends on my machine, and I always use a black theme in RStudio and dislike the fact that it only applies to some of the tabs. I’m on Mac, I think Atom/Juno (you’re right about the branding thing - perhaps that will be resolved if JuliaPro becomes the standard) works better there than on windows.
I notice the console lag too, compared to RStudio - I think it is Juno.Render
that takes a little time to display objects, or Atom itself that is slow. Never more than a few hundred milliseconds, though.
Thanks for the feedback and fruitful discussion. Well I have tested Plots
again, and it did work. But it took over a minute to display a simple plot. I guess it’s related to overheads and compilation, which is great for advanced computational stuff, but a bit tedious for quick “back-of-the-envelope” usage.
It’s great to know that the medical profession backs Juno’s default layout.
I have selected “Atom Light” for the editor. I like it best. So far. But I’ll be open minded about the dark themes.
Thanks very much for the detailed feedback. I have not found the Use Standard Layout
option. It sounds like just what I need. I looked inside Atom → Preferences → Core, Editor and Themes.
Execution definitely lags more the first time. But since I mostly do “first times” as a newbie, it lags most times.
As I am limited to 3 replies to the same topic, I will append my comments to this message from now on!!
EDIT 1
Not sure what you mean by “the installation time of R”. In RStudio, you can load packages that are out of date, so you have no need to update every time. If I execute, say, library("ggplot2")
, it takes less than 1 second. After that I can plot in about 1 second.
Definition of 1 second: quick.
EDIT 2
@ pfitzseb (new users can only mention 2 other users in a post!!!)
Thanks for the help. So, under Packages → Install, I found julia-client
with a settings
tab. There I found a Use Standard Layout
option, which is currently UNCHECKED. It says, “Open the console, workspace and plot pane on start.” Let me experiment. Thanks!
EDIT 3
@mkborregaard
Yes, it’s a lot faster the second time. I need to develop a habit of keeping Juno open for longer. Thanks!
It only needs to precompile the one time though. Do you include the installation time of R when you say how long time it takes until the first plot?
Sure thing
You should be able to find the option under Packages
→ Julia
→ Settings
or just press Ctrl-Shift-P
(or Cmd-Shift-P
on Macs, I think) and type in julia settings
.
You could argue that the precompilation of a library like Plots.jl
is part of the installation since it happens only once happens once. It’s not really fair to include it in a runtime comparison then. I do think however that JuliaPro works around that by shipping precompiled packages – you could take a look at that.
Yes, exactly, RStudio intercepts the results of an existing R function and displays it. It’d be cool to have Atom do all of this.
For Plots, again, the time to first plot is slow, especially the first time after updating packages. The next time you try it it should be faster. And consecutive plots in the same session should be almost instantaneous.
This is an aspect of julia that it is worth calling to attention to R users - julia is just-in-time-compiled, R is interpreted. That means that all functions defined in a Julia session need to be compiled before being run (the FIRST time only), creating a slight hesitation at the console. For packages, this is generally done at the time of using
(though presently not for Plots). It is also part of what makes Julia fast for larger operations.
Yeah, but we shouldn’t downplay that “first time to plot” is a real issue. Plots.jl is working on it.
Especially as now the metadata version of Plots doesn’t support precompilation.
What about InspectDR, GLVisualize GR or other alternative plotting packages?
What about them? They’re all great packages, that can be used on their own or as backends for Plots, depending on taste.
I mean, is there one faster or with shorter delay than the other?
I believe I answered that very question earlier in the thread What features will I miss in Julia? - #11 by mkborregaard . If you are only thinking about time-to-first-plot-in-each-session, you could try it out and post the timings here? I am sure some could find that interesting.
That’s a good point, that especially users who are used to quickly firing up R, running one quick plot to check something, then closing down again and doing other work, are going to feel the slower start-up times, precompilation, package loading etc quite a lot. I rarely work like that - I tend to keep my session open for 10mins to 10 hours for some dedicated analysis or development work. In which case the delay almost isn’t felt at all.
With #265 fixed there is seldom a reason to restart Julia. You can just evaluate new code into modules / packages by setting the active module in Juno. These will overwrite the old methods and immediately take effect.
I wonder if there is a way to save the state between Julia runs then? As you say, with #265 fixed you can just rename functions, so could saving the full cached state may be an interesting way to get around the startup issues? That would have some bad consequences which would need to be solved, but it would be a souped-up version of precompilation.
That’s exactly how sysimg is build and package precompilation is implemented.