Would it be better to redirect all new Julia usage questions to Stack Overflow?

Stack Overflow is the de facto source of useful results when searching for “how to …” for most programming tasks. I strongly prefer its layout and moderation to what’s implemented in Discourse. Often, when I find a thread related to something I’m trying to figure out how to do in Julia on Discourse, there’s a great deal of, well, discourse that distracts from the solution. The layout of answers and comments on SO cuts through that background quite effectively. I think Julia users could benefit from having usage questions posed and answered there vs split between SO and Discourse. Discourse seems like a great place for all other categories.

@mbauman offered the following objectives in a related discussion regarding SO and Discourse:

  1. Provide direct help to the question-asker.
  2. Create a public and searchable record of answers to help future question-askers find the solution before they ask it.
  3. Foster a community of users

In my estimation, posing usage questions on Discourse addresses point one but does a poor job at point two. SO does a better job at this because of its layout and moderation. Discourse does well at point three in categories other than usage. I think having a more robust presence on SO with discussions related to other categories in Discourse would improve point three when done in combination.

1 Like

No, I think it would not be better to do this redirection. In my opinion, StackOverflow’s community has a strong tendency towards toxic behaviour, and strongly discourages discussion, putting very clear divides between the asker and the answerer, and we frequetly have moderators who have nothing to do with julia coming in and making poor moderation calls with regards to things like the duplicate policy in julia questions. They don’t even have julia syntax highlighting.

It may be that StackOverflow is a standard, but I think many people in this community regard that as a bad thing rather than a good thing, and personally I’m even more skeptical of it’s future with the recent acquisition.

That said, I’m still glad we have a StackOverflow presence and I occasionally answer questions there and I urge others to do the same. I just don’t think we should let our community get captured by it.

38 Likes

I don’t feel the same way. It’s annoying to have to search for my question in multiple equivalent locations and I don’t see any advantages to using StackOverflow. Discourse (Civilized Discourse Construction Kit Inc) is co-founded by Jeff Atwood, after many years experience from co-founding Stack Exchange. I think it’s better to have no StackOverflow presence than a partial effort on both forums.

(It’s a different story with Zulip since that offers a completely different set of conversation affordances.)

2 Likes

Hm, I think I know what you mean regarding the ‘toxic behavior.’ I remember when I first started using SO and couldn’t get questions posted because of moderation. It was frustrating, but I came to adopt the frame of mind that it was (to some extent) necessary in order to promote point two of my first post. I started to view the question I posed as code itself, and mod responses as errors I had to debug. Sometimes mods can be overzealous. Although my experience would not classify it as ‘toxic’ I can appreciate it if that’s been what someone else experienced.

SO definitely discourages discussion, I agree. It’s designed to get questions answered accurately and completely, yet succinctly. For well-posed usage questions, there shouldn’t need to be much discussion. It can be a little thorny in that respect, especially for those new to SO. When you say, “I just don’t think we should let our community get captured by it,” I think you might have missed my point. I think Discourse is a great place for having long-form and chat discussions. I only think that usage questions are underserved by this format. Questions that would involve discussion should instead be tagged with Domains or Tooling.

Julia’s Base and package documentation is rough in many ways, especially regarding example usage. A robust Q/A board that addresses users’ questions and provides a record for future users is crucial for quickly becoming productive with the language.

1 Like

I also don’t think we should do that and I am often frustrated with StackOverflow’s moderators, although I usually try and answer things there.

I think there are two things that help make the current situation appropriate.

1.- Some people post self-answered questions in SO after finding an answer here (@logankilpatrick has done this many times, for example.). This helps with your point 2.
2.- Some answers in SO have something like “As discussed in this discourse link” before providing an answer, helping users get to more in-depth discussions.

So I don’t see why we would need to migrate to a forum recently acquired by a third-party that also becomes very frustrating at times.

4 Likes

A few thoughts in random order.

Most search engines will have stackoverflow and/or discourse in the top five hits or so. For FAQs, you will find a popular and well formulated answer on stackoverflow. For more “localized” questions (as they say), you will find a stackoverflow answer with a couple of votes, sometimes of high quality (in my experience, DataFrames questions have great, updated answers, to give one example) and sometimes (too often?) pertaining to an old version of Julia and out of date. I have personally attempted to get these updated every time I have come across them, but with my limited breadth of incomplete knowledge it has not always been possible. The good thing though is that the (small number of) people involved in these have an incentive to update their answers. “Pinging” them with a comment is sometimes all it takes (to clarify: if you leave a message in the comment section, the author receives a notification, which they often notice and react to).

Zulip is a completely different environment, with very dynamic, short chats, where you can quickly get advice from some advanced users who selflessly share their time and knowledge. These are typically super “localized” and most of the time not for general consumption. Zulip’s purpose is clear and it works great for its purpose.

While my experience is limited, I see discourse as a halfway house. At times it functions like a chat with random off-topic bifurcations and a high rate of depreciation. At other times it functions like stackoverflow with a “like”/reward system and a “solution” selection system. It works great for recent questions, where the solution is up to date. Unfortunately once an answer becomes out of date, the general practice is to discourage reviving and updating the answers. Unfortunately search engines keep picking them up, with the result that you waste time reading outdated exchanges.

