auto: useful, annoying or bad practice?

Neia Neutuladh neia at ikeran.org
Sun May 20 18:00:28 UTC 2018


On Sunday, 20 May 2018 at 14:35:21 UTC, I love Ice Cream wrote:
> On Sunday, 20 May 2018 at 02:34:38 UTC, Neia Neutuladh wrote:
>> D is very hard to make an IDE for that would actually tell you 
>> what type the return value is.
>
> This might sound a little hard, but that's probably a 
> fundamental failure of the D language and explains some of the 
> poor tooling around the language.

This is specifically when metaprogramming is going on.

Most programming languages these days fall into one of three 
categories:

* They don't support metaprogramming.
* They support metaprogramming by reflection only, like Java and 
Go. As soon as you use any metaprogramming, your IDE can't tell 
you what types things are; you've got interface{} or Object and 
you're calling Field.get() and Method.invoke().
* They support metaprogramming by merit of being a dynamic 
language. As soon as you write a line of code, your IDE can't 
tell you what types things are.

If you write D without any metaprogramming, it's as easy to write 
an IDE for that as for Java.

The problem is that metaprogramming is useful, and in D it's not 
that hard, so we use it a lot. There are proposals floating 
around for "concepts" or "signatures" (basically, compile-time 
interfaces) that would help out a lot, but nobody's driven one of 
those proposals to completion, as far as I know.


More information about the Digitalmars-d mailing list