last day (60 days later) » 
13:00 - 15:0015:00 - 20:00

15:00
@200_success depends on where you are..
I understand Pimgd had to go, but does anyone have thoughts on what "working code" means? That seems to be the core of this debate.
Is an interface "working code"?
Pretend that you had to review the Electric example, with no GitHub and no unit tests. Could you do it? Could you do it well?
As I said, we can tailor our definition of "working" as needed.
The question is whether we want such questions.
Ok, so the debate then is not whether these are currently on topic, but whether they should be on topic?
I obviously think that under our current rules, they are on topic, but I also don't much care for these questions.
Yes. Let's not be narrow-minded.
I don't think they should be on topic.
It draws opinionated answers.
15:08
@ckuhn203 Doesn't all questions do that? For questions that looks too opinionated, there's a close reason for that
For example:

opinions

1 hour ago, 5 minutes total – 19 messages, 2 users, 0 stars

Bookmarked 12 secs ago by ckuhn203

You could also say that all of our answers are opinionated.
2
True @Simon. But If you go back to the bookmark, you'll see a widely contrasting opinions without much to go on.
That's what happens in the case of an interface only question.
Most of our opinions are based somewhere in fact, but without an implementation of some kind, or opinions are just opinions.
There's no fact to back them up.
but you know what, at the end of the day it's a cop out. We're saying it's too hard to review this.
Which, we've agreed before is not a reason for a question to be off topic.
@ckuhn203 Not necessarily...
In fact it could also mean, that it's not reviewable.
Buswifi~
15:15
(playing devil's advocate) An interface is just a better specification
I want to review interfaces because theyd be suitable targets in a larger review too
Go on @Vogel612. I'm interested.
And per definition, is specification not code.
0
A: Questions about interfaces, protocols, and APIs

rolflInterface-only questions are off topic. This is why: Interfaces/Protocols define the interaction between two components. They describe a common mechanism for two otherwise independent 'systems' to communicate with each other. As a result: the primary purpose of an interface is not to 'do' thi...

and that makes it off-topic as missing code
15:17
Vogel that sounds like the "interface is design" argument that I made
It actually sounds more like the "example code" argument. chat.stackexchange.com/transcript/message/17204160#17204160
@Pimgd no it isn't...
@rolfl put it quite nice in his answer:
> If the question supplies an interface only, then then it can only be considered to be example code, because the current implementing/interacting code does not matter, is meaningless, and has no value to the asker in the context of the question.
Yes good answer i like that
because It's more like a class with:
public void methodName(Object... params) {
     //implementation goes here
}
would like to star that quote myself because it's so awesome.
So when is it ontopic
15:23
As soon as there's implementation
Can that be example code?
I just added a 'but' section to that answer.....
because everything else is example code...
The difference is that the author does not expect help with // missing code.
A specific request to review just the style/names/etc. of an interface would be on topic, I think
15:24
@rolfl I'd prefer to have it black / white actually
--> interfaces only are off-topic
regardless of question intent
I would too, but I don't think we can be that lucky.....
Rolfl "I have a class that does xyz, what do i call it?"
although, it is true that you can critique the naming on the implementation just as easily as on the interface.....
let me change the 'but'.
@rolfl exactly. Especially when the implementation can be anything as long as it adheres to the contract
Switching buses
15:26
the name of the interface method is irrelevant to the implementation...
so if the implementation does something completely different, is the interface still well named?
Switch complete~
soo we're all fine with interface-only questions being off-topic?
Yeah they lack context
But when are they ontopic
@Pimgd never.
That simple ;)
Thats not okay
15:33
@rolfl elaborates in his answer, that they are example code for the purpose of the question
If my code contains interfaces its oftopic
Why
nooo,.
interface-only
if you use interfaces that's a whole different story.
Okay so how much do i have to add to make it on topic
an implementation of the interface
and the review then is not about the interface only actually..
Can that be example code?
15:35
but whether the implementation adheres to the interface
@Pimgd well then it's example code.
Ah i see
(as are interface-only questions for that matter)
Hmmm
@Pimgd - in my mind, the 'negative space' of an interface is the most important part.
Negative space?
15:37
the primary purpose of the interface is to describe what's not there.
and it's the stuff that's not there, that is reviewable.
2
Okay new question
@rolfl I think that might have just convinced me.
Also, that this is an example code issue, not a working code issue.
We have reviewed DB schemas without queries, right?
Is the interface reviewable if you have the usage the interface and the implementation
@Pimgd - yes, but, the interface review "follows" from the implementation
as in,:
"This implementation could be better if the interface was structured differently".
15:40
Yeah like that
Hmmm
But even without the implementation, you could say "Your interface makes it impossible to do X."
but that would be a design review
(a good one, perhaps, but off-topic, and too broad).
Sorry, going on standby for a while. (breakfast)
enjoy.
I was formulating an answer to the DB schema thing.
I suppose its because you cant own usage and interface but not implementation
Thatd be silly
15:43
For a DB Schema, presented as DDL, you can review the style, indentation, names, etc., but a design-specific request would be off-topic.
Constructs like that end up with someone having to comply to your arbitrary rules
I have this SQL Script to create a database, is it a good script? <---- on topic
I have this SQL Script that creates a database. Is the design of the database good? <---- off topic
Fine line, but yes. That ^
Err the first onw sounds really basd
It would be like saying I have this program that plays tic-tac-toe, did I do it well.
15:45
Is this X good sounds so vague
the second option is I have this game that plays tic-tac-toe, but, should it be playing checkers instead?
Yes tictactoe is boring
=D
You never played UTTT .... did you.
21
A: Weekend-Challenge Reboot

