P
Philip Potter
Richard said:One of the (several) bugbears that haunts this group is the issue of
topicality. There appear to be several topicality camps within clc at the
moment, which I'll attempt to categorise as neutrally as I can manage.
I'll assign a name and a letter to each group in an attempt to make it
easier for us all to discuss the various camps.
Group P (Purists): only code that can be written entirely in K&R C, C90, or
Group N (Neopurists): only code that can be written entirely in the latest
version of C
Group C (Conservatives): whilst the principal focus should be on standard
C, discussions of particular implementations and extensions for
illustrative purposes are acceptable.
Group M (Moderates): As well as standard C, common extensions should be
considered topical (e.g. those that are common in Windows (GUI and
console) and in Unix-a-likes).
Group X (eXperimentalists): These folks would like discussions of possible
changes and enhancements to the language to be considered topical.
Group L (Liberals): Anything written in a vaguely C-like syntax or in a
language based on C is topical (including C++, Objective-C, Java, and C#).
Group A (Anarchists): Anything and everything is topical, including device
drivers, Shrek, CD marker pens, jokes about viola players, and the
Metropolitan District of South Humberside.
I don't feel that the topic is a problem, but how it is policed is.
Topicality breaches should not be clamped down on every single time, and
that topicality policing should both be friendly and explain properly to
the poster /why/ their post is offtopic and /where/ they can get the
info they seek.
On top of that, I think that simply mentioning an
implementation-specific feature or using it within a posted program
shouldn't be a crime, especially if it's obvious to that the problem is
a standard C problem. For example, consider the following program:
#include <conio.h>
#include <stdio.h>
int main(void) {
char *name = "David";
gotoxy(10,20);
printf("Hello, %c!\n",name);
return 0;
}
While it is not standard C, because it uses <conio.h> and gotoxy(), I
feel that the ideal response to this would be to politely explain that
implementation-specific features are offtopic but to point out the
problem anyway, because the problem here is in standard C code[1]. I do
/not/ think that redirection would be appropriate.
I think that topicality violators are often treated with a short temper
here, because the regulators are tired of such violations. However
because there are so many different people asking questions, it might be
their first time posting here and so simply shouting "Offtopic!" at them
will leave them bewildered and frustrated.
I also think it is childish that some posters will immediately jump on
anyone mentioning C++ or (horrors!) "C/C++". Questions about C++ are
offtopic. But simply mentioning these things is not. This problem is
even mentioned in the clc++ FAQ, question 5.4:
'Do not refer to "C/C++." Some people get testy about that, and will
(unfortunately!) ignore everything else you say just to correct you with
something like, "There is no such language." It borders on pathetic, but
you'll probably be okay if you say "C or C++" instead of "C/C++." Sigh.'
In short, while I would put myself into the C group above, I feel that
minor topicality infractions should be tolerated, and blatant ones
treated with patience.
[1] Unless gotoxy() never returns. In which case you can add this
condition to your reply.