Is D Language mature for MMORPG Client ?
Peter Alexander
peter.alexander.au at gmail.com
Sat Aug 11 05:48:49 PDT 2012
On Friday, 10 August 2012 at 08:38:18 UTC, Walter Bright wrote:
> Take a look at bearophile's list of Ada features advertised as
> making Ada code less buggy. Then look at, for example, dmd's
> bugzilla list.
>
> How many of those bugs would have been prevented by Ada's
> features?
>
> I'd say about 0.
It's a good point.
I'd say it's about the same in my line of work (making games with
C++).
Here's what I perceive to be the most common causes of bugs in
things I write:
1. Unconsidered use cases.
- e.g. User did X, but I had forgot to consider X when writing
the code, or X was considered by poorly tested.
2. Poor knowledge of a system.
- e.g. Wrote the code expecting it to do something, but it didn't
do all the things I expected, or my code had unintended
side-affects in another part of the system.
3. Uninitialised variables.
- These are relatively rare, but consume a lot of time as they
can be hard to reproduce and only appear in release builds.
4. NaN's.
- Quite common in any sort of physical simulation code, and
difficult to track down.
5. Threading issues
- Quite rare, but difficult to track down.
I'd say #1 is by far the most common cause of bugs in any project
(certainly DMD), and #2 gets more and more common as the number
of developers on a project increases (as well as the number of
lines of code). DMD is quite small, and you (who has full
knowledge of DMD) checks every change list, so #2 is quite rare
in DMD.
#3 is solved by D, and #5 as well.
#4 is hard to solve, especially when SIMD comes into the picture
(as it often does in that sort of code).
#2 is interesting because you could arguably say that it is
partially solved by things like functional programming, which
makes some kinds of code simpler, meaning people are less likely
to misunderstand how your system works. I have no doubt that it's
true, but it's hard to argue that objectively. I don't believe
there is any silver bullet for simple code.
More information about the Digitalmars-d
mailing list