6

I've got a question about a language feature for some hypothetical language I've been thinking about implementing. It's sweet, but rather complex, especially on the implementation side, and I'd like to know if it's genuinely workable, both in terms of whether anyone could wrap their minds around it and if it's feasible to implement. Now, I can rapidly see how this would be a totally subjective question, but I'm not sure how many of the subjective question criteria are met.

Is this actually a valid question to ask?

  • Sorry, I was quite sure that the question was implicit - "Is it a valid question?". – DeadMG Jul 2 '11 at 21:10
  • Have you considered askimg the question on cstheory.stackexchange.com – Conrad Frix Jul 3 '11 at 1:44
  • 2
    @Conrad CSTheory is for research-level questions. They emphasize the mathematical aspects of CS and the scientific approach. I don't think a questions about a hobbyist language would fit well there. – Adam Lear Jul 3 '11 at 13:11
5

Simply apply the same guidelines as you would to any other question.

  1. In order to be Constructive it has to focus on a genuine problem. Make sure you stick to questions that can be answered rather than discussed. Facets I can think of are:

    • Is it similar or identical to a feature that exists already?
    • Has it been tried unsuccessfully before, and if so, why did it fail?
    • How effective is it at solving the problem(s) it is meant to solve?
    • What are the biggest technical challenges in implementation?

    And so on and so forth. Stay away from open-ended questions like:

    • Would you use this feature? (no wrong answer)
    • Is it a good design? ("good" can mean anything)
    • Why isn't this feature more popular? (speculation)
  2. In order to be a Real Question it has to focus on a specific problem. That means:

    • Don't try to ask all of the above questions at the same time.
    • Don't just ask for "feedback" or something equally vague.
    • Don't describe a painfully complex subject in two sentences and ask "How would you implement this?" or "How can I improve this?" or some other non-question that could have a hundred different possible answers.
  3. Finally, in order to avoid becoming Too Localized then you have to make it relevant to other programmers. That means:

    • Make the question useful to anybody else who might want to implement something similar;
    • No walls of text/code describing your proposed implementation in excruciating detail;
    • No arbitrary rules or constraints which apply only to your current situation;
    • The feature itself which you describe should be intended to solve some reasonably broad class of problems; if it's intended to solve some highly-specific problem that only you and maybe two other people have, then it's not helping anybody else here.

This is pretty much the same advice I would give for any "pre-implementation" question. Just make sure you're asking it for the right reasons - i.e. because there's some aspect of the problem you want help with, and not because you're really excited about some idea you have and just feel like sharing. Not to insinuate that this describes you, it just describes a lot of similar questions the site has seen in the past.

  • I already had the really excited phase- that's what the Stack Overflow C++ chat room and my personal blog are for :P – DeadMG Jul 3 '11 at 10:58
3

There have been questions in the past along the lines of "what features should I add to my language" and "what do you think is missing from language X". Those generally end up not constructive.

For your case, I'd probably stick to periodic questions about designing particular parts of your language instead of trying to ask one big catch-all type question.

Further, I'd structure the questions to avoid providing your own answer to it at the same time. So, instead of asking "I want to do X to implement Y in my language, what do you think?", ask instead "How should I implement Y when designing a language?"

In general, design reviews are on-topic, so if you want to put up a question about an area that's giving you the most trouble, I think that'd be fine. The main thing to keep in mind is that we're not here to discuss your ideas, but to come up with ways to solve the problems you encounter while coming up with your design.

You must log in to answer this question.

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