On 05/01/2012 01:20 AM, akaz wrote:
I expected to meet D and exclaim: wow! C++ done right! Instead, I feel like being forced to learn another,
Yes, D is its own thing.
completely new paradigm language, like I would start with Lisp or something else.
OTOH, this seems to be an exaggeration.
Remember: "Within D, there is a much smaller and cleaner language struggling to get out".
I don't see the value of that assertion from a pragmatic point of view. What is to be gained? Note that you have discussed mostly syntax. * adding -> does not make the language smaller or cleaner and it complicates generic code for no benefit. * loosening the syntactic distinction between value and reference type variable declarations could be done, (to the neat effect that tail-qualified class references would trivially work) but there shouldn't be any directly built-in support for treating polymorphic class instances as values. * I agree that the @property situation needs to be cleaned up. There are only five @annotations in total. And what you have said does not apply to the other four. * how p[0..len] can be seen as an issue instead of as great completely escapes my mind. * I agree on supporting deducing length for static arrays. (there is a int[$] arr = [1,2,3]; proposal.) * the syntax for arrays is straightforward and I don't see any potential for improvement. * the foo(a,&b) example is biased because it uses a meaningless function name. From the function name alone it is often *almost* clear that a certain argument will be modified. & & & spam is not 'clean' either.