thanks Deron for centralizing this discussion, as this could help to
avoid redundancy spread across many individual JIRAs and PRs. Overall, I
think it would be good to agree on individual style guides for DML and
Java.
I'm fine with using spaces for DML scripts because they are rarely
changed once written. However, for Java, I'd strongly prefer tabs for
indentation because tabs are (1) faster to navigate, and (2) allow to
configure the dev environment according to subjective preferences. For
inline formatting both should use spaces though.
Finally, I would recommend to also include common inconsistency such as
exception handling (catch all vs redundant error messages),
hashcode/equals, unnecessary branches, etc.
Regards,
Matthias
On 5/2/2017 7:15 PM, Deron Eriksson wrote:
Recently Matthias, Mike, and I discussed the issue of DML code style on
SYSTEMML-1406 (https://issues.apache.org/jira/browse/SYSTEMML-1406). We
also have an issue regarding Java code style on SYSTEMML-137 (
https://issues.apache.org/jira/browse/SYSTEMML-137).
In the discussion on SYSTEMML-1406, it sounds like Matthias, Mike, and I
all see value in having a consistent style, although individual preferences
differ. I would like to start a short discussion to see if we could apply
common style standards to our Java and DML files.
WRT Java, perhaps the Google Style Guide (
https://google.github.io/styleguide/javaguide.html) would be a good place
to start.
https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml
https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml
We could use these Eclipse/IntelliJ Java style templates as a base and
modify them for any changes we agree upon (for example, tabs vs spaces for
indentation). We could then check these templates into our project so that
everyone who contributes to SystemML can apply the common style to code,
thus adding consistency to the project.
WRT DML, the main issue we discussed was tabs vs spaces for indentation.
Some options I see are:
1) No official DML/Java styles
2) DML/Java styles (use spaces for indents, with style guide as basis for
Java)
3) DML/Java styles (use tabs for indents, with style guide as basis for
Java)
Although I would prefer 2), I would be happy with 3) as an improvement from
our existing 1). We could also have alternate options such as spaces for
DML and tabs for Java.
Thoughts?
Deron