[ANN] A Julia Discourse Site for Non-technical Users

Specifically, we’ve taken a number of steps to try to make it less intimidating to post to New to Julia. The category name itself was actually changed in response to such a suggestion! We’ve also iteratively changed some of the messaging around the site itself with that very goal in mind, and can definitely continue improving. I also often try to calibrate my responses based upon the category — an Internals & Design topic is very different from a New to Julia one — and I have sporadically encouraged folks to do similarly (as have others).

Please don’t hesitate to make suggestions over in the Meta Discussion, and that category description is a wiki so Regulars can even improve it directly!

6 Likes

I feel there’s a deeper set of issues that this is trying to address, that I generally agree with. There are various threads on alternative IDEs and tooling, different goals about compilation, and multiple about broadening the user base. I appreciate the motivation of @technocrat, and I might suggest that a different platform (Discord?) could be more inviting (and free..). That said, to the points made here, I don’t think you can just offer the forum. As a straightforward example I’ve personally witnessed, consider the above from the “New to Julia” welcome message:

Whether you are struggling with the installation

This assumes that the road to success for some new user is to install Julia through one of the default means, maybe get into VSCode or the REPL or Pluto, and get to it. I’m not actually sure any of those fit the users who wouldn’t already gravitate to this forum, so the population I think this thread was trying to get after doesn’t benefit from that help. Hopefully that makes sense. Fundamentally, that comes down to some questions about whether Julia is an insular language for the population that is here (as reflected in the forum posts that @technocrat describes), or there are paths to making it more amenable to a broader audience (what some people might mean when arguing whether Julia is truly “general purpose”).
I’m not trying to open that can of works here for yet another debate; just tagging this thread as another reflection of that broader issue.
@technocrat , I’m certainly interested in pursuing this, and appreciate your description of what a broader class of new Julia users might look like; happy to collaborate on this.

1 Like

What would you suggest instead? The idea is just to give a few examples that aim to demonstrate that the category encompasses a wide range of levels. Nothing here is written in stone, we can change things!

@MDSW I think you missed the part where I said that I killed the idea and taken down the discourse site

I have in mind something like Julia for Excel users

1 Like

So it seems like this thread is turning more towards addressing what I think is a real issue of potential new users feeling intimidated and therefore shying away from Julia. This has come up on at least a couple of occasions that I recall over the years, and I am someone who has long felt this way. In fact, back in 2020, I started a (now defunct) YouTube channel called Average Joe and Julia. The idea was to create content catered to the kind of user I think OP is referring to. However, to be frank, I was pretty terrible at making the videos and I just didn’t feel like I had the time to put into it to make good content that would actually reach enough people, so I abandoned the idea after just 3 videos.

I still think it would be a good thing if there were more outreach of some form to potential users who don’t have the scientific/mathematical background as many existing community members do, but I’m not sure it makes sense to sell Julia to your average data analyst who primarily works in Excel. AI is going to make most of those skills obsolete and/or users will just be using whatever AI Microsoft includes with the Excel program to do their work, so I’m not sure I see how switching to Julia for the same kinds of tasks is much of a benefit.

Where I think Julia really shines, and the message I wish more people could hear, is that Julia is the perfect tool for taking your knowledge/skills/abilities from the average data analyst level to a much higher level (e.g., that of an expert data scientist). When I started using Julia 8 years ago, I was probably a lot closer to the data analyst level (even though I had studied plenty of math for my masters in economics), but I really wanted to learn and understand the math behind data science and I found Julia to be much better than Python or R for this purpose. When I started working through linear algebra and calculus textbooks (years after having finished my graduate studies), using Julia felt quite natural compared to Python or R. I’m not sure people realize how big of a deal it is for people who aren’t super confident with their math skills to be able to do:

A = [1 2 3
     4 5 6]

versus

import numpy as np

A = np.array([[1,2,3],
            [4,5,6]])

or

A <- rbind(c(1, 2, 3),
           c(4, 5, 6))

It’s a big deal to be able to write down mathematical statements that look like those you are seeing in the texts you are learning from.

The bottom line for me is that I would like more people to realize that Julia is like a sturdy ladder they can use to climb to new heights as opposed to a scary, sophisticated tool requiring expertise to handle competently. I’m not sure if that’s something that can be accomplished here on Discourse, but I do think it’s something worth spending some effort on.

17 Likes

Nope, didn’t miss that. Was simply trying to point out that I believe this was a reflection of a larger discussion that has played out in other threads over the years.

1 Like

I would like to be a bit of a contrarian here, but first the background on my contrarianism. I spent grade 1 & 2 in a one room school house. I remember that when the teacher was teaching grade 5, I found that interesting.
When I poke around discourse I see things that are mathematically totally beyond me. And things that from a computer science perspective that are totally beyond me. Sometimes I spend a bit of time trying to understand what is going on, other times I am just glad that there are people with much more expertise making important decisions than I would be able to.
So for me, being able to see the much more technical aspects, combined with gentleness and welcoming with which newby questions are answered are beneficial in this forum. Thanks to all that make this forum work as well as it does.

20 Likes

I agree with Jake. Back when I was a student and had to scramble on StackOverflow for answers long before LLM hallucinations, I did not care about all the other domains I have barely heard of (at the risk of beating a dead horse, I do count the complimentary book on geospatial data to be an unfamiliar domain, so that counterproductively replaced “it’s for MIT rocket scientists” with “it’s for geospatial analysts” in my mind). Free questions and free answers, simple as that. I can’t prove whether posters today are more like me or actually more intimidated by unfamiliar domains, but I’m fairly certain that the rarity of Julia-first novices is still mainly explained by most people using other languages instead of Julia and LLMs instead of slower forums. If I’m correct, then efforts toward making Q&A forums more beginner-friendly won’t move the needle here, though it may have other benefits.

If anything, the situation would in part improve with more online Julia content outside of any forums. What better way for people to consider casually using Julia than to watch other people casually using Julia? Julia’s capability, tooling, and ecosystem is also relevant, but that’s far outside the scope of this topic.

This is a good idea for online businesses in general. Have an inviting free tier to promote your brand, and build paid services, products, and sponsorships on top of it. The free tier needs to be conventional to feel adequate rather than gatekept.

4 Likes

Yes, exactly! This isn’t a zero-sum game. I’d like to do we can do here to make this discourse as welcoming and approachable as possible, but there are also many other avenues for growth and improvement. For example, the Julia for Excel users post could also make for a great tutorial and/or blog post and/or video or even perhaps a section in DataFrames’ documentation on comparisons with other tools.

7 Likes

Such a shame doggo.jl stopped making videos. One of the best resources for Julia beginners.

5 Likes

Not to divert the discussion into another gripe-fest, but I think my experience trying and failing to get Excel users interested in Julia is relevant here.

I want to point out again that, from my perspective, good tooling is Julia’s major barrier to entry for novices, not its online community. First, some praise:

Julia Discourse

It’s amazing that Julia is able to host such a wide demographic of active users in one place. I’ve been part of many New to Julia posts as both an asker and an answerer, and I’ve always been really impressed with the level of detailed instruction and patience this forum’s users provide there. I think it’s incredibly valuable to keep the community centralized here. I think fragmentation to even established communication tools like Slack, Zulip, Discord, and even GitHub to some extent are detrimental. It would be nice to see more novices active on the forum, but I believe they are scared away by Julia before they begin reading or signing up for Discourse.

Julia Syntax

As mthelm85 points out, Julia’s syntax destroys the competition, even Excel: B3*A4+.... It’s very natural to use, but it is still plain text code. That comes with many benefits but also inherent difficulties.

Forum Posts for Instruction

Your post has good content, but even as a competent Julia user, my first impression is still “I’m not reading that wall of text.”.

Other Instructional Formats

So how should we onboard people?

I’m anti-blog as I wrote here. Including the Excel example in the linked DataFrames documentation would already help a lot to get Markdown formatting for the comments and an officially-recognized web location. That makes it more accessible and easier to read.

Video tutorials are also super helpful in that you can watch the data transform in front of you and watch how the experienced user works, but they are of course more work to produce and may run into the same blog discoverability problem.

In some ways, Pluto.jl notebooks are the perfect teaching tool because they combine Markdown instructions with interactive and reactive cells. They set out to compete with Excel on usability after all, but it is incredibly difficult to access Pluto and open a notebook for a novice.

The Missing Tooling

When someone sends you an Excel file, you just double click it, it opens, and it runs. If you edit something and get an error, Excel highlights the problem cell and suggests a correction. Contrast that with the Julia experience when someone sends you a .jl file.

Opening

:student: How do I open this file?
:teacher: You just use a text editor.
:student: Windows is suggesting Notepad, can I just use that.
:teacher: Well no, you’ll want to install an IDE and a bunch of extensions to get syntax highlighting.
:student: Okay…

Running

:student: How do I run the code?
:teacher: Open a terminal.
:student: A what?

Managing Environments

:student: It says it failed to load something.
:teacher: Yeah, you have to install its dependencies into an environment.
:student:
:teacher: There are two .toml files that work with the .jl file to run. You need to activate those.
:student: Wait, there are three files now!?

Understanding the Execution

:student: I ran the file, but nothing happened.
:teacher: Oh, it ran, but then closed and exited.
:student: How do I see what it’s doing?
:teacher: You could try a debugger. They work sometimes.
:student: What do you mean ”sometimes”??

Debugging

:student: I changed the file, and it spit out a giant error message.
:teacher: Yeah, that’s your stack trace. Follow that to find what part of the code had the error.
:student: Read … all this text … to find where the error is?? Does it at least tell me how to fix the error?
:teacher: Do you know what a Method is?
:student:
:teacher: Then no, not really.

Conclusion

Improving how well we welcome and teach new users can only go so far for encouragement and retention while the tooling friction is still this high. Casual novices can’t be convinced of how much better and easier Julia is with so many basic onboarding hurdles in the way. I think that’s the real reason we don’t see more of them on this forum.

10 Likes

I recognize that the written language has fallen out of favor with a large swathe of the population and that video ingestion is the preferred way of learning, and I do plan some of those. I think people are as smart as they have ever been and that is true today of people in oral traditions. (I once was preparing an airport master plan for an Alaskan village in the back of beyond and went out to tell people about it. Most of the audience didn’t speak English. One of the village leaders interpreted my half hour talk after I finished. He spoke for a half-hour. He made the same gestures as I did. I could no more have done that English to English as I could have survived on my own in their extended back yard. There are different varieties of smart.)

2 Likes

It seems to me then that deploying Pluto as an app would solve a lot of the issues you identify?

3 Likes

Agreed. I’ll start a new topic for that discussion though.

FWIW, last I heard the Pluto people are actively working on an app.

In other language news,

10 Likes

With the exception of debugging, that mostly concerns learning the very basics of practical programming, not tooling shortcomings. technocrat isn’t trying to help people who are unwilling or reluctant to read and write code, and I think it’s completely fine for them to stay within the limitations of commands, executables, or apps like Excel. If they have to directly handle language runtimes for some reason yet aren’t expected to troubleshoot anything, then it’s someone else’s responsibility to not hand them substandard scripts.

2 Likes

The only challenge with “new to Julia” for the demographic @technocrat is targeting (which includes me, btw), is that it carries an implication that one day you will no longer be a newbie and everything will make sense.

I’ve been new to Julia for nearly three years and I’m still a newbie. The vast majority of the content here is beyond my understanding, whether it relates to computer science or to numerical computing. I get by with HTTP, CSV, DataFrames, Dates and XLSX, with a little bit of GeoStats if I’m feeling brave!

Don’t get me wrong. As I’ve said before, Julia has been fantastically productive for me and I’ve never been made to feel less than welcome here. And I’m not suggesting that Julia’s core strengths shouldn’t be prominent in the content of this Discourse. But the overwhelming focus on numerical computing seems to be self-reinforcing. It is not hard for me to imagine that it could be intimidating to newcomers, and might easily tip the balance for a newbie looking beyond Excel to either Python or Julia.

I still don’t have a solution to this. My contribution to XLSX.jl is mainly motivated by self-interest but I hope it also smooths the on-ramp to Julia for other Excel users.

8 Likes

I wonder if the solution to that is having a dedicated corner of the forum that’s about “Non-technical computing”.

I think that’s perhaps not the right terminology (all computing is at some level technical), but julia often advertises itself as being an ideal language for “technical computing” by which we mean some cluster of related concepts like numerical computing, symbolic computing, scientific computing, engineering, compiler research, etc. etc.

So having a section of the forum that’s catering to people outside of that wheelhouse might be quite valuable.

The trouble though is how to do that. The website is already just extremely messy, and I don’t know how feasible it really is to separate these things and have an easy to navigate to place that doesn’t feel so overwhelming.

E.g. when you log into the site, you’re confronted with something like

which IMO is quite overwhelming and visually noisy. Not sure how much freedom Discourse’s software stack really gives us to fix that.

7 Likes