[ https://issues.apache.org/jira/browse/GIRAPH-231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13405410#comment-13405410 ]
Avery Ching commented on GIRAPH-231: ------------------------------------ I think it's reasonable to discuss this and I don't have a strong feeling regarding the exact choices (well, okay, the 80 character lines is nice to have). The main thing I care about is that its consistent and most of the contributors are happy with it. Code uniformity is important to me as it is confusing to have many different styles. I don't necessarily think that the checkstyle choices we have made are the "best" ones, but overall they are helping to keep the code uniform, which I appreciate. I just don't want to see {noformat} for(int i=0;i<0;++i) {noformat} in one block and then {noformat} for (int i = 0; i < 0; ++i) {noformat} in another. This makes the code look messy and confuses contributors (well, at least me). > Overly prescriptive check-style requirements considered harmful > --------------------------------------------------------------- > > Key: GIRAPH-231 > URL: https://issues.apache.org/jira/browse/GIRAPH-231 > Project: Giraph > Issue Type: Bug > Reporter: Jakob Homan > > The current checkstyle settings are extremely precise and an excellent > codification of particular coding style preference. However, like in > religion and politics, reasonable and thoughtful people can have > disagreements and should be accommodating to each other. The current > checkstyle requirements venture into a lot of territory where disagreements > and common and often conflict with other styles that are perfectly > reasonable. Right now one can generate a perfectly reasonable looking patch > that then takes longer to make checkstyle than it did to create it. > A few examples: > * Whether or not a for or if statement has a space before its opening paren > does not in any way make the code less or more readable or bug free. Either > preference is valid. > * Not every method or field requires javadoc. I trust every contributor (or, > barring that, reviewer) to use their experience and judgment to determine if > one is needed > * 80 characters per line is a reasonable arbitrary limit. But so is 85 or > 90. And 80 seems to cause a lot of lines to be cut off at very odd places > from a readability standpoint. I trust every contributor (or, barring that, > reviewer) to determine if the line will cause some huge system failure by > going to 83 characters. For instance which is worse: > {noformat} > String timeUnitString = conf.get(GIRAPH_METRICS_DEFAULT_TIME_PERIOD, > "SECONDS"); > {noformat} > or > {noformat} > String timeUnitString = conf.get(GIRAPH_METRICS_DEFAULT_TIME_PERIOD, > "SECONDS"); > {noformat} > Everybody has a preference on each of the items above, but I don't think > anyone can reasonably make an argument that another's preference leads to > more bugs or is objectively bad. > Overly strict checkstyle settings, which is what I think we've ended up with, > don't actually end up improving the readability of the code. Instead, they > add a large amount of friction between contributors. If I spend most of my > time in using another style that doesn't allow spaces between if and (, I > find it painful and frustrating to try to contribute to this project. > Readability is not something that can be guaranteed by any checkstyle > configuration and instead, we should loosen the requirements and trust our > contributors and reviewers to keep a good eye out for subtle errors and leave > checkstyle to police the egregious ones. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira