What constitutes a good post here?

This forum has a bunch of guidelines and some rough descriptions of what each topic is. The community guideline says what constitutes a bad post, but it doesn’t tell you what a good post is. Sometimes, misaligned expectations can lead to issues. For example, posting a toy benchmark problem might be interpreted as asking for help. If one asks about a theoretical plausibility of doing certain stuff in Julia or ask if somebody is interested in implementing X, it could be misinterpreted as an intention to implement something right there. That’s a problem when the question gets abstract. When the question gets too concrete, things ain’t always good either. Sometimes it suffers from the XY problem, misinterpreted context, etc… too long and people might say it’s filled with irrelevant context, too short and it might miss relevant context. Post no code or little code and people might say it lacks effort. Post a lot of code and people may cringe at how cursed your code is or your code might be too long and take too much effort to read. Be a language noob and you might be asking for something which could’ve been answered if you take a 2-minute look at the documentation. Be a language pro and you might not understand issues beginners make. Generate no engagement and obviously your post is useless. Generate extremely high engagement and people are likely actually talking about five or more different things. So, it looks like no matter what you do, there are issues. So…
What constitutes a good post? What is this forum even about?

I don’t know exactly what a good post is, but I can assure you that the community is way more “tollerant” and friendly than in the Stack Overflow QA site.

Then it is also true that this is a forum, not a QA site, so don’t worry too much on making a good “starting” question, the discussion can always be directed toward a proficuous conversation if a collaborative spirit is maintened (for example a post without a minimum working example can be just asked to integrate one…).


I think in this comment you got a good insight on why your posts are not as well received as you’d like:

Although I would argue that they still seem to gather a fair amount of discussion.


@Tarny_GG_Channie I think you are a marvellous addition to the community here.

“What is this forum even about?” Good question.

I would say expressing enthusiasm for Julia and asking if it is applicable in a particular field. Both of which you do.

Offering help to people who a problem, based on your experience.

Notifying about events such as conferences or relevant webinars.

Job postings which as for people with Julia skills.


It’s a good question — and really, what makes a good post will be different in different categories. Nearly all the categories are pretty tightly scoped and should be more obvious, but we do have two fairly “loose” categories: Community and Offtopic.

If you’re ever curious about the “mandate” for a given category, we try to ensure that the category description has some guidance about what sorts of topics are encouraged there. For example, check out About the Community category for the Community category. But moderators and high-trust users can move topics as needed. I’ve moved this topic into Meta Discussion — which is for discussion about this site itself.

The Offtopic category is much trickier; we don’t currently have any written guidance there. But this is still a site about the Julia language targeted for folks who work with the Julia language. I’ve long held that there are many places where folks can go to argue on the internet — we don’t need to foster that here. So we do still keep some informal limits on topics there, too, even if it’s a little fuzzier.

I think a common theme underlying the tensions in many of your topics, @Tarny_GG_Channie, is a desire to ascribe what The Julia Community thinks as though it’s a monolithic entity or what The Future of Julia should be. This elevates the stakes to a level that’s far out of proportion of what’s possible to meaningfully achieve in a forum posting. As a simple example, reframing “What should the Julia Community do to win big” to “What are you doing to ensure Julia wins big?” makes the topic far more concrete and descriptive, rather than trying to prescribe what folks should be doing.


What constitutes a good post depends heavily on the content and purpose of the post itself. (Whether or not my current post is a good one remains to be seen.) The following are some observations I’ve made over the years; let’s consider the OP first.

If the poster is asking for volunteers to help them with a problem, then make it easier to get help. Following those guidelines should lead to a productive post and, with any luck, a good solution. And I emphasized volunteers precisely because the folks in this forum are volunteers who are interested in the language and want to help and participate in discussion. A good OP should be cognizant of the fact they are asking for help from people who are not obligated to do so. Taking the time and making the effort to craft a good post (e.g. by following the PSA above) is essentially a token of respect to those ready to help.

If the poster has a feature request or “why doesn’t Julia do it this way?” type of question, then they are making a bigger request and have a higher hurdle to jump. The classic response is Julia is not at that stage of development anymore, but that does not mean the language is static! If someone thinks Feature X should be part of Julia, then have at least a basic working version ready to show (especially if it would be breaking!). It’s hard to convince people that Julia needs @a_fancy_new_macro unless you can show both how it works and why current solutions don’t work (or don’t exist). At the risk of starting it again, a recent ultra-thread on rand(Float32) suggested that Float32 random number generation could be better. It was a good OP with a clear improvement that could be made, and in the resulting posts several working code versions were generated (though no consensus has been reached at the time of this post).

If the poster has an open-ended, philosophical, or opinionated question, then it is definitely best to have a very specific goal or discussion in mind before posting. Otherwise the discussion can and will become so unfocused that the OP is lost and no one benefits. Most frequently, the problematic posts are “calls to action” that if “Julia” or “the Julia Community” just did X or didn’t do Y, then all our problems would be solved! Or, if “Julia” puts more effort into technology Z then all programmers from Group Q would use it! These discussions are so open that there is almost no tangible benefit. These topics also very quickly become a place for people to post every problem they see with the language. Then each individual problem “needs” a reply or rebuttal, strong opinions abound, and finally no one is better off than they were before.

(edit, 2 days later: Instead of asking a very broad question, a better tact would be to narrow the question as much as possible. Replacing “How can we improve Julia’s popularity?” with something like “What tools/packages could improve the experience for [blank]?” Then, people may actually post useful information on a topic such as, available packages, missing tools, workflows (good or bad), etc. There is no one-size-fits-all solution for all groups, so narrowing the focus would be better at getting real imrpovement.)

As for replying to posts, a good way to start is to always assume the best intent. This goes hand-in-hand with remembering that the community’s goal is to helpful. Everyone has a different background and expertise, and that necessarily implies that everyone will have a different point of view AND THAT’S OKAY!

Also, for anyone posting language comparisons similar to “NumPy syntax is better because…” or “[blank] has a better AD scheme because…”, remember, this is a Julia forum. A vast majority of us (I assume) are here because we like the way Julia does things a lot better than other languages. That does not mean there are no issues, no bugs, and nothing can be improved. But it does mean that making blanket statements about another languages/packages superiority will result in an argument. Everyone’s opinion matters! So go ahead and say why some other language or feature is superior, just don’t expect or demand universal agreement.

All posts should also follow the community standards.

Finally, as a matter of personal taste, I like threads/posts where I can either help someone or learn something new. IMHO, that’s what Discourse should be about: learning and helping.