What if I want a simpler IDE for Julia?

:slight_smile: indeed , it does but from viewpoint of yours… hehe the aim of JuliaPro bundle creators if I am not mistaken - were making of some position on the corporate market which lives with other (in somewhat different) rules and notions…

I think that is a very personal opinion and in no way typically true. Where do you get this impression from?
Where I work (which is very ML/data science driven) everyone uses something different. I use Sublime + Plugins, others use PyCharm, Matlab, Rstudio, Atom, Jupyter Lab and so on.
And now I want to invest some time into vim because I like the “lightweight” feel and ubiquitous availability on almost every linux machine.

2 Likes

you are right , it is my opinion… your opinion may be quite different…

If you’re in a situation where you can’t easily install/update Juno (e.g. behind a corporate firewall) then having fixed versions of all involved packages is a good thing. You can also switch JuliaPro to the General registry.

Personally, if I could imagine my ideal IDE for Julia, it would look a lot like the Godot game engine IDE or a Smalltalk image. Completely written in Julia itself, and providing a fully dynamic cross-platform GUI framework at the same time.

Here’s what my vim+i3 setup looked like a few years ago, I still use it liks this since then

I am so happy with vim+i3 setup, it’s the best of all worlds, allowing plotting windows, REPL + editors windows, and LaTeX editing in the best way possible.

Also, I created a VerTeX.jl package to help me organize non-linear LaTeX documents and launch the vim editor from the REPL in a programmatic way.

Was planning to make a video showing my setup someday, but haven’t gotten around to it yet… I ended up doing some cool math or programming stuff and having fun with the Julia setup instead of making a demo video.

7 Likes

They aren’t self inflicted. IT isn’t doing that to itself, and I am not doing it to myself. Instead, it is IT doing it to me.

I have filed tickets with IT about WSL and proxies. The first person I talked to escalated it. The second person came to see me, expecting that all he would have to do is enter a password so that everything works. After it didn’t, he told me to try to get a Mac (I’ll try to do that), and that working there means learning not how to solve problems, but work around them as best as you can. He escalated the problem further.
Maybe it will work in another few weeks.

Once it does work, and I can actually access the internet in WSL, emacs will not work because in the year-old Windows version they are on, there is a bug making emac’s display a jumbled mess. The Windows version released last May fixed at least part of the problem (some folks on the github issue complained about other problems), but we cannot use the fix.

I vent because those free tools I am familiar with and depend on work flawlessly at home and can be set up in minutes, yet it takes months to get awkward inferior and buggy solutions at work, thanks to all the help from IT.
I haven’t had many problems with Outlook, Office, or Skype though. That’s IT’s job.

Using cygwin to ssh into their Linux cluster is the best approach I’ve found so far. Disconnects, causing me to lose my session, aren’t that common.

This corporate environment affords me a lot of time to work on developing open source tools in Julia. I’m very happy with the position itself. It’s the restrictions inflicted upon me by IT that I do not like.

1 Like

Wow. Good ol’ academic environment where most of the time I am on my own fixing things. Sounds much better than what you describe.

2 Likes

Unfortunately, academia and industry tend to overcomplicate the most simple things and tooling. Simple things can’t be accomplished due to the bureaucratic baggage that comes with an army of administrative staff.

If we had a simpler academia and industry, then the simpler IDE problem might be more simply solved. Imagine hiring an entire staff of administrators to do a simple job that a single person could do in minutes.

In the future, I think the most successful and innovative people will not be in academia or industry, because of all the baggage that prevents simple innovations. Academia should enable people to do more, instead it resricts and holds people back from achieving simple goals.

Sorry if it’s getting off topic and generalized.

2 Likes

A bit of over-generalization, perhaps?

Off topic, but using screen or tmux can often limit the damage from disconnects

1 Like

If you exclude industry and academia, what is left? just curious…

Independent contractors

Also, the subject of my post is innovation, I’m only talking about people who innovate.

I do miss the freedom of grad school!

Just to be clear, I definitely still spend most of my time developing and fixing my own things. Emacs through cygwin + ssh is pretty good.
Part of it is me being stubborn. I’m complaining that I don’t get to use the tools that I want in the ways that I want, anymore.
Part of it is that while it isn’t really that bad, it’s precisely because those problems seem so unnecessary – inflicted upon us by IT – that I’m complaining. Seems like it should be easy to fix.

