I think jaggedness in the example you provide comes mainly from the fact
that the second comment has multiple logical blocks. I have formatted both
comments at 70 and at 80, here is the outcome: http://pastebin.com/nRQB0nCD

While the first comment indeed looks better when wrapped at 70, I can't say
the same about the second one.

I would say, that the longer a line could be, the less jagged the comment
block is. The ratio (`averageWordLength` / `maxLineLength`) approaches 0 as
`maxLineLenght` approaches infinity, which means wrapping a long word right
before the line end should be perceived less jagged : ).

Also, the longer an individual line can be, the less total lines are needed
for a comment block, which reduces jaggedness and makes code a little bit
more readable.

But my strongest argument is that having a separate soft rule for comments
is hard to enforce. I think what we can do is to encourage contributors /
committers to wrap comments in the most logical way—like the first comment
in the example you provide—even if the line length is not fully utilized.
Having said that, I would rather keep a single number: hard limit at 80 for
simplicity.



On Thu, Nov 5, 2015 at 10:15 PM, Benjamin Mahler <benjamin.mah...@gmail.com>
wrote:

> This has come up in a couple of reviews, seems like we should add some soft
> guidelines around how to format comments for readability.
>
> In particular, the reason that we wrapped at 70 in the past was for
> readability, so it would be great to continue doing so as a soft stylistic
> rule. The other thing we've been doing for readability is reducing
> "jaggedness" (variability in line lengths).
>
> It would be great to establish these as soft rules and encourage new
> contributors / committers to follow them. Compare these two comments in
> Master::updateTask. The first one wraps at 70 and reduces jagedness, the
> second wraps at 80 and is more jagged:
>
> https://github.com/apache/mesos/blob/0.25.0/src/master/master.cpp#L6057
> https://github.com/apache/mesos/blob/0.25.0/src/master/master.cpp#L6072
>
> I can provide more examples to help clarify. If no one objects, I'll follow
> up with an update to the style guide. Thoughts appreciated!
>
> On Thu, Sep 10, 2015 at 8:59 AM, Bernd Mathiske <be...@mesosphere.io>
> wrote:
>
> > +1
> > > On Sep 10, 2015, at 4:21 PM, tommy xiao <xia...@gmail.com> wrote:
> > >
> > > +1
> > >
> > > 2015-09-10 9:44 GMT+08:00 Marco Massenzio <ma...@mesosphere.io>:
> > >
> > >> +1
> > >>
> > >>
> > >>
> > >>
> > >> Thanks, Michael!
> > >>
> > >>
> > >>
> > >> —
> > >> Sent from my iPhone, which is not as good as you'd hope to fix trypos
> n
> > >> abbrvtn.
> > >>
> > >> On Wed, Sep 9, 2015 at 6:23 PM, Michael Park <mcyp...@gmail.com>
> wrote:
> > >>
> > >>> I've removed the 70 column restriction on comments from the style
> > guide:
> > >>>
> > >>
> >
> https://github.com/apache/mesos/commit/f9c2604ea97b91f8a9ec3b2863317761679b1c86
> > >>> Also, based on the comments, it seems like we should allow 80 column
> > >>> comments but omit the sweeping change.
> > >>> Thanks,
> > >>> MPark.
> > >>> On Wed, Aug 12, 2015 at 6:13 PM Marco Massenzio <ma...@mesosphere.io
> >
> > >> wrote:
> > >>>> On Wed, Aug 12, 2015 at 4:09 AM, Bernd Mathiske <
> be...@mesosphere.io>
> > >>>> wrote:
> > >>>>
> > >>>>> Like BenM,
> > >>>>>
> > >>>>> +1 on allowing 80 column comments
> > >>>>>
> > >>>> +1
> > >>>> (it really IS annoying having to keep an eye on the bottom column
> > >> counter
> > >>>> when typing comments :)
> > >>>>
> > >>>>
> > >>>>> -1 on sweeping changes; incremental changes when touching old
> > comments
> > >>>>> will do IMHO
> > >>>>>
> > >>>>> +1 on the -1? :)
> > >>>> Incremental changes are good and I doubt anyone will be "confused"
> by
> > >> them.
> > >>>>
> > >>>>
> > >>>>> Bernd
> > >>>>>
> > >>>>>> On Aug 12, 2015, at 12:51 AM, Michael Park <mcyp...@gmail.com>
> > >> wrote:
> > >>>>>>
> > >>>>>> Ben, thanks for your input!
> > >>>>>>
> > >>>>>> Another update on this topic: the patches around break before
> braces
> > >>>> for
> > >>>>>> *enum* style and overloaded operators have been committed.
> > >>>>>>
> > >>>>>> On Tue, Aug 11, 2015 at 6:23 PM Benjamin Mahler <
> > >>>>> benjamin.mah...@gmail.com>
> > >>>>>> wrote:
> > >>>>>>
> > >>>>>>> We already don't necessarily wrap at 70 characters (often we wrap
> > >>>>> before 70
> > >>>>>>> to reduce "jaggedness" or to make it look cleaner).
> > >>>>>>>
> > >>>>>>> So with the change to 80, this still makes all existing comments
> > >>>> valid.
> > >>>>> We
> > >>>>>>> can still encourage folks to write paragraphs in a way that is
> > >> easy to
> > >>>>>>> digest for the reader. That is, I think we should still be trying
> > >> not
> > >>>> to
> > >>>>>>> write jagged paragraphs of comments, it's just not a hard
> stylistic
> > >>>>>>> violation given we don't have an algorithm for this.
> > >>>>>>>
> > >>>>>>> So +1 to relaxing the hard 70 character rule, but -1 to sweeping
> > >>>> across
> > >>>>> all
> > >>>>>>> the comments or doing wrapping based only on line length rather
> > >> than
> > >>>>>>> jaggedness going forward.
> > >>>>>>>
> > >>>>>>> On Sat, Aug 8, 2015 at 3:25 PM, Joris Van Remoortere <
> > >>>>> jo...@mesosphere.io>
> > >>>>>>> wrote:
> > >>>>>>>
> > >>>>>>>> I will volunteer to update all the comments to wrap at 80 if we
> > >> agree
> > >>>>> to
> > >>>>>>>> keep the code base consistent.
> > >>>>>>>> Naturally that is also my vote ;-)
> > >>>>>>>> Joris
> > >>>>>>>>
> > >>>>>>>>> On Aug 8, 2015, at 1:40 PM, Michael Park <mcyp...@gmail.com>
> > >> wrote:
> > >>>>>>>>>
> > >>>>>>>>> An update on this topic since we covered it at the community
> > >>>> developer
> > >>>>>>>> sync.
> > >>>>>>>>>
> > >>>>>>>>> 1. We will adopt *Mozilla*'s *BreakBeforeBraces* style as their
> > >>>> style
> > >>>>>>>> is
> > >>>>>>>>> equivalent to ours. The only change this entails for our
> > >> codebase
> > >>>> is
> > >>>>>>> to
> > >>>>>>>>> consistently wrap the braces for *enum* definitions, as we're
> > >>>>>>> currently
> > >>>>>>>>> inconsistent. I've taken on the work involved in this change:
> > >>>>>>>>>    - stout: https://reviews.apache.org/r/37258
> > >>>>>>>>>    - libprocess: https://reviews.apache.org/r/37259
> > >>>>>>>>>    - mesos: https://reviews.apache.org/r/37260
> > >>>>>>>>>    2. We will drop the rule for adding spaces around overloaded
> > >>>>>>>>> operators. We'll simply do a sweep of the codebase to update
> > >> all of
> > >>>>>>>> them
> > >>>>>>>>> consistently. Artem has kindly taken action on this already:
> > >>>>>>>>>    - stout: https://reviews.apache.org/r/37018/
> > >>>>>>>>>    - libprocess: https://reviews.apache.org/r/37017/
> > >>>>>>>>>    - mesos: https://reviews.apache.org/r/37013/
> > >>>>>>>>>    3. We will drop the rule for wrapping comments at 70
> > >> characters.
> > >>>>>>> We
> > >>>>>>>>> have a few options to proceed here:
> > >>>>>>>>>    - Keep all the existing comments in tact, and simply allow
> > >> new
> > >>>>>>>>>    comments to wrap at 80, this is less work.
> > >>>>>>>>>    - Update all instances of the comments wrapping at 70 to be
> > >>>>>>> wrapped
> > >>>>>>>>>    at 80, so that we can be consistent.
> > >>>>>>>>>
> > >>>>>>>>> I proposed that we simply allow new comments to wrap at 80,
> but I
> > >>>> have
> > >>>>>>>>> heard arguments to update the existing comments, so that we can
> > >> be
> > >>>>>>>>> consistent across the codebase. If you have a
> suggestion/opinion
> > >> on
> > >>>>> how
> > >>>>>>>> we
> > >>>>>>>>> should proceed with (3), please share!
> > >>>>>>>>>
> > >>>>>>>>> Thanks,
> > >>>>>>>>>
> > >>>>>>>>> MPark.
> > >>>>>>>>>
> > >>>>>>>>> On Mon, Aug 3, 2015 at 2:01 PM Alexander Rojas <
> > >>>>>>> alexan...@mesosphere.io>
> > >>>>>>>>> wrote:
> > >>>>>>>>>
> > >>>>>>>>>> I also vote up for that! I rather change our guidelines a
> little
> > >>>> bit
> > >>>>>>>> than
> > >>>>>>>>>> waiting for months
> > >>>>>>>>>> to get our changes into the clang-format source without any
> > >>>> security
> > >>>>>>>> that
> > >>>>>>>>>> it will actually land.
> > >>>>>>>>>>
> > >>>>>>>>>>> On 31 Jul 2015, at 09:31, Alex Rukletsov <
> a...@mesosphere.com>
> > >>>>>>> wrote:
> > >>>>>>>>>>>
> > >>>>>>>>>>> I think automation is very important. If we should slightly
> > >> change
> > >>>>>>> our
> > >>>>>>>>>>> style in order to set-up easily enforceable rules, I vote
> with
> > >>>> both
> > >>>>>>>> hands
> > >>>>>>>>>>> for that.
> > >>>>>>>>>>>
> > >>>>>>>>>>>> On Fri, Jul 31, 2015 at 3:25 AM, Michael Park <
> > >> mcyp...@gmail.com
> > >>>>>
> > >>>>>>>> wrote:
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Oops, sorry I was so excited that this could just solve the
> > >> issue
> > >>>>>>>> that I
> > >>>>>>>>>>>> forgot to answer your question.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> In general, the clang-format strives to adopt widely used
> > >> styles,
> > >>>>>>>> which
> > >>>>>>>>>> I'm
> > >>>>>>>>>>>> not sure if we would be considered widely used. Aside from
> > >> that,
> > >>>>>>>> another
> > >>>>>>>>>>>> concern was that it could take a while for our style
> > >> proposals to
> > >>>>>>> make
> > >>>>>>>>>> it
> > >>>>>>>>>>>> upstream and for it to be useful.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>> On Thu, Jul 30, 2015, 6:12 PM Michael Park <
> > >> mcyp...@gmail.com>
> > >>>>>>>> wrote:
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> Is it worth adding our own style?
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> I noticed other have (LLVM, Google, Chromium, Mozilla,
> > >> WebKit.).
> > >>>>>>> How
> > >>>>>>>>>>>>>> hard is it?
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> I was just looking into this again and *Mozilla* was added
> as
> > >>>> the
> > >>>>>>>>>> newest
> > >>>>>>>>>>>>> *BreakBeforeBraces* style. It breaks before braces on enum,
> > >>>>>>> function,
> > >>>>>>>>>> and
> > >>>>>>>>>>>>> record definitions (struct, class, union). I think we can
> > >>>> actually
> > >>>>>>>> use
> > >>>>>>>>>>>> that
> > >>>>>>>>>>>>> one and be done with it. Having looked through the
> codebase,
> > >> we
> > >>>>>>> wrap
> > >>>>>>>>>> the
> > >>>>>>>>>>>>> braces for *enum* for about half of the cases. It would be
> > >> about
> > >>>>> 35
> > >>>>>>>>>>>>> instances that we have to fix from what I can see in our
> > >>>> codebase.
> > >>>>>>>> What
> > >>>>>>>>>>>> do
> > >>>>>>>>>>>>> you think?
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> On Thu, Jul 30, 2015 at 5:14 PM Benjamin Mahler <
> > >>>>>>>>>>>> benjamin.mah...@gmail.com>
> > >>>>>>>>>>>>> wrote:
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>>> Is it worth adding our own style?
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>> I noticed other have (LLVM, Google, Chromium, Mozilla,
> > >>>> WebKit.).
> > >>>>>>> How
> > >>>>>>>>>>>> hard
> > >>>>>>>>>>>>>> is it?
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>> On Thu, Jul 30, 2015 at 4:23 PM, Michael Park <
> > >>>> mcyp...@gmail.com
> > >>>>>>
> > >>>>>>>>>>>> wrote:
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> There are a few syntactical Mesos style guidelines that I
> > >>>> would
> > >>>>>>>> like
> > >>>>>>>>>>>> to
> > >>>>>>>>>>>>>>> propose to drop. They are:
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> 1. Open braces for namespace should not be wrapped.
> > >>>>>>>>>>>>>>> *NOTE*: The Google style guide does not wrap the brace
> > >> after
> > >>>>>>>>>>>>>>> *namespace*,
> > >>>>>>>>>>>>>>> and the Mesos style guide does not mention a rule at all.
> > >> But
> > >>>> it
> > >>>>>>>> is
> > >>>>>>>>>>>>>>> consistent throughout the codebase.
> > >>>>>>>>>>>>>>> 2. Overloaded operators should be padded with spaces.
> > >>>>>>>>>>>>>>> 3. Comments should be wrapped at 70 characters.
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> The main motivation is that as a community we would like
> to
> > >>>>>>> reduce
> > >>>>>>>>>> the
> > >>>>>>>>>>>>>>> discrepancy between what *clang-format* produces. This
> is a
> > >>>> dual
> > >>>>>>>>>>>>>> effort, as
> > >>>>>>>>>>>>>>> we work on improving *clang-format* to support some of
> our
> > >>>> style
> > >>>>>>>>>> which
> > >>>>>>>>>>>>>> is
> > >>>>>>>>>>>>>>> popular in the C++ community as well. Wrapping the
> function
> > >>>>>>>> arguments
> > >>>>>>>>>>>> to
> > >>>>>>>>>>>>>>> avoid "jaggedness" for example is a feature request which
> > >> is
> > >>>>>>> being
> > >>>>>>>>>>>>>> tracked
> > >>>>>>>>>>>>>>> at: https://llvm.org/bugs/show_bug.cgi?id=23422
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> Going forward, the proposal is to update all of the
> > >> instances
> > >>>> of
> > >>>>>>>> (1)
> > >>>>>>>>>>>> and
> > >>>>>>>>>>>>>>> (2) at once. For (3), we can simply relax the constraint
> > >> from
> > >>>> 70
> > >>>>>>> to
> > >>>>>>>>>> 80
> > >>>>>>>>>>>>>>> without touching the existing comments.
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> Does anyone have any strong opinions about dropping any
> of
> > >>>> the 3
> > >>>>>>>>>> rules
> > >>>>>>>>>>>>>>> above?
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> Thanks,
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> MPark.
> > >>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>
> > >>>>>>>
> > >>>>>
> > >>>>>
> > >>>>
> > >>
> > >
> > >
> > >
> > > --
> > > Deshi Xiao
> > > Twitter: xds2000
> > > E-mail: xiaods(AT)gmail.com
> >
> >
>

Reply via email to