On Monday, 14 January 2013 at 20:36:51 UTC, Walter Bright wrote:
On 1/14/2013 11:52 AM, Ali Çehreli wrote:
On 01/14/2013 11:24 AM, Walter Bright wrote:
Quite a nice read on the coding style used in Doom.

http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code?post=56177550



Here begins another epic thread. :)

I haven't read the article but came across this: "I personally enforce the rule that all method names should begin with a verb unless they can't." The author
adds that he prefers getLength() to length().

That rule is misguided because not every member function represents an action; there are also attributes. Attribute methods should be nouns, in D or in C++. In our C++ code we simply say length() (and setLength() if needed).

Well, not everyone will agree with everything he says. But it is interesting, and a number of the conventions in there are D features.

I also found it interesting how some of the conventions used defies generally accepted C++ best practices.

Apart from a few *style* issues, the only thing the article contains was mostly hate for the stl.

I understand one might dislikes the stream operators due to the syntax (myself included), but once you've used them more than once, and know how to use them, they aren't a problem. The strong typing they provide is simply unmatched in C++. The article even mentions that NOT using stream operators was one of their biggest source of bugs. And Carmack himself replies stating that in retrospect: StrongTyping > WeirdCode.

There's also hate for stl's containers, stating they are *too generic*, stating that it is better to use *Only* a HashTable of <int, int> or <char*, int>. Nobody is stopping you from doing it with the stl. Not being overly generic is one thing. Not using something specific because it *spawned* from something generic is another.

The argument is *always* the same "the syntax is ugly and hard to use and outside of my comfort zone".

Reply via email to