New slides about Go

bearophile bearophileHUGS at lycos.com
Thu Oct 14 16:49:58 PDT 2010


Nick Sabalausky:

> Then you're wasting cycles every iteration (by doing an extra addition and 
> maybe an extra shift or even multiplication depending on T: Ie, 
> (cast(ubyte*)myArray.ptr) + i * T.sizeof). That was a pretty common 
> inner-loop optimization back in my C days.

With D sometimes array-based code is faster than pointer-based. With LDC they are usually equally efficient.


> Plus, I've never once done pointer arithmetic accidentally in D, so I don't 
> see any safety to be gained from not allowing it.

I think they are trying to design a safer language. Pointer arithmetic is well known to be error-prone.
(I have never asked to remove pointer arithmetic from D).


> > - Turning x++; into statements seems harsh, but indeed it solves some 
> > problems. In practice in my D programs the ++ is often used as a 
> > statement, to avoid bugs.
> 
> I've long been of the opinion that should just be a statement. All it ever 
> does as an expression, if anything, is obfuscate code. I've never once seen 
> a case where it clarified anything.

In some cases it shortens the code a bit, but the price to pay for such shortening is some possible bugs.

I think/hope D will turn the sub-expression deterministic, so some expressions that contain ++ and function calls will be defined in D:

Bye,
bearophile


More information about the Digitalmars-d mailing list