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).

Reply via email to