On Thursday, 5 September 2013 at 03:22:17 UTC, Meta wrote:
pub struct BodyWorld<N, LV, AV, M, II, CM> {
world: World<N, Body<N, LV, AV, M, II>, Constraint<N, LV,
AV, M, II>>,
forces: @mut BodyForceGenerator<N, LV, AV, M, II>,
integrator: @mut BodySmpEulerIntegrator<N, LV, AV, M, II>,
detector: @mut BodiesBodies<N, LV, AV, M, II, BF<N, LV, AV,
M, II>>,
sleep: @mut IslandActivationManager<N, LV, AV, M, II>,
ccd: @mut SweptBallMotionClamping<N, LV, AV, M, II, BF<N,
LV, AV, M, II>>,
joints: @mut JointManager<N, LV, AV, M, II>,
solver: @mut AccumulatedImpulseSolver<N, LV, AV, M, II, CM>
}
This stuff is downright arcane. I'd say that D is in a far
better situation right now in regard to being syntactically
easy to parse and understand for the average coder.
I don't really know Rust, but is D really any better. It looks
like you are defining variables with templated types:
struct BodyWorld(N, LV, AV, M, II, CM) {
World!(N, Body!(N, LV, AV, M, II), Constraint!(N, LV, AV,
M, II)) world;
...
There has been some Rust code I've seen where a few symbols
populate most of the code (GC something something). As an
outsider it looks really horrible, but it did seem to convey
useful information had I known what things meant. Math is another
example of this, symbols provide great detail with little said;
and it is horrible, because without continues use, someone
somewhere is going to use a symbol you'd forgotten even existed
(they have the nice benefit of being well defined from centuries
of use though).