Do let me know if I have missed the point. This discussion is useful to me.
Discussion
redefining infix, postfix and prefix operators on anything other than value types is a bad game, as is macros - they make it so when reading the code you have to go through two things to remember instead of just one, and then spread that out to a whole project
i'd say the thing you missed is why make another language when there is already a pretty much perfect one?
for me, there is #bitcoin and then there is #golang and these are two things that really don't need to be changed without inordinately long processes of deliberation, testing and modeling
in fact, in both cases i am of the opinion that several things could be removed and nothing of value would be lost
i am warming up to type parameters though, they have a use in reducing the amount of casting between basically identical types (eg int and int64)
Type parameters. As in meta programming?
golang's "generics" are really just a logical extension of duck typing... if it can be inferred, then it is permitted if the type parameter specifies it
although i don't know yet what the ~ means in them yet, didn't read that in the docs yet but i've seen it in an "x" package
In D we have full blown metaprogramming. I don't use it all too heavily except in a few projects like serializers etc.
But it is great. I can write code that writes code.
I'm a compiler man, it's my craft.
So of course I would make my own language as I want to write in it.
yeah, it's a bit of a search for the holy grail... i can't deny i don't think about it... was one of the first things i did when i got my hands on a c compiler was to play with bison and yacc