
"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.
Member since:
2006-05-30
With ADA (83) we always had a "BEGIN" and an "END xxxx;" for all constructs, save possibly the "REPEAT... UNTIL ...", though it's been a good 20 years since I did any ADA and I don't remember it well. Same with Pascal (Object Pascal; Delphi.) With VB you don't. You get this:
If X Is Nothing Then
Something
Somethingelse
Elseif Blah = "Give up" Then
Somemore
Else
ShootYourself(DateTime.Now)
End If
Compare that to the C#
if (X == Null)
{
Something();
Somethingelse();
}
else if (Blah == "Give up")
{
Somemore();
}
else
{
ShootYourself(DateTime.Now);
}
Or Pascal
if (X <> Nil) Then //Or is it "X is nil"? I forget
begin
Something();
Somethingelse();
end
else if (Blah = 'Give up') Then
begin
Somemore();
end
else
begin
ShootYourself(DateTime.Now);
end;
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.
EDIT: remembering to add the actual point: The blocks make it easy to see what belongs where, where as with VB and other non block delimited languages, it's all about context.
The begin/end stuff becomes colorful patches surrounding black code.
Yeah, that's kind of okay. But again, when the code spans 3 or 4 screens (bad coding practice, horrible to maintain) it's more about refactoring to a sane state initially. Syntax highlighting has come a long way. The first editor I used on a daily basis was Delphi 1 and the syntax highlighting was very simple and the code insight did not exist. You had to actually know what to type - a skill lost by many recent CS graduates.
Edited 2013-01-16 12:35 UTC