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.

Reply via email to