New slides about Go
Jonathan M Davis
jmdavisProg at gmx.com
Thu Oct 14 17:00:52 PDT 2010
On Thursday, October 14, 2010 16:49:58 bearophile wrote:
> 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).
There's nothing wrong with a language not having pointer arithmetic. It is an
error-prone feature (hence why it's banned in SafeD) and many languages don't
need it and don't have it. However, it's hard to see how a language can claim to
be a systems programming language and not allow pointer arithmetic. I really
need to sit down and take a good look at Go one of these days, but the more I
hear about it, the less it looks like a systems programming language. They also
clearly have a _very_ different approach from D, and I'd expect that the types of
people who like Go wouldn't like D and vice-versa. I still need to take a good
look at one of these days though.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list