Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "allman"
-
How many of you naturally used Allman style, even though your first programming class taught you to use K&R?24
-
God, Allman indentation style is such pain... God bless K&R...
For those who don't know, Allman is this:
void foo(void)
{
statement;
statement;
}
and K&R is this:
void bar(void) {
statement;
statement;
}12 -
I'm a C++/Obj-C programmer finding it ludicrously hard to switch to Swift.
I find that the constant ability (leading to very poor programmer code) to reduce syntax and add tokens reduces readability and nowhere is this more apparent that with closures.
I'm working through (to my shame) Ray Wenderlich's Swift course and the closure chapter has this:
PS I loathe K&R as much as I do Swift so it's all in Allman formatting for clarity.
let multiply: (Int, Int) -> Int =
{
(a: Int, b: Int) -> Int in
// do Something else
return a * b
}
Why oh why isn't this more simply and elegantly written as:
let multiply = (a: Int, b: Int) -> Int
{
// do Something else
return a * b
}
The equals sign shows clearly that it's a closure definition assignment, as does the starting 'let'. But this way all of the stupid excesses, like the 'in' keyword, the repetition of the params / return type only this time with useful labels and additional tokens are removed and it looks and reads much more like a regular function and certainly a lot more clearly.
Now I know that with the stupid ability of Swift you can reduce all this down to return $0 * $1, but the point I'm making is that a) that's not as clear and more importantly b) if this closure does something more than just one line of code, then all that complicated stuff - hinted to by the comment '// do Something else' means you can't reduce it to stupid tokens.
So, when you have a clousure that has a lot of stuff going on and you can't reduce it to stupid minimalism, then why isn't is formatted and syntactically better like the suggestion above?
I've mentioned this on the Swift.org (and got banned for criticising Swift) but the suggestions they came up with were 'use type inference' to remove the first set of params / return type and token.
But that still means the param list and return type are NOT on the same line as the declaration and you still need the stupid 'in' keyword!5 -
After a programming exam, a student criticized me for using the "wrong" indentation style: I used 1TBS (opening curly brace on same line), but Allman style (opening curly brace on new line) would be "better" and "preferred by most other students".
The programming language was Go.7 -
You may not enter a flamewar if you haven't tested the options for at least a year.
Emacs vs vim? Not reeeeally used both? You're out.
Allman vs 1TBS? Same.
Which OS?...7 -
Ah, the eternal battle between "Allman style" and "K&R style" bracing. Because arguing over where to put an opening curly brace is what I dreamed of when I became a developer.
Can we just agree on something and move on?3