I think all these platforms can coexist, but improvements could be made to how search engines “pick up” answers posted on stackoverflow and discourse. I think it would be great if more Julia users visited stackoverflow, made edits to answers, and upvoted them to make them more visible to search engines. I also think the problem of stale answers on discourse must be addressed: One solution would be to “close” or “retire” obsolete threads by dumping them in an “archive” where search engines would not easily find them.

1 Like

This is one of the things that annoys me of SO: I once found a answer that had been recently edited but not correctly. It had been left in a state with information partially correct for a recent julia version and partially correct for an old, pre-1.0 version. I edited to make it consistent with the modern usage of Julia and my edit was rejected by a mod that only posts in python answers with a nonsensical reason. Result: by some weird mod decision now we have an answer that doesn’t work for any julia version/

6 Likes

That is unfortunate. Hopefully this problem will solve itself eventually as the Julia community grows. You could maybe post under discourse/meta to ask for help in suggesting edits to that question over at stackoverflow?

Maybe discourse could add a “stackoverflow” category for this, where you would post: “I tried the answer suggested at http://stackoverflow.whatever, but it doesn’t work, could someone have a look and see if it’s a problem with the answer or a problem with me, and if so help edit it for the Julia community?” Just an idea…

1 Like

Adding to @ptoche’s reply, you might be able to tag the answerer in a comment under the accepted answer with your proposed solution. I think they can edit their answers more liberally than others? Might be wrong about that. And until then, your comment might help others who stumble in.

That’s what I meant by “pinging” the authors: sorry it wasn’t clear. :face_with_hand_over_mouth:

I totally agree.
Many stackoverflow users are arrogant and belittle those who ask questions.
Also, many questions go unanswered.

The atmosphere here on discourse is much friendlier.

5 Likes

Life is too short, no time to overflow from Discourse resort.

In addition to the practical implications mentioned by others above, I also think that if someone posts a question on a forum, it is somewhat of a unfriendly move to redirect their question automatically to another one. I imagine that if they wanted to post there, they would have.

Generally, I wish people would stop trying to make this forum a version of SO. Personally I don’t think SO is a good match for Julia, but if someone happens to like it, that’s fine — just go ahead and use it, without trying to move the rest of us.

13 Likes

I strongly disagree,
Stack overflow more often than not does two things, it gives a clear-cut solution, and when someone dares try to talk about it other than stating another copyable solution the place becomes as unwelcoming as possible.

Of course, it comes to the developer to understand the solution given by a user on stack overflow, but how many times have we found a solution that had to be exchanged for a completely different one later on due to effectivity which we might have solved beforehand had there been some discourse rather than: “Op didn’t ask for that !” or the more familiar “OP didn’t ask for that case he’s using it in case X or Y”

Anything other than a direct answer or a comment directly aimed at another given answer is seen as a sin of the worst grade on SO. I would much rather have the opportunity here to ask a question and maybe be able to ask a little about the why, or how of that solution to better understand the answer given.

3 Likes

I strongly agree with this statement. I personally really like using SO to find answers to my programming questions (at least for things unrelated to Julia). I especially like that answers are upvoted and sorted accordingly. And when I want to figure out how to do something, I don’t like sorting through extraneous discussion.

Having said that, it seems like every Julia-related SO question I find is outdated, so I rely on Discourse to find answers.

I rarely ask/answer questions on SO/Discourse, though, so I can’t comment much on how that process compares between the two.

2 Likes

Yes, that’s precisely the crux of the matter. Stack Overflow is 100% geared for future readers (and pageviews) and solves the issue of the present asker as a side-effect. Discourse here is geared for the present asker, and leaves behind a trail for future readers as a side-effect.

It’d be interesting to see if we can help bridge that gap a bit. For example, it’s pretty easy to see which topics are frequent google search hits. I wonder if we should try to “clean up” or update some of those threads… I wonder how we could do that without removing the fodder that made it a prominent search result in the first place.

It’s also worth noting that I try to update my old StackOverflow answers whenever someone alerts me to their outdatedness through a comment there. Commenting is a great way of brining attention to the old cruft on StackOverflow, but doesn’t work as nicely here.

13 Likes

It’s not a perfect solution, but it could become a standard practice for the Discourse community to discuss a question for a period, work out a solution, then post the clean question on SO with the clean solution once it’s been worked out. That way, Discourse could retain its utility for the present asker, and then it could be paid forward to the future readers through SO posts that are optimally served there.

I assume that if there are updated SO questions and answers, they will quickly become featured over outdated Discourse discussions?

3 Likes

I think it would be better on a platform that the Julia community has more control over. A canonical answer could just be a new question+answer on Discourse.

1 Like

for an equivalent number of visits, I would say yes, but when a discourse thread has many views and many exchanges while a similar question on SO has only a couple of votes, then as far as I can tell (not a scientific evaluation, just a feeling based on experience) discourse will rank higher. Discourse threads do not get outdated particularly “quickly” because they receive visits and as long as they rank high in searches, they will receive visits. The problem may be mitigated over time as old pre- Julia 1 answers fade into the search engine’s memory.

1 Like

I try to do that whenever I see a stale answer on SO, but the thing is that some discourse users do not particularly like SO and cannot be expected to do this (they do not like the point system and the occasionally toxic atmosphere).