(I am adapting and copying my question here from Software Recommendations.)

Would a question about which software technology to choose for a given scenario be on topic ?

The question I need to ask somewhere is along the lines of "I'm going to write a program to communicate with another process in a scenario X with requirements Y; which Inter Process Communication technologies fit best, Sockets or DCOM or Named Pipes or Shared Memory or etc.".

Would that be off-topic at Programmers?

My first thought was asking on Stack Overflow but it seems to me that these questions are off-topic there.

I know that they are off-topic at Software Recommendations too.

  • On the one hand, these are usually tool recommendations, which are definitely off-topic. On the other hand, something like "is it worth using a database instead of the file system when all I want is X, Y, Z?" without reference to specific databases seems clearly on-topic to me. It has to be a conceptual question rather than a shopping question.
    – Ixrec
    Feb 24, 2016 at 10:30
  • @Ixrec The answers in my mind are expected to point to specific technologies, f.ex. "In your scenario Sockets fit best (or fit better than Named Pipes and DCOM etc.) because of reasons A and B". So I guess this would make it a shopping question, am I correct ? Feb 24, 2016 at 10:34
  • That particular list of technologies happens to be stuff I know very little about, so I'll have to let someone else weigh in as to which end of the scale that falls on.
    – Ixrec
    Feb 24, 2016 at 10:39

2 Answers 2


If you sufficiently describe your scenario and requirements (functional and quality attributes) and can demonstrate that you have done some background research into your options, I don't see why it wouldn't be on-topic. However, if your constraints aren't enough, it could stray into primarily opinion based (if we can't say for sure that one option is empirically better than another) or too broad (if there are too many viable options).

  • Well put,I will see if I can describe my scenario well enough,although it's not very particular,but I can certainly describe it thoroughly. I always fail to make sense of this link between being on-topic and having done enough research,but I guess it's just a way to say we won't do your homework,with which I totally agree. I'd just like to point out (in general,not to you) that nowadays "doing research" might include asking questions on the internet to people who know the subject,or reading answers to people who were in our same situation and asked. I'll also put as many constraints as I can. Feb 24, 2016 at 12:39
  • 1
    @SantiBailors "Doing research" here on Programmers includes searching Google, building a prototype, looking at existing open source code, writing a test case, and so on. Asking another person should be the thing that you do when everything else isn't getting you to an answer.
    – Thomas Owens Mod
    Feb 24, 2016 at 12:40
  • I disagree but I know and accept that that's the mainstream view on Programmers and that I need to comply with it. IMO when you are unfamiliar with a subject you must do your own research but at the same time you must also ask the experts. Researching and testing an unfamiliar subject all by yourself is likely to give partial / misleading results that you might interpret mistakenly. Asking only if you can't get an answer on your own is wrong IMO; you are unfamiliar so probably you'll think your answer is good until an expert makes you realize that it's not and that you overlooked big stuff. Feb 24, 2016 at 13:55
  • 2
    @SantiBailors consider that we want to make sure that we aren't getting low quality answers to your question. If the question could be answered by "use jquery" then it would probably get closed. You, as the person asking the question, need to set a sufficiently high bar for the answers in the question itself so that "use jquery" answers aren't acceptable or even considered as a possible answer. This does imply substantially more work on the person asking the question. The best approach is for you to pick one, and try it and then ask about the problems you are encountering.
    – user40980
    Feb 24, 2016 at 14:33
  • @MichaelT I seriously 100% agree with that and that's what I always try to do when I ask, but I don't consider it incompatible at all with asking as part of your research instead of as a last resort after your research failed to come up with a good answer. This one is the thing on which I strongly disagree with the policy of this site and probably of the whole SE. So I agree with you but I also strongly maintain all I wrote in my previous comment. BTW thanks for the good edit. To the "if you don't like it don't use it" crowd: although I disagree I accept and try to comply, so please don't. Feb 24, 2016 at 14:51
  • 2
    @SantiBailors its that the Q&A format doesn't work well for this problem - that's the nature of the underlying model. You might want to look at slant.co for such a question which just as SE focuses on the Q&A, Slant.co focus on the "what is the best" and a poll of options.
    – user40980
    Feb 24, 2016 at 14:54
  • @MichaelT Nice, I didn't know slant.co, I'll check it out, thanks for the pointer. Feb 24, 2016 at 14:56

As long as you focus on the design and not "which tool is best for me?" you should be fine. However, I recommend reading the following meta-posts:

Are Design Review questions on-topic?

Talks about the standards to meet for questions like this. TL;DR: keep it highly focused on one specific aspect of your program, with clear success criteria (a successful design must do X but not Y, as opposed to "what is better?").

"Design review" perhaps is more commonly associated with e.g. "review my class diagram or description of what these classes do" but also covers "what technology should I leverage in this part of my program" which often involves design aspects.

Why was my question closed as "Off Topic? - Requests for Recommendations?"

Resource requests, including "what library or protocol should I use" are off-topic. But libraries and protocols are fairly core to a discipline that pushes for code reuse and common interfaces. So if you focus on "I need my program to communicate, with X and Y as design goals" instead of "recommend a library for me" you should be fine.

Also, thank you for asking in meta first so we can help you ask a good question instead of going through a potentially frustrating experience with asking, downvoting, closing, editing, reopening, hopefully reversing downvotes, etc.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .