Regarding F# and OCaml, this question:

  • Was asked in 2008: paraphrased, "How similar are F# and OCaml? Can I use OCaml resources to learn F#"
  • Got various detailed answers during 2008 and 2009
  • Got voted to close in November 2011
  • Got voted to reopen today
  • Got moderator closed today (I don't think there was another vote to close)

The closure reason is 'not constructive', i.e. the sort of reason you'd give when closing a question like 'is F# better than OCaml?'.

But this question isn't subjective: it's possible to answer by listing features of OCaml, and features of F#, and comparing the two lists. And this is in fact what several of the answerers have done.

What has happened here? It seems to me like a plain objective question, and should have one correct answer. What have I missed?

  • 3
    See stackoverflow.com/posts/179492/revisions for the history – ChrisF May 3 '12 at 21:59
  • 13
    Obvious case of mod brutality. – a cat May 3 '12 at 22:00
  • 6
    Five months to reopen? Why so long? – random May 3 '12 at 22:00
  • 2
    If the above question was closed, why not exhibits a, b, and c? I think some of those are even more subjective than the one above, yet I would not vote to close any of them. Feel free if you feel you must. – user167233 May 3 '12 at 22:36
  • 5
    @RyanRiley Every question should be assessed independently. It's highly unlikely that a mod decided to leave those open and close this one at the same time; people can't be everywhere at once. – user154510 May 3 '12 at 22:47
  • 6
    "mod brutality"? That's not hyperbolic in the least... – Andrew Barber May 3 '12 at 23:48
  • 1
    @MatthewRead I wasn't trying to state your assertion. If questions are closed, I would expect them to be closed in a consistent manner. Yes, some will definitely be missed. I'm surprised, however, that the SVG vs. Canvas question, with its high popularity, wasn't identified and closed. Also, if the above question was indeed in violation, I would expect those other three questions to be closed rather quickly, now that I've raised them. If not, I would appreciate any understanding as to why they are different, as I don't see the difference. – user167233 May 4 '12 at 0:25
  • 3
    Having still seen nothing that makes any sense, I can only conclude that there exists no firm, consistent answer. As such, I have no confidence in my ability to participate productively in StackOverflow. – user167233 May 4 '12 at 0:40
  • 4
    Considering there is a really comprehensive list of differences on the MS site, I don't understand the fight to save this one question? Especially considering it is from 2008. – user7116 May 4 '12 at 1:37
  • 3
    @AakashM "StackOverflow is imperfect". The problem isn't Stack Overflow. The problem is the hoards of people itching to close and/or delete questions and answers they don't even understand. – J D May 4 '12 at 9:18
  • 2
    I agree with @JonHarrop. That's the problem here. And if I can't understand why this question is closed versus the other three listed above, then I have no confidence that anything else I do here will 1) remain unclosed, 2) abide by SO's FAQ, or 3) be truly useful. – user167233 May 4 '12 at 10:56
  • 8
    @RyanRiley Yes, appearances are deceiving. For example "popping up on Twitter", that's mostly you rabble-rousing. The rest of us have Twitter too, you know. As for "mods fixing our 'close me some questions'" needs, really? Hyperbole much? You're showing an extreme lack of knowledge (or willful ignorance) of the system in all of this. Instead of all the hyperbole about leaving Stack Overflow, out of control mods, and all that other crap, how about doing some research on meta and engaging in some constructive dialog about how to best resolve this? I think we'd all be better off for it. – casperOne May 4 '12 at 12:41
  • 2
    @casperOne As noted, I was only stating the perception. Also, I wasn't referring to my "rabble-rousing" but to several questions over the last month that have been noted as closed, none of which I "rabble-roused." I'm frustrated by any lack of coherent response here, and I'm not really interested in participating in something in my free time if it 1) isn't my primary interest, 2) requires lots of research (as you are indicating), and 3) leads me to conclude that I can't know whether I'll be successful participating. – user167233 May 4 '12 at 13:08
  • 2
    FWIW, I think SO is a great platform. I've enjoyed it and found some good discussion here. I'm frustrated only by the lack of ability to get clear answers on how to participate, and I don't do well with abiguity. As use of this site is merely a hobby for me, I recognize my free choice not to partake. I also recognize it's best for me to avoid things that just frustrate me. Thank you to the SO team for your hard work, and I'm glad that you are a service to so many developers. – user167233 May 4 '12 at 13:11
  • 12
    I should delete all of these "I'm not winning the conversation so everybody else is a bag of assholes" comments. – user1228 May 4 '12 at 14:22

