Linked by Thom Holwerda on Tue 15th Jan 2013 21:24 UTC
General Development "I was really excited to write this article, because it gave me an excuse to really think about what beautiful code is. I still don't think I know, and maybe it's entirely subjective. I do think the two biggest things, for me at least, are stylistic indenting and maximum const-ness. A lot of the stylistic choices are definitely my personal preferences, and I'm sure other programmers will have different opinions. I think the choice of what style to use is up to whoever has to read and write the code, but I certainly think it's something worth thinking about. I would suggest everyone look at the Doom 3 source code because I think it exemplifies beautiful code, as a complete package: from system design down to how to tab space the characters." John Carmack himself replies in the comments.
Permalink for comment 549005
To read all comments associated with this story, please click here.
RE[4]: Good article
by Laurence on Wed 16th Jan 2013 13:53 UTC in reply to "RE[3]: Good article"
Laurence
Member since:
2007-03-26


Compare that to the C#...


That's badly formatted C#

I prefer the following:
if (X == Null) {
    Something();
    Somethingelse();
} else if (Blah == "Give up") {
    Somemore();
} else {
    ShootYourself(DateTime.Now);
}


In my opinion that is significantly more readable than any of the other examples you've listed.

Sometimes I concatenate the lines further:
if (X == Null) {
    Something();
    Somethingelse();
}
else if (Blah == "Give up") { Somemore(); }
else { ShootYourself(DateTime.Now); }

(this isn't the best of examples (and not helped by the formatting on OSNews), even I wouldn't concatenate specifically here, but sometimes it does aid readability.

edit:
The beauty Pascal is that the entire If is one statement with compounds, the beauty of the C# is that it is not (really.) Both have advantages.

You can use blocks in C-derived languages as well:

{
    if (X == Null) {
        Something();
        Somethingelse();
    } else if (Blah == "Give up") {
        Somemore();
    } else {
        ShootYourself(DateTime .Now);
    }
}


Edited 2013-01-16 14:10 UTC

Reply Parent Score: 2