I suggest Walter to don't try to say that D2 is "better" than Python, it's a waste of time and it means nothing.
Walter Bright: >can you do Bill Baxter's swizzler? Can you do Don Clugston's FPU code >generator?< Python is more more flexible. See the __getattr__ standard method: class Reg4(object): ORDER = dict((c,i) for i,c in enumerate("wxyz")) def __init__(self, data=None): self.data = [None] * 4 if data: for i, item in enumerate(data): self.data[i] = item def __getattr__(self, attr): assert sorted(list(attr)) == ['w', 'x', 'y', 'z'] self.data[:] = (self.data[Reg4.ORDER[c]] for c in attr) r = Reg4("ABCD") print r.data r.xyzw print r.data Output: ['A', 'B', 'C', 'D'] ['B', 'C', 'D', 'A'] If you want the r.xyzw() syntax, that too can be done, creating new methods on the fly. In Python there's also the __getattribute__ that's a little more powerful than __getattr__: http://pyref.infogami.com/__getattribute__ >That doesn't help if you really need to do a little assembler.< That Reg4() class can actually use true SSE registers, generating and running very efficient asm computational kernels using corepy: http://www.corepy.org/ And you can also use GPUs with PyCuda and PyOpenCL in Python: http://mathema.tician.de/software/pycuda http://python-opencl.next-touch.com/ With Python + CorePy today you can write heavy numerical code that's faster than all D code. Bye, bearophile