Re: [dev] c++-style comments [was fsbm]

From: FRIGN <dev_AT_frign.de>
Date: Thu, 6 Nov 2014 17:27:06 +0100

On Thu, 6 Nov 2014 10:28:51 -0500
Bobby Powers <bobbypowers_AT_gmail.com> wrote:

> I personally find C++ style comments more pleasant on the eyes for
> single-line comments, and they are part of the C99 spec.

De gustibus non est disputandum. I personally prefer {/*, */}.

> Can someone explain why they think /* */ sucks less than // ? It
> doesn't seem like it is for compatibility when st and dwm require C99
> anyway. An internet search did not turn up much, apologies if I've
> missed an obvious link or previous discussion.

There are many ways to show why {/*, */} sucks less than {//}. Here is
one:
If you take a look at C, everything is block-oriented. The smallest
linguistic entity is "...;", followed by "(...)" and "{...}". The
traditional comments "/*...*/" are part of this axiomatic system.
This approach is not line-oriented. Taking preprocessor
directives and includes aside, you can literally strip all newlines
from a given C-source and it would still compile.
It's okay that preprocessor directives and includes are an exception
here, given they are normally used before the first function
definition.
C++-style comments don't follow the block orientation. They break it.
Stripping all newlines from a C-source with {//} as a linguistic
subset will break the program. Given we at suckless work according
to the UNIX-philosophy, and even though UNIX-streams are mostly
line-oriented, a C-source should not depend on non-printable characters
to function properly (except for includes and preprocessor directives).

Moreover, if you write multiline-comments and use {/*, */} while at the
same time using {//} for one-liners can really disrupt code consistency,
and in the end make code harder to maintain and augment.

Because of these reasons, it makes sense to forbid C++-style comments
in a general coding convention.

Cheers

FRIGN

-- 
FRIGN <dev_AT_frign.de>
Received on Thu Nov 06 2014 - 17:27:06 CET

This archive was generated by hypermail 2.3.0 : Thu Nov 06 2014 - 17:36:13 CET