I aked the question, Compiler targeting LLVM written in .NET language (F#) — best route? , which received 2 close votes.

Upon asking why, John Palmer explained that it's because "best way to __" questions aren't suited for SO.

So I changed the title to "How to target LLVM from a compiler written in F#?", and removed the paragraph where I bring up several options that I've considered, and I received a good answer. Understandably, the word "best" was setting off alarms.

Hours later, the question was closed with 3 additional votes.

The FAQ says that such questions "will likely solicit debate, arguments, polling or extended discussion". That is clearly not the case here; my purpose in providing a few examples of things that might work and then asking for the "best", was to show that I had done my own research, because last time I asked a question, another user suggested that would be closed for "being too localized and not having shown own research".

John notes that this question is also too broad, and that "SO questions are best when they are like: I tried to do x - here is my code ... but this part gives me a compiler/runtime error" -- which was the exact format of my other question, and it still offended people.

There are also plenty of questions of this kind, including a similar and related one with 21 upvotes -- which in fact is a "best way to _" question disguised as a "hesitating between" question with even less of a clear conclusive answer. (By the way, this question is also not "not constructive" by any measure, evidenced by the very good and completely uncontentious answer it received with 19 votes up and 0 down.)

So one of my questions was closed because it wasn't about any particular bug or error in my code, and showing my own research partially made it a choice question. The one before it was threatened because it was "too localized" because it was a question about a particular error message, and because I didn't show my own research.

I feel as though people are having way too much fun with the close button. People are seemingly looking for any painfully contrived reason to use it, and having a (1) or a (2) next to it seems to be good enough.

share|improve this question
It's no fun being a janitor –  random Jan 28 '13 at 1:34
For what it's worth, I think your question was a lot better with the paragraph you removed, because, as you say, it shows your effort. And I strongly disagree with John that the "best" SO questions are "Here's my code, here's my error, help me debug." That's far less likely to be useful to a future reader (i.e., it's likely to be "too localized") than a question like this, with a goal and some research towards that goal, with a request for more information to further the process. –  Josh Caswell Jan 28 '13 at 2:25
The reasoning you were presented with is the reasoning that should be applied when evaluating questions on the site. Many questions that you saw were perfectly fine when they were asked, but don't really stand up well to the criteria we have in place today. Unfortunately, there's no automatic way to make refinements in our topic criteria retroactive upon adoption .. and with well over a million questions, there's always some that are missed when we go through and try to bring things to a more consistent level. Sorry that you got caught in that. –  Tim Post Jan 28 '13 at 2:29
Looks like I've brought death upon the other similar question that I cited; it got closed two minutes after I mentioned it. So out of curiosity, is that kind of question considered "not constructive" too? –  Rei Miyasaka Jan 28 '13 at 8:20
@ReiMiyasaka Yes. I wouldn't have closed it otherwise. For all of the same reasons cited in the comments and the answers. –  casperOne Jan 28 '13 at 13:20
add comment

2 Answers

up vote 5 down vote accepted

I looked at the question, but I can't re-open it again with a single (moderator) vote. The question seems to still be too broad (I am no expert in F#), this is what was left after your edit:

I'm part way through writing a toy language in F#. I want to target LLVM, but it looks like I'll have to do some work to make that happen. There doesn't seem to be much prior work in this area.

How might I do this?

From the original version of the question it's clear that you did quite a bit of research and you're at a place where you're looking for the path of least resistance. This is not at all uncommon, and could be objectively answered if you were much more specific about the language you are writing. The question then boils down to "Can I do this via interop with the IRBuilder libraries or by rolling my own IR Emitter?"

The (good) answers would then be:

  • Yes, (pseudo example)
  • Yes, (link to existing concrete implementation you missed)
  • Maybe, (explain the optimism)
  • No, (explain why not)

However, under the answer you received and accepted you also indicated that you didn't know that you could narrow your search with tags:

Didn't think to search with [tags]; thanks also for the Github link.

I'm not positive that your question is an exact duplicate of another, but similar ground has been covered. Plus, you now have LLVM bindings for F#, do you still have this question?

Given that, what would you hope to gain from having the question re-opened? It's probably better to move on with the help you received from your answer and ask a new, much more detailed question if you get stuck again.

share|improve this answer
Thanks for the answer. I would have agreed begrudgingly if the question were marked as exact duplicate, since I may have found at least a starting point if I'd searched for [F#] [LLVM]. The answer I received was perfect, and the main reason I asked for the question to be reopened is because it reinforces a questionable precedent, especially because it received 2 close votes before I edited it and 3 more after. It's also quite frustrating having asked two questions with opposing qualities, both criticized for what was untrue of the other. It makes it difficult to know what to ask. –  Rei Miyasaka Jan 28 '13 at 2:51
@ReiMiyasaka I understand your frustration and it is something that is being discussed. On the one hand, observable artifacts of people interacting with your question are going to arrive asynchronously. There's .. not much we can do about that. As for the second? I'm not really a fan of the term 'not constructive', as what we're really saying is 'not a good fit', and we should be a bit more explicit in that regard. That's giving clear signal that you didn't ask a bad question, we're just bad when it comes to handling questions like it. –  Tim Post Jan 28 '13 at 3:07
Well, you can open it with a single vote. You didn't for reasons unrelated to your ability to do so. –  casperOne Jan 28 '13 at 13:20
add comment


hmm lets review some facts about the voters and the question

  • The first two close voters have activity on the the next three people have none
  • The close voters aren't noisy on Meta (1 answer and 1 comment among the 5 voters)
  • 25 custodian and 7 reviewer badges from the to close voters
  • Looking at the review history we can see that the last three close voters found your question via the close review queue.
  • Your question is hard to evaluate if you don't know the technologies involved (F#, LLVM, IR Emitters) much less know if its reasonably answerable on SO.
  • Your question looked a lot like bad questions from the past that should be closed.

I would say yes people are voting to close inappropriately when they should be using the skip button instead. Particularly in the case when the question is hard to evaluate.

I would be especially critical of Rolando's vote, considering he managed to vote to close another question 8 seconds earlier and another one 5 seconds later. And ended up voting to close 40 questions in less than 6 minutes or 1 every nine seconds.

enter image description here

Note: This queue exists because it used to be that questions that should be closed didn't get enough close vote velocity. Now the reverse is happening.

share|improve this answer
Ridiculously fast reviews have become something of a red flag... Unfortunately, we don't have audits running on all the queues yet, but I've been handling a few of these cases manually when they come up. –  Shog9 Jan 28 '13 at 3:26
good to know. As suggestion for a counter measure, perhaps you should just increase the time allowed between close votes as they make them. Similar to the way invalid password rejections increase in time as passwords are submitted –  Some Helpful Commenter Jan 28 '13 at 3:37
You bring up a good point here, but my first instinct would be, at a minimum to request more details in a comment as I did find the question rather broad. A solid understanding of F# would probably provide more than enough context, but that doesn't negate the fact that such context should be established in the question itself. It's not really the technical merit of the question, it's the manner in which it was asked. –  Tim Post Jan 28 '13 at 3:37
@TimPost "It's not really the technical merit of the question, it's the manner in which it was asked." We should be piling in with edits in cases like these, not piling in with close votes. It's not the merit behind the misnamed close reason Not Constructive, it's the manner in which it is applied. It would be helpful if fewer people who don't understand a question applied mob justice. –  AndrewC Jan 28 '13 at 7:46
@AndrewC Sure, you can edit .. but you can't always insert details that you don't know, which is the case here. I agree, edit edit edit if everything, or mostly everything is there. But, in this particular case (and I'm only speaking to this particular case), I can understand the closing instead. Even for those that hit skip if unsure, this seemed pretty cut and dry. I fully agree with you in some cases it's not, but again, I'm speaking only to this instance. –  Tim Post Jan 28 '13 at 7:52
@TimPost This is a classic example of an OP deploying the word "best" where utilising "how" would have been better received. It's unusual to have a programming language where a problem has a unique solution, and we really penalise OPs who admit this in their Q. Not constructive is surely there to discourage resolution-free debate and list answers, but is being applied as "Contains the word best" by too many. If we carry on down this route, we'll have to rename it tmtowtdi and of course close everying in the perl tag as part of the first purge. –  AndrewC Jan 28 '13 at 8:07
@Tim I vaguely remember saying this on the P.SE meta too, but I do think it would be much more helpful if the asker could at least be asked to explain what the problem with the question is. Votes have no informational content, only judgment. By the time I got an explanation as to what exactly was wrong with the question, the ball was rolling for the question to be closed. As SomeHelpfulCommenter said, I agree that it was probably hard to evaluate because of my choice of words -- which happened to be red flag words -- but was it really that hard? Couldn't we have some more slack? –  Rei Miyasaka Jan 28 '13 at 8:08
@ReiMiyasaka It used to be that way, but due to the massive scale we've achieved, the process has become sort of industrial, more so than we'd probably like. Still, a closing is not an end of a question - and we are presenting closed questions that have been edited for other reviewers to examine. In your case, things turned out fine but I do get what you're saying and cases like this are things we consider when we contemplate ways to improve the workflow. Some of this is just straight up growing pains. –  Tim Post Jan 28 '13 at 10:19
add comment

You must log in to answer this question.

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