Mat's MugThe Ultimate Tic-Tac-Toetm Tic-Tac-Toe is boring. Let's code The Ultimate Tic-Tac-Toe, a whole different story. Uh, what? Each turn, you mark one of the small squares. When you get three in a row on a small board, you’ve won that board. To win the game, you need to win three smal...

Dunno whatsthssat
Fking wobbly buds
/me laughing loud now.
15:49
How so
Hm the discussion seems to drift off?
because of the orthographic errors.
@Nobody yes kinda..
Cause we have a sokutuion
I think everyone's accepted the solution provided by rolfl.
*solution
Pfff
15:50
Just one quick radical idea: We take "review" more literally and just say what can be improved and not how ^^
@Nobody glad I know you're just positively trolling on that one ;)
what do you understand under positively trolling?
definitely defintive trolling to lighten the mood ;)
Well, it sounds like we've reached consensus. Lets get some upvotes on this answer.
3
A: Questions about interfaces, protocols, and APIs

rolflInterface-only questions are off topic. This is why: Interfaces/Protocols define the interaction between two components. They describe a common mechanism for two otherwise independent 'systems' to communicate with each other. As a result: the primary purpose of an interface is not to 'do' thi...

@ckuhn203 no sockpuppets here :(
I got a feeling that nhgrif may add some points against it though..
15:58
Sockpuppet @Vogel612?
Fake account I control.
used to garner additional rep
--> I can only upvote once ;)
with sockpuppets I could change that. I'd probably get a ban for it though.
Ahhhhh. Ok, well, there's lots of people in the room and only 3 upvotes on it.
Opinions may have changed since the Meta post, and you can't change votes easily. Should post a fresh question.
And I am absolutely sure @nhgrif will have something to say about all of this.
^^^ that
16:00
Perhaps with four poll responses to vote on:
1 Allow interface questions. Define "working" accordingly.
2 Ban interface questions. Define "working" accordingly.
3 Dunno. Let's run an experiment.
4 Dunno. Need time to think.
@rolfl in what way is an interface without implementation not reviewable?
Can we get a volunteer? I need to go get some work done.
@200_success we ruled out "working code" for reasoning..
@ckuhn203 I don't agree about that one. Yet.
Fair enough @SimonAndréForsberg.
16:03
@SimonAndréForsberg we were arguing:
interface ~= class with method bodies stripped --> example code
Anything reviewable on the interface can be reviewed on the implementation.
@200_success That should not be underestimated. It is hard to be updated with all the meta-activity we have around here.
anything interface-only, is design-related.
the design is reviewable, but, it's off-topic as a question
What is so bad about status quo? There is no official statement on this and the community decides on a per case basis by not answering/voting
@Vogel612 I don't normally upload example code to Github. What makes this interface example code?
@rolfl Why is it off-topic if it is reviewable?
16:07
we have a working meta were people can argue their case if they feel they were closed without good reason
@SimonAndréForsberg in itself nothing.
The interface is code. If the interface is reviewable, why should we not review it? Aren't we Code Review
but as soon as you want it reviewed, it could be anything
I'm sensing that reconvening after some time to think might be a good idea.
while interface typeof code, !code typeof reviewable per se
16:08
@Vogel612 what do you mean "it could be anything"?
I am off, have a nice day and see you later
@Simon, from my answer, there are only three things that can be wrong with an interface: won't compile, bad style, bad design.
he primary purpose of the interface is to express the design.
if the design review is requested, the user may as well supply a flowchart.
the interface is a proxy for that.
if the style review is requested, it may as well be based on an implementation
and if you'd take naming into that, the names are meaningless without the implementation behind them,
@rolfl that is the best argument I've heard so far for considering interface questions off-topic.
because (using your example), As long as I return a List<T> i could write anything:
public  List<T> getFields() {
     return new ArrayList<T>(myService.getPlayers());
}
could be a perfectly "valid" implementation
--> the interface itself isn't off-topic, the missing implementation is.
16:14
Interfaces don't express flow charts, though.
16:26
@200_success make it an UML then. The problem stays the same...
2
16:42
Here's my opinion about this:
0
A: Questions about interfaces, protocols, and APIs

Simon André ForsbergAre questions about interfaces/protocols and APIs on-topic? Yes. But that does not mean that the question itself is on-topic. There are still other factors to consider, such as: Is there enough context in the question? Is it clear how these interfaces will be used? I see no reason whatsoever to...

@Simon - can you think of a way to ask a question containing just an interface, and still be on topic?
@SimonAndréForsberg the big question is then where do we draw the line?
or, alternatively, is there an example already?
or is it again something like (quoting rolfl):
> I don't know where the line is, but I know when it was crossed.
@Vogel612 I think it all boils down to: Do I think this is reviewable, given the description, code and the questions asked?
16:50
7
Q: Interface for a tree node in Qt

x6herbiusI have the following C++ interface (in Qt) for a tree node, inspired somewhat by Valve's implementation of a culling octree: /** * @brief Interface for a recursive tree node. */ class ITreeNode { public: /** * @brief Virtual destructor. */ virtual ~ITreeNode() {} /** ...

@SimonAndréForsberg but is it reviewable when you could hide absolutely anything in the implementation??
38 mins ago, by Vogel612
public  List<T> getFields() {
     return new ArrayList<T>(myService.getPlayers());
}
That question is asking: how do I write a good system for manipulating tree data structures, and is this interface close?
> In order to improve my understanding of how interfaces should be designed I'm looking for a critique, if possible, of the functionality of this interface. My general target was to include a useful set of basic tree-related functions - obviously the bare minimum would be simply adding/removing/getting children,
> but I also felt as though automating potentially useful processes such as removing all children (pruneSubtree() - thinking recursive deletion) and removing a node from a given tree structure to leave a forest might help make future tasks easier.
@Vogel612 You should probably assume that the implementation reflects the intentions of the interface.
It is asking: Is my design good?
it is a crappy, off-topic question, that has been horribly up-voted, and answered as if it was on programmers.
(and, apparently, I upvoted it at some point, sorry).
3
It does not even know what use cases it is trying to solve.
@rolfl very tempted to pin that
I'm not room owner. Can't pin even if I tried...
16:53
@SimonAndréForsberg but for an interface-only review, you can't assume that.
mod-super-power.
and that's IMO the core of the problem
@rolfl How would closing the question as off-topic help anyone?
@Vogel612 Why not?
16:54
you don't know what hides behind the imaginary { /* insert implementation here */}
which is the point of an interface
@SimonAndréForsberg At this point, it may not.... but, if I paid more attention the first time.....
you can hide anything behind it.
... it should have been closed immediately, and migrated to programmers, and asked as a "How do people use tree data structures, and what methods do people run on them?"
where it would have been closed as too broad.
@Vogel612 the point of an interface is to make a contract. Sometimes the point is to not care about how it is implemented and sometimes to push you in a direction for how to implement it.
@rolfl And again, how would that help?
......
It would not have helped the asker.
it would have helped Code Review.
16:57
@SimonAndréForsberg well then you are reviewing the contract, and that's probably better off on {insert code-design site here}
@rolfl because we wouldn't have it come back and bite us now?
^^^ that too ;-)
Code Review is not a place for designing your application.
it is for revieing the implementation
That question is asking: how do I design this interface?
@Vogel612 @Nobody knows what is on-topic at programmers.
and the answer is not a code review, it's a design discussion, and it's too broad for any SE site.
it does not fit the Q&A format of SE
@rolfl Generally, neither does Code Review
far too many 'what if' type considerations.
16:59
You can spend your whole life thinking "what if..."
@SimonAndréForsberg nobody said it should go to programmers.
@Vogel612 Are there other code-design sites?
no, the question is, is there any code-design site?
not code-design, but 'application design'.
@rolfl Ah, so now we're Implementation Review?
17:01
because last time I checked, programmers wasn't
@SimonAndréForsberg maybe a little?
@Vogel612 last time I checked, programmers was. But then again... I don't know much about that site
@SimonAndréForsberg maybe we read the help center differently, but there's that cool infographic they got..
I think it would fall into the section "just you"
Simon: I have to implement a system that solves all project euler problems. Is this interface good?
public interface EulerSolver {
    public void solve(int number);
}
Review please? & thanks!
And I think that for that "just you" section is where Code Review comes in, and what makes us unique. Many questions that are for "just you" fits here.
@SimonAndréForsberg exactly, but does that mean we should allow Questions about "just you and your design"
IMO we shouldn't
@rolfl did I compliment you on your "low rep gimmetehcodez-user" acting skills yet?
17:05
@rolfl No it is not because most Euler problems return a number. However, not having looked at all Euler problem descriptions I believe that some of them have different requirements for what to return, such as "all numbers that fulfills xxx". I do not consider that question off-topic
@SimonAndréForsberg well but then again it could be:
> Yes this interface is awesome, as long as you put in the choice, solving and outputting of a challenge behind that method
I would however edit out the "& thanks!" part, if Jamal hadn't already done so
which is reviewing the same interface...
but coming to a completely different end
I would probably have given the question a -1 though. But that's not the same as an off-topic vote.
@Simon - my suggestion, is that an answer to that qeustion would need to make many assumptions, and the question itself is too broad.
17:08
@rolfl Then close it as too broad, not for "non-working code".
The review by necessity, would jave to be about the design, and that's not code.
You'd then have to implement a ConsoleEulerSolver and a GuiEulerSolver and maybe an AbstractEulerSolver..
OK, so then, I will change my statement, and say: All interface-only questions should be closed as too-broad
@rolfl Is this not code?
5 mins ago, by rolfl
public interface EulerSolver {
    public void solve(int number);
}
@Simon - yes, it is, but, if you read my answer, I even say it is reviewable....
... unfortunately, the point of the question is not to review the code style, but the design it represents
17:09
@rolfl I am not willing to say that "All" should be closed as too-broad, but I can imagine that many of them can be closed as such
I think however we are making a monkey of dust here (or whatever the expression is, if such an expression even exists in English), we aren't getting that many interface-only questions at all.
If the point of the question is to review the design, and design-only reviews are off topic, then the question should be off-topic.
if the point is to review the style, then there should be no problem with including the implementation as well.
@rolfl in addition to what I said before, I would remove that public in public void as it's implicit
You are proving my point.... I think.
Either way, I have no plans in asking an interface-only question in the near future
The 'value' requested by an interface-only asker, is feedback on the protocol/API/design.
As a consequence, the interface itself is merely pseudo-code.
it is a 'tool to describe the design'.
17:14
@rolfl actually the interface isn't pseudocode...
it can be actually workign code, taken directly from the production code.
it can be, but, it is a description of the design.
but that doesn't matter, as the lack of implementation behind it makes it pseudocode.
If you take java.lang.Iterator, and ask for a code review, by necessity you are reviewing the design/strategy/concept, and not the actual implementation.
While there is no doubt that it can be reviewed, we know that design rviews are too broad for Code Review, and SE in general.
if we let interfaces get reviewed, we may as well let white-board photos get reviewed.
I have some code that implements the above....^^^^
and then comment that blue-ink and red-ink are commonly confused by colour-blind people.
(or is that red, and green?).
meh, this is a diversion, and off-topic.
;-)
The point is, that we can, as intelligent, insightful people, offer a very good sounding board for all sorts of concepts, systems, and protocols..... we can do it.
But, should we do it?
the answer is NO, because it implies that we are people who can help review designs, and that design reviews and discussions are on-topic, in general
If you can express your design as an interface, then feel free to ask it here.
^^^ we do not want that happening.
Let me tell you about a system where you can build nodes for use in tree data structures. It will be able to do all these things: a, b, c, and d. Is that a good design?
Actually, that's a good word.... will
My code will be able to do xxx.
it is not currently able.....
aaaand we got our next reason ;)
@rolfl Do we really know that?
17:24
so we're closing interface only questions as: non-working code, too broad, example/stub code and not implemented yet!
@SimonAndréForsberg what else does an interface express?
@rolfl No you don't. You never participated in that ;)
It just says: Anything that implements me, will be able to [..]
@Vogel612 "we know that design rviews are too broad for Code Review, and SE in general."
> you are asking an open-ended, hypothetical question: “What if ______ happened?”
> every answer is equally valid: “What’s your favorite ______?”
> Your questions should be reasonably scoped. If you can imagine an entire book that answers your question, you’re asking too much.
> Chatty, open-ended questions diminish the usefulness of our site and push other questions off the front page
From help/on-topic
17:26
> What types of questions should I avoid asking?

