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 548994
To read all comments associated with this story, please click here.
RE[3]: Good article
by henderson101 on Wed 16th Jan 2013 12:31 UTC in reply to "RE[2]: Good article"
henderson101
Member since:
2006-05-30

I use both punctuation (C) and verbose (ADA) languages and tolerate both well.


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 solution is a syntax colouring editor with very different colours for keywords and plain identifiers (not black and dark blue...)

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

Reply Parent Score: 2