Survey on how you use Julia

Hi all,

I’m making a video on how to make Julia feel nice to use, and I make a few claims about what is and isn’t “standard”. I’m curious to see how other people use Julia to get some statistics on what the community views as normal and what is more advanced or niche.

The survey is super short (only 1 compulsory section) and is anonymous and doesn’t collect identifiable data.

Thanks to all who fill it out!

6 Likes

There’s no question about notebook-style approaches (eg jupyter/literate), but looks good!

2 Likes

That’s a good point. I’m so used to the script + REPL experience that I forgot about notebooks!

Edit: Added a question on literate programming.

1 Like

On the literate programming question: I use org-mode notebooks.

2 Likes

Another literate programming suggestion is Quarto, especially for those who have a background in R and knitr.

5 Likes

And here are the results:

Almost all respondents (consciously) use Revise, with the next most common being JuliaFormatter, and then very surprisingly LocalRegistry!


By far the most common way to use Julia is from inside an editor/IDE using local packages. Scripting is fairly common, and (in the discourse userbase, see below for demographics) literate programming is not so common.

image

In the “describe your workflow in more detail” part, quite a few people mentioned Vim, Emacs, or Sublime with a code runner that sends lines to an external REPL/terminal window, usually with a splitscreen tmux setup.

Finally, hot damn y’all are Julia addicts. Luckily, this survey is not supposed to be a representative sample of how Julia is used, only of how more experienced, package developer-leaning members use Julia, which is how I view Discourse and Slack.

13 Likes

I’m sorry I didn’t respond to the survey, life just gets in the way sometimes :frowning_face: Self-reference is not normally suitable, but I did recently mention the topic:
Did Modular just reinvent Julia?

I’d be curious to know how exactly people are using LocalRegistry in their workflow. Is it only for teams or also single developers find it useful?

1 Like

I use LocalRegistry primarily as a solo developer and find it very useful. The main use-case is so private package A can depend on private package B.

The killer feature, vs just doing dev /path/to/PackageB is the support for versioning. Rather than depending on a specific state of the files on my filesystem for Package B, LocalRegistry creates a versioned snapshot so that Package A can work in a fully reproducible way, regardless of what changes with package B.

1 Like

It allows me to use packages in GH CI when they are not in the general registry. For example: I have package A depending on package B and neither is in the general registry. I want to run CI on A. I use LocalRegistry to manage a registry, also available as a GH repo and package B is registered there.

There may be another way to do it. But this works for me. (I had to search pretty hard for the magic incantation in the CI script that uses the “local” registry.

1 Like

Do you have an example of this one can look at in a public repo? Thanks.

Having a personal registry gives nice advantages whenever you have at least a few packages you own and develop. Compared to General, advantages include convenience in registration (just from your Julia REPL!), and immediate registration of both new packages and versions (no delay, call register() and it’s already there).

2 Likes
1 Like

It’d be great to have this documented (maybe in 7. Registries · Pkg.jl ?).

2 Likes

For single developers, like me, it also quite useful. I have many private repos which have complicated dependency relations. To install them properly and smoothly, I found LocalRegistry.jl is a must-have tool!

3 Likes

Something similar is mentioned here: https://github.com/GunnarFarneback/LocalRegistry.jl/blob/master/docs/troubleshooting_general.md#solution