What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 128 Stack Exchange communities.

Before I post this question I've read

I want to get an answer of the truth with my question

Why doesn't Array class expose its indexer directly? [closed]

for design my class in the correct way, but the question get closed by the reason of not constructive.

By the declaration of not constructive:
As it currently stands, this question is not a good fit for our Q&A format.

  • According to Bart's answer before:
    We need a good single question related to a practical problem you face ... I want you to ask me a single, self-contained question.
    Thus, should I change the question to
    What should my ToArray method return?
    Would that be better?

We expect answers to be supported by
facts - Does it closed because of there are no answer supported by facts with my question?
references - I can't figure out the references myself, but not implying nobody does. If I can always done it myself, then I would not ask.
or specific expertise - Does it closed because of the question can be answered without specific expertise?
but this question will likely solicit
debate - I'm not expecting that.
arguments - What for?
polling - Opinion poll? No, I expect the truth for the why.
or extended discussion - Then don't extended it, just tell me why.

share|improve this question
6  
Possibly because you're asking why something is implemented like this, and only the developers of the programming language would know, thus leading to speculation. (NB: I don't have the slightest clue about C#) –  slhck Jan 26 '13 at 16:19
    
I'm on the "hardly any clue about C# front" as well. But if you ask about the "why?" of a language feature (which your title suggests) then that's not constructive along the lines of @slhck's comment. It might lead to extended discussion/debate about the motivation. That's what such questions invite. Saying "Then don't extended it, just tell me why." is not going to change that. –  Bart Jan 26 '13 at 16:26
    
I would think there might be something I don't understand with semantically meaningful, or the truth that I didn't get it. Okay, and now, how can I improve/correct it? –  Ken Kin Jan 26 '13 at 16:33
2  
If the "Why?" is the only question you have about this (which it seems you do), I'm not so sure if this can be saved. It seems you understand how it works, but are looking for the motivation. If you have no other question than that, I wouldn't know how to modify it. –  Bart Jan 26 '13 at 16:39
    
I want to understand why, because if it is only for backward compatibilities, than I should rather let my method returns object[] for the reason of no better choice in my scenario, otherwise Array. –  Ken Kin Jan 26 '13 at 16:48
    
I'm worried about that I might get into this situation in the future. Is there a way to prevent? –  Ken Kin Jan 26 '13 at 17:04
1  
@KenKin: your question should be about the actual problem you face. Knowing why the language was designed like that won't change the fact that it is designed that way, so an answer to the design question won't directly solve your problem. Ask how you can work around the limitation you're seeing/problem you're facing. (Also Programmers.SE does handle some language design questions. Example. Might be worth your time checking out their comprehensive faq). –  Mat Jan 26 '13 at 17:20
1  
Thanks to all of you. I just think that: knowing why helps knowing how. –  Ken Kin Jan 26 '13 at 17:42
2  
@Ken Kin: I agree with you entirely on that. But on Stack Overflow, ask for how - good answers will also explain the why part when it matters. –  Mat Jan 26 '13 at 17:54
    
I've just tried to describe my question more clearly. –  Ken Kin Jan 26 '13 at 22:22

2 Answers 2

up vote 3 down vote accepted

Yes, to a small extent you have misunderstood. I saw this appear in the re-open queue and spent quite a while working out why it was closed before voting for it to remain that way.

The reason for the closure is explained pretty well in Alexei Levenkov's upvoted comment (my emphasis):

KenKin I vote to close and removing my guess answer why it was done that way. Unless Eric Lippert decides that your question is insanely interesting you have more or less no chance to dig inner reasons of "why". My guess is "no explicit demand for feature and works", but it is just that - guess.

I don't know that I can say it better than that. Unless the designer of the language passes by and decides to answer your question any answer will be a guess, and therefore not very useful for the future. He might, he's a Stack Overflow user but it doesn't seem likely. If he'd like to answer it he can always flag your question for moderator attention to get it reopened.

To go over the points in the close reason; as the question is not answerable by the wider community they cannot supply facts, references or specific expertise. They will instead have to rely on guesswork and discussion.

share|improve this answer
    
Eric Lippert until recently worked on Microsoft and steered C#, and served on the C# language committee. He wasn't the original designer of C#, but he was the closest we had to that, and if you look at some of his highest voted answers, stackoverflow.com/users/88656/… you will see that the bolded part of your quote is actually pretty likely. –  Kate Gregory Jan 26 '13 at 17:18
    