Ok, here's how this went down.

This question has a slight history. It wasn't even on my radar at this point.

It was then reopened by the community. However, two hours before it was reopened, there was this gem of a flag placed in the moderator flag queue:

Why the fuck was this question closed? Moderators should behave like moderators, not dictators.

Ignoring the vulgarity of the above flag (which is an inappropriate message for a moderator flag on any of the Stack Exchange sites), it did prompt me to look at the question.

At this point, the question had been reopened. I looked at the history. Some things to point out:

  • The question had been closed for five months before it was reopened.
  • In over three years, not a single edit had been performed, even though the banner had been on the question for five months indicating that it was not a good fit for Stack Overflow.

That said, I closed the question again as "Not Constructive". Instead of paraphrasing like Tim, we'll go over each sentence:

I hear that F# is derived from OCaml. How true is this statement?

Well, how true is any statement? Granted, there might be a way to definitively show this, with references, facts, etc (as stated in the FAQ) but just because you have references to support your argument doesn't mean that it can't be a non-constructive argument to begin with.

Also, this question fails another fundamental tenet on Stack Overflow; it shows no original research.

Stack Overflow is not your personal research assistant.

This is akin to many of the crap questions that we get which are "gimme teh codez" questions.

At the very least, the post could be improved to show references that indicated that there is a modicum of original research into the question.

Taking the second question:

That is to say, are the resources available for learning OCaml useful to someone who wants to learn F#?

This is essentially asking for a list of things.

Stack Overflow is not a List for All Things.

The standard close reason for these questions is "Not Constructive".

Taking the last question:

