From: deepak kannan Date: 2011-01-02T14:41:37+09:00 Subject: [ruby-core:34026] Re: Multi-line comments --00163630f835fc404e0498d67c9a Content-Type: text/plain; charset=ISO-8859-1 +1 nicely said On Fri, Dec 31, 2010 at 9:27 PM, mathew wrote: > On Mon, Dec 27, 2010 at 19:55, Rodrigo Rosenfeld Rosas > wrote: > > Please, could someone explain me why supporting multi-line comments > > is a bad thing? > > As soon as you allow multi-line comments, you need to decide what to > do about nested multi-line comments, i.e. the 'start comment' sequence > inside a comment. > > Option 1 is to allow it and make it not special. This is bad because > it makes it very easy to end up with a run-away comment: > > /* set variables > param = 0 > /* set maximum size */ > maxs = 100 > > Here 'param' ends up unset. This kind of bug can be really hard to locate. > > Option 2 is to allow the start-comment sequence within a comment, and > make comment pairs stack, so you need as many end-comment sequences as > start-comment sequences. This at least makes errors like the above > cause a compile-time failure, but it still makes them a pain to > locate; you end up having to use something like vim's '%' command to > play match-the-comment-delimiters until you spot which pair is > mismatched. That's no fun, especially once your comments contain pages > of documentation. Ask a Java programmer... > > Option 3 is to disallow nested comments, in which case multi-line > comments can't be used to comment out blocks of code which contain > multi-line comments. That makes them pretty useless for temporary > disabling of code; it would also cripple their use in rdoc. > > Single-line comments have none of the above problems. You always know > the comment will end when the next line starts. You can always comment > out a block of code, no matter how many comments or > comments-within-comments it contains. You never get runaway comments, > you never have to match up comment delimiters. > > The only downside to single-line comments is that it's harder to > comment out and un-comment-out multiple lines. That's easily solved by > using any good text editor. > > All of which is why C++ introduced single-line comments, and C99 added > them to regular C. > > So in short, multi-line comments have no significant advantages, make > parsing harder, and make errors more likely. I think Matz was entirely > right not to put them in Ruby. > > As a rule, the only place I use multi-line comments is for JavaDoc, > and that's only because I have to. > > > mathew > -- > > > > --00163630f835fc404e0498d67c9a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable +1 nicely said

On Fri, Dec 31, 2010 at 9:= 27 PM, mathew <meta@= pobox.com> wrote:
On Mon, Dec 27, 2010 at 19:55, Rodrigo Rosenfeld Rosas <rr.rosas@gmail.com> wrote:=
> Please, could someone explain me why supporting multi-line comments > is a bad thing?

As soon as you allow multi-line comments, you need to decide what to<= br> do about nested multi-line comments, i.e. the 'start comment' seque= nce
inside a comment.

Option 1 is to allow it and make it not special. This is bad because
it makes it very easy to end up with a run-away comment:

=A0 =A0/* set variables
=A0 =A0param =3D 0
=A0 =A0/* set maximum size */
=A0 =A0maxs =3D 100

Here 'param' ends up unset. This kind of bug can be really hard to = locate.

Option 2 is to allow the start-comment sequence within a comment, and
make comment pairs stack, so you need as many end-comment sequences as
start-comment sequences. This at least makes errors like the above
cause a compile-time failure, but it still makes them a pain to
locate; you end up having to use something like vim's '%' comma= nd to
play match-the-comment-delimiters until you spot which pair is
mismatched. That's no fun, especially once your comments contain pages<= br> of documentation. Ask a Java programmer...

Option 3 is to disallow nested comments, in which case multi-line
comments can't be used to comment out blocks of code which contain
multi-line comments. That makes them pretty useless for temporary
disabling of code; it would also cripple their use in rdoc.

Single-line comments have none of the above problems. You always know
the comment will end when the next line starts. You can always comment
out a block of code, no matter how many comments or
comments-within-comments it contains. You never get runaway comments,
you never have to match up comment delimiters.

The only downside to single-line comments is that it's harder to
comment out and un-comment-out multiple lines. That's easily solved by<= br> using any good text editor.

All of which is why C++ introduced single-line comments, and C99 added
them to regular C.

So in short, multi-line comments have no significant advantages, make
parsing harder, and make errors more likely. I think Matz was entirely
right not to put them in Ruby.

As a rule, the only place I use multi-line comments is for JavaDoc,
and that's only because I have to.


mathew
--
<URL:http://= www.pobox.com/~meta/>


--00163630f835fc404e0498d67c9a--