Given the choice to magically fix something, these problems probably wouldn’t make the list. I’d much rather have Julia’s compilation be multithreaded, for example. Or maybe have LLVM’s loop vectorizer suddenly start tiling/improve and integrate polly. More work on precompilation.
It’s just that all the cool things that could lead to real quality-of-life-improving changes are much easier said than done; they would require a lot of real work.

The IT situation feels frustrating because it feels like it’s a rare situation that should actually be easier done than said. On there end, it could be as simply as letting me bring a linux laptop to work to do my OSS development on!
On the other hand, we hear about data breaches at major corporations all the time. It is absolutely imperative that IT take security seriously.

I also understand that from the developer’s perspectives, who put all this great work into the Emacs, VS Code, Atom/Juno, Vim, and Jupyter plugins/libraries, none of the problems I’m complaining about are there fault, or happen on there ends!
So what use is it for them to sit there and read my complaints about it? Especially if, all things considered, my situation is pretty good and I’m just being greedy.

@kevbonham Some things get in the way of emac’s keybindings. I haven’t tried tmax, but I remember encountering problems with screen. Maybe I ought to try playing with vim, which works well with those tools.

Maybe something like this can come in handy for people who prefer a linux solution, but are on windows:

https://github.com/s-macke/jor1k

FWIW JuliaPro is a lot more sane than it used to be. You used to have basic Julia packages throwing breaking changes out every few months, with brand new features to boot, so you’d be mad. Also the update length was longer. Nowadays, with Pumas and Flux as part of JuliaPro, you can expect anything statistics, ML, or differential equations to pretty much get a monthly update or so. So it’s never that far behind, and quite well tested.

Also, things don’t update as much: as a matter of maitanance I just updated half of the JuliaDiffEq repos to have Project.toml files, which means that half of them didn’t get an update since v1.1 came out a year ago. And that’s not that uncommon.

Juno does quite well these days. uber-juno is a one click install on most OSs if you do a standard Julia installation. On Windows it literally just works. Also, it does things like automatically sets the number of cores for multithreading: ask a standard Windows user to set an environment variable and… be sad. But Juno and JuliaPro fixed these issues. It also has a bunch of display features that VS Code doesn’t have which are necessary for analyzing difficult simulations. Those displays are actually better than things I’ve seen in other languages. I am sure the rest of Julia will adopt treeviews sooner or later, but until then I cannot recommend other IDE systems for most serious simulation work because the data viz is just so far ahead in Juno. Like Atom or not, that’s a pretty massive advantage.

What the future will be like is unsure, but Juno is more than a good option for most users today, and by far preferred for real data analysis and simulation work until other systems catch up. You can code anywhere, but the viz is the biz.

5 Likes

Can you be more specific what you mean by that? I’m just not sure what you are referring to.

2 Likes

Inline display (at each evaluated line) of complex datastructures that are navigable in a tree fashion.

1 Like

Ah, ok! I had thought for a moment that this was referring to something tabular data related.

I think they are finalizing an inline webview API for VS Code, at which point we could probably add something similar.

2 Likes

To inspect simulation results in Atom, I get:

in VS Code I get:

I think we can objectively say that the Juno printout is the nicest you can get right now (and you can change it to REPL shows if you want, so it’s at least the same). That doesn’t mean that VS Code can’t get there, but at least right now it’s difficult for me to tell a new user that the second photo is the easier way to understand Julia outputs than the first. I hope that will improve, and I really would like to see more IDEs make use of Treeviews.jl, but as it stands this is the real-world difference we see between Juno/JuliaPro and all of the alternatives, and until that changes, this will continue to be the first thing that users point out in every workshop where we show a few different IDEs.

(FWIW, even things like MATLAB and RStudio don’t have this feature, so it really is just a Juno-only invention. But once you’re used to it, it really is hard to go back).

Another thing I find missing in VS Code is Weave.jl integration. Atom has a Weave plugin that works really well that makes it easy to run the inline Julia code and double check the results without having to actually weave the script. It would be nice to see that in other IDEs as well.

Another display feature that’s missing is TableViews integration. In Juno, you view tables like:

In VS Code, you view tables like:

Sure you get the REPL printout, but a nice scroll-able display is next level.

So VS Code is a great IDE, but it really doesn’t reach that next level because of these missing pieces. However, I can see it continuing to improve, and I like what I see. I’d put it above RStudio or MATLAB already, but not quite at Atom.

7 Likes