First, make sure that your question is on-topic for this site.
^^ That's a funny way to start that page
> Best practices in general (that is, it's okay to ask "Does this code follow common best practices?", but not "What is the best practice regarding X?"
> How to add a feature to or solve a problem with your code
> Higher-level architecture and design of software systems
it's just coming more and more ;)
On-topic rule:
> To the best of my knowledge, does the code work?
just because it compiles, does not mean it works.
you cannot 'run' an interface
And we haven't exactly defined what working code is. So please don't use that argument
work != runnable
@rolfl Just to make the whole thing a bit worse, what about Java 8 default methods in interfaces? Let's say you have an interface with excessive use of default methods, would that be on-topic?
@SimonAndréForsberg well is it actually "runnable"?
just for the sake of the argument?
17:32
@Vogel612 default methods are runnable, yes.
@SimonAndréForsberg The design/concept represented by the interface is not on-topic, but, the implementation of it is.... and the default methods are implementations.
Well where's the problem then.
What makes default method different from a "default" implementation?
@rolfl Perhaps you should post an answer to this meta question?
18
Q: Reviewing "design"

Simon André ForsbergIt has been said in various comments that on Code Review we review code and not design. I find this statement not very clear though. Obviously, if someone has an UML and not any written code, that's off-topic on Code Review. However, if there is a question with a finished implementation, such a...

@Vogel612 good point
Either way ima go home now..
its's way beyond TTQW..
17:47
@SimonAndréForsberg I will.
18:14
0
A: Reviewing "design"

rolflCode Reviews in general (not specifically at Code Review Stack Exchange) will often review the design. The people doing the review also have influence on the design too, so it is natural. Off-Topic The design itself though, is a very broad, and unsubstantial concept. On Code Review (and Stack E...

 
1 hour later…
19:22
@rolfl What do you mean by "stable design"?
Is it design that is likely to change, or is it design that is not very functional?
> additionally, if the design is not stable, then the code is off-topic because one of the on-topic questions is: To the best of my knowledge, does the code work?
This is probably one of the silliest things I have ever heard on CR Meta:
> design reviews are only on-topic when the question does not ask for one
13:00 - 15:0015:00 - 20:00

  last day (60 days later) »