I know it's possible @Kate. Likely? That's up to him. If needs be, he can flag for moderator attention and request a ping when it's reopened. I'd be against leaving questions open when there's only one person who can answer them on the entire site. It's uncomfortably close to asking a question of a specific user especially as they will fill up with fluff answers in the mean time and it might set a precedent for the time that user leaves (or goes on holiday etc). –  ben is uǝq backwards Jan 26 '13 at 17:28
    
i agree, actually - most of the time these "why is it done that way?" questions are unanswerable, but even when they're answerable, they're still offtopic here. What will the OP do differently upon knowing? I didn't follow the comment about object[] but it's possible there's an answerable question lurking inside the offtopic one –  Kate Gregory Jan 26 '13 at 17:31
    
Wow.. a huge list. I don't konw how to search the keywords with particular user's answer yet. –  Ken Kin Jan 26 '13 at 17:32
    
There's some help on the search page @kenkin... some are well worth a read. –  ben is uǝq backwards Jan 26 '13 at 17:33
    
Thanks everyone. –  Ken Kin Jan 26 '13 at 17:45
4  
Questions can be brought to my attention via the contact page on my blog, though of course I do not guarantee that I'll get to them; I'm busy drinking from a fire hose of static analysis knowledge these days. In this particular case I don't know why Array was designed that way. Rather than trying to figure it out, I'd spend my time trying to figure out why you'd want to use Array at all instead of T[], which seems like the far better choice. –  Eric Lippert Jan 27 '13 at 8:03
4  
And in general yes, it is very difficult for me or anyone else to answer "why?" questions. (And "why not?" questions are worse.) C# got the way it is today through a design process that has spent several dozen man-hours a week of arguing about features for over thirteen years; trying to tease out the answer to a "why" question from that can be very difficult. –  Eric Lippert Jan 27 '13 at 8:06
    
@Eric Lippert: Thank you very much. I'm sorry about that if it was considered "trying to tease out". I ask because I faced to the problem to figure out why recently. Before the moment, I just wrote "working code". Now I'm trying to design, and avoiding to be beaten with something how I designed it for no reason. –  Ken Kin Jan 27 '13 at 20:45
4  
“Unless Eric Lippert decides that your question is insanely interesting you have more or less no chance to dig inner reasons of "why".” This is nonsense. First, there are other people in the world who understand language design. Second, “this question requires too much expertise” is not a close reason. –  Gilles Jan 28 '13 at 19:25

No, you didn't misunderstand “not constructive”. Your problem is that a large part of the Stack Overflow community does not understand the topic of your question. This is fairly common with language design questions.

Programming language design is a science, albeit a poorly-understood one. There are reasons to make this or that choice, which can have to do with nice theoretical properties, ease of implementation, performance, etc. To complicate matters, language design is also a historical process, so sometimes the reason is “we didn't understand the implications at the time” or “the author of the spec made a typo”. Both kinds of answers call on facts and specific expertise. The former kind is considerably more interesting than the latter, but usually if the asker had known he wouldn't have needed to ask.

Programming language design is on-topic on Stack Overflow because it has a direct impact on programming. It is also on-topic on Computer Science since programming language design is a branch of CS. Unlike the SO community, the CS.SE community understands CS, so I think your question would get a warm reception. However, the CS.SE community is vastly smaller than the SO community. In practical terms, you are far more likely to reach someone who knows the answer on SO than on CS.SE.

(As an advocate and moderator of CS.SE, I hope this will change. Hey, y'all programming language designers, come and join us on Computer Science!)

share|improve this answer
    
Thank you very much! –  Ken Kin Jan 28 '13 at 19:31
1  
Knowing principles of language design still won't allow you to answer this question as written because it is a specific question as to why a particular team of designers made this decision. Knowing general principles would only allow you to proffer some possible explanations. –  Martin Smith Jan 28 '13 at 20:21
2  
@MartinSmith And this is a problem because? It's ok to post answers even if you aren't completely sure that they're correct and complete. Especially if your answer is interesting whether or not it's the ultimate answer to that question. –  Gilles Jan 28 '13 at 20:38

You must log in to answer this question.

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