What are the major differences between the two languages (aside from the fact that F# is .NET)?

This is again, asking for a list of things. See above.

That said, there was a time (around when this post was originally posted) that questions like these were tolerated, but that is no longer the case. New questions that exhibit these attributes are closed and possibly deleted on sight. They simply have no place on Stack Overflow.

This isn't to say that the answers might not have value. However, good answers are not indicators of good questions, and that doesn't save the question from being closed. It might save the question from being deleted but definitely not closed.

With all that in mind, I closed the question again. I didn't delete it because the questions and answers are slightly upvoted (compared to other questions and answers on Stack Overflow, 30-50 votes is nothing) and had a somewhat elevated number of page views in three years (10K+, which again, stands out, but is nothing compared to other posts).

Questions are closed to indicate there's something wrong with the question and it needs improvement. No one has bothered to edit the question in over three years. It took over five months for the question to be reopened the first time.

Even after this was posted to Meta, it took over a four hours for it to be reopened. Posts highlighted on meta tend to get questions reopened very quickly.

This was possibly explained in one of the now-deleted comments on the original question about how the subset of the Stack Overflow community interested in this question didn't think anything was wrong with it.

It might be the case that the subset didn't think anything was wrong with it, but that subset operates within the greater context of the entire Stack Overflow community, and by that community's standards, this question is bad.

In the case where we have bad questions which are not acceptable by the current standards of Stack Overflow, we have a historical lock.

This question is not the place to debate this (but if you want, I recommend that you ask a separate question tagged with , and ), but it should be noted that even if it gains historical lock status, it will still have a banner that indicates that it is not an appropriate post for the site.

  • 2
    The nuances I must learn in order to participate effectively are too many for me. It's too much to think about when I'm already thinking about a problem or solution. That doesn't mean SO isn't a great platform; it's just not for me. – user167233 May 4 '12 at 13:21
  • @RyanRiley Try being a mod. =P It doesn't get any easier for us, but in the end, it's to try and maintain and continue to provide what you said many times already, is a great platform with great content. – casperOne May 4 '12 at 13:22
  • 1
    @casperOne "how true is any statement?". So you closed this question because you don't know how true any statement can be? – J D May 4 '12 at 13:24
  • 11
    @JonHarrop Seriously, just stop. – casperOne May 4 '12 at 13:25
  • @RyanRiley But the general tenet applies: do the right thing, and you'll do fine on Stack Overflow. You've not done the wrong thing, and I wouldn't worry about the nuances. People who do the right thing aren't going to get bit by them often (if at all). – casperOne May 4 '12 at 13:30
  • 2
    @casperOne, that's just it: I have done the wrong thing. You just closed a question I asked several years ago and brought up in the context of this discussion. I've responded to questions I thought were good, and those have been closed. I have to ask myself whether I want to participate in something where I don't understand the rules. I don't understand the rules here, and I don't want to participate where I can't quickly and easily grok the rules. – user167233 May 4 '12 at 13:36
  • @casperOne: I fully appreciate how challenging it must be. The list of questions re: "Why was this question closed?" is enough to assure me that I would never, ever want to be a moderator. I'm something of a Jeffersonian and thus tend towards anarchy. – user167233 May 4 '12 at 13:38
  • 2
    @RyanRiley Anarchy? I never would have thought =P (BTW, if you haven't visited Monticello you're truly missing out, it's gorgeous). That said, you're trying to put it in absolutes (even deletes are not hard deletes, they're soft, only in the most extreme cases is it truly purged from the system), and we don't work in absolutes. Close reasons are indicators saying "this isn't a good fit but you can still try and make it better". That's really all we're asking, make things better and these are ways to indicate to the community how to do that. – casperOne May 4 '12 at 13:41
  • @casperOne How would you rephrase the question in order to make it acceptable? – user167233 May 4 '12 at 14:12
  • @RyanRiley As I told Benjol I'm not sure that beyond the first question (about how derived F# is from OCaml) that it can be. – casperOne May 4 '12 at 14:17
  • I think the ultimate answer here is that trying to understand how one might go from OCaml to F# is not a SO question. Is that correct? The only questions I can then think belong on SO are Last Resort questions (I've looked everywhere, but I can't resolve this!) Alas, SO is not for Last Resort questions either. Yes, I like absolutes. I can work in gray areas. I don't know where the gray exists, as it seems the rules rule out most of the questions of which I can think. – user167233 May 4 '12 at 14:19
  • 1
    @RyanRiley It's not that it's not an SO question, it's more that if you have problems going from OCaml to F#, show us what you've done where your problems are, what you've tried, and we'll be more than happy to help (and host it until the servers go down for all the world to see so that future generations may learn from it)! – casperOne May 4 '12 at 14:24
  • 1
    @RyanRiley: Hey, just as an aside... Did anything constructive ever come out of what you learned from the question? As in, you stuck to OCaml, or found a happy path back and forth, or something else? – user1228 May 4 '12 at 14:28
  • 1
    I guess I'm out of touch, because I thought that Lists Of All Things were in fact suitable as answers on Stack Overflow. While I don't agree with the underlying principle (I think lists are useful), I can't argue that this question contradicts it. – Tim Robinson May 4 '12 at 18:05
  • 1
    @casperOne "...too vague..." I appreciate everything you've written here recently and it makes a lot more sense to me now (and I think others). In this particular case though I'd question "vague" because the number of differences between OCaml and F# is so small. Also, if lists are now banned then it would seem prudent to remove support for them from the markup. ;-) – J D May 6 '12 at 10:18

I think the people who dislike this question see it as Gorilla vs Shark: a comparison between two programming languages. But F# is actually explicitly inspired from OCaml and shares a significant common core, so it's more gorilla vs chimpanzee. There are useful general traits to be drawn.

The question calls, in part, for a list of differences. This is somewhat unfortunate: an exhaustive list of differences is not what Stack Exchange is about. A non-exhaustive list that mentions the most important differences, and groups and explains them coherently, would make a good answer. The question does ask for the major differences, which is not the same thing as all the differences, especially given the context of a person knowing one language and learning the other. (It's the opposite of “hidden features”, which call for only obscure points.)

The question does fit the constructivity guidelines. “Every answer is equally valid” does not apply: listing one minor point where F# and OCaml differ does not constitute an answer. Two answers can be compared: which one gives the best presentation? Which one mentions the most relevant differences (and avoids drowning the reader into details)?

The question might use a little edit, to avoid unwarranted closure or non-answers from people who don't read the question attentively. But it's an acceptable question for Stack Overflow as it is.

I'd vote to reopen, but I already did (and my vote expired at some point).

  • 2
    But in this case it makes sense because F# is pretty much a dialect of OCaml for .NET. – Rick Minerich May 4 '12 at 1:55
  • 2
    What is "the singleton list"? Also, please note that Stack Overflow is not a List for All Things. – Cody Gray May 4 '12 at 10:07
  • 1
    The question is formulated as "please list the differences between gorillas and chimps", thus it does not meet "good subjective" guidelines... – Sklivvz May 4 '12 at 10:34
  • @TheEstablishment ROTFL. Try Google: google.co.uk/… – J D May 4 '12 at 13:22
  • 1
    @TheEstablishment The set of differences is not subjective, only the way to present them. The way to present something is always subjective; the subjective guidelines aren't really relevant here. – Gilles 'SO- stop being evil' May 4 '12 at 14:43
  • 2
    @Jon I only see question in those search results that has anything to do with Stack Overflow/Exchange. It's this one. Is your argument that it should be closed as well? I disagree—despite the title, it's not asking for a big list of things as an answer, and that's not what the answers provide. (Word of advice: People will have a much higher opinion if you if you actually answer honest questions, than just saying "ROTFL" and linking them to Google. That makes me think you're 6 years old. I did that when I was 6.) – Cody Gray May 4 '12 at 19:22
  • @TheEstablishment A singleton list is a list with one element. – J D May 6 '12 at 10:20

I respect casperOne's position, but it's a keeper, for me:

  • In the context of the relationship between OCaml and F#, it's not terribly subjective, and the 'list of major differences' is finite.
  • I can't see when the votes came in, but if they were prior to the controversy, I'd take that as an indication of value.
  • Mildly grandfathered-in, I'd be inclined to be more lenient to questions from 'the old days'.

That said, all those who are here to defend this question and answers ought to take casperOne's hint and given them a bit of a Spring clean.

  • 1
    To your points: 1) Finite or not, Stack Overflow's Q&A system just isn't designed to handle such a thing 2) votes are an indicator of value, but not an indicator of quality, the question has quality issues which is what the close banner indicates. Deleting it outright would say we don't believe it has value and it was not deleted. 3) We don't grandfather questions in, but if it's particularly valuable, we give it historical lock status, but those should be very sparse, too many historical locks and it's efficacy becomes watered-down. – casperOne May 4 '12 at 13:07
  • Also (cc @JonHarrop) with the "bait" bit, care to elaborate? Both of you are bordering (and I'm being gracious with the application of "bordering") on trolling. – casperOne May 4 '12 at 13:08
  • 3
    @JonHarrop It's not my place to understand the differences between F# and OCaml; my place is to understand what currently constitutes a quality question on Stack Overflow and how to deal with it appropriately. As you have been exhibiting in many of your comments over this is that you don't understand on a larger scale what constitutes a quality question on Stack Overflow. Every community thinks they have that one special question. They don't, and this question is not it. – casperOne May 4 '12 at 13:10
  • 1
    @casperOne Again, what you've written makes no sense to me. – J D May 4 '12 at 13:31
  • 1
    @JonHarrop Obviously. – casperOne May 4 '12 at 13:34
  • @casperOne, I didn't feel like I was trolling. I've changed bait to hint, is that better? Maybe if you could give a hint as to how you think the question could be salvaged, that would give people something constructive to do... – Benjol May 4 '12 at 14:01
  • @Benjol It was directed more at the other party in the message. As for making it better, see my answer. The only thing that can really be salvaged about that question is the first question asked, about derivation. The second two are straight up list-requests, and there's no way to improve the question to make those aspects valid for Stack Overflow, we simply don't allow lists like that (and nothing personal to this list, it's how we approach all list questions). – casperOne May 4 '12 at 14:06
  • @casperOne, OK, I think. As an aside, people reacting violently to closure is normal, because it is often a prelude to deletion. I'd propose migrating 'big picture' questions like this to Programmers, except that I have difficulty keeping up with what the mods there do/don't like. It seems a shame to me to not have a place for this type of question: this is typically the kind of information that is diffuse and difficult to find, and being able to benefit from the combined experience of peers is invaluable. And to my mind, they Make The Internet A Better Place™ – Benjol May 7 '12 at 6:22
  • 1
    Also, this whole post vindicates my opinion that the 'keep-rep-on-deletion' change was totally ineffective as a means of avoiding controversy. People like their rep, yes, but they love their content. – Benjol May 7 '12 at 6:28

I did not close it, but my guess is that it's an open-ended list question:

How true is this statement?

is an open-ended, chatty question, and:

What are the major differences between the two languages?

is clearly a list question. Our FAQ states that such questions are to be avoided:

To prevent your question from being flagged and possibly removed, avoid asking subjective questions where

  • every answer is equally valid

Hope it helps!

  • 5
    I don't see the subjective part in this question. If I have an OCaml program that I want to port to F#, I'd like to know how much work I have ahead of me (or the other way around). There is no flaming in this question, it is just a question of 'What are the differences?'. – Robert Jeppesen May 3 '12 at 22:21
  • 3
    "every answer is equally valid" does not in itself constitute "subjective". – user159834 May 3 '12 at 22:24
  • 1
    Not all answers to this question are valid. F# and OCaml have more in common than they have differences, so it's possible to post an answer to a page such as this one, which explains F# for OCaml developers: plus.kaist.ac.kr/~shoh/fsharp/html/fsharp-vs-ocaml.html – Tim Robinson May 3 '12 at 22:28
  • 2
    @TimRobinson So what if not all answers are valid (by some definition). Isn't that what the voting system is for? Appreciated answers get a higher score. That doesn't need moderation? – Robert Jeppesen May 3 '12 at 22:42
  • 5
    @RobertJeppesen "How similar are X and Y" is subjective unless you enumerate every single detail of X and Y and match them up. And you might not do the same matching as someone else. If you avoid such a ridiculous task as listing all the features of both languages, then you're leaving information out and providing a subjective summary featuring your opinion. – user154510 May 3 '12 at 22:43
  • 2
    @MatthewRead "If you avoid such a ridiculous task as listing all the features...". Why do you assume it is "ridiculous"? – J D May 4 '12 at 9:31

What has happened here? It seems to me like a plain objective question, and should have one correct answer. What have I missed?

The only thing you've missed is that you are trying to reason with unreasonable people. Just read the comments on your question here. They are completely non-sensical. What can you possibly hope to gain from engaging such people in debate?

Cut your losses and stop contributing to Stack Overflow.

Just look at this quote from someone hiding behind the alias "casparOne":

Every community thinks they have that one special question. They don't, and this question is not it.

I have absolutely no idea what that is supposed to mean or how it might be of any relevance here. Yet this guy gets to destroy high quality content that he doesn't even understand.

And this one from someone hiding behind the alias "Won't":

So you found somewhere that accepts subjective questions and lists of stuff?

He doesn't understand that the problem is people like him, not subjectivity and lists.

If you want to do something constructive, stop trying to reason with them and start making backup copies of the quality F# content on Stack Overflow. The Websharper guys have already volunteered to host an alternative site.

  • 19
    Are you always this pleasant, or did we just catch you on a good day? – Cody Gray May 4 '12 at 10:02
  • 2
    @JonHarrop Closure doesn't destroy content though. Unless this question was deleted. (I don't think that was the case, was it?) – Bart May 4 '12 at 13:44
  • 8
    Awesome! So you found somewhere that accepts subjective questions and lists of stuff? Then what's the problem? Just post that kind of stuff over there, and come back here when you have practical, answerable programming questions. – user1228 May 4 '12 at 14:34
  • 1
    No, those first six were all from my sock puppets. Can't explain the other 8, though. – Cody Gray May 4 '12 at 19:10

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