Breaking changes in Visual C++ 2015
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 8 14:51:23 PDT 2015
Sometime, one got to be harsh, but the truth is that D have many
mostly implemented features, often falling short in some cases or
working in a way that make no sense.
On Thursday, 7 May 2015 at 22:27:57 UTC, Walter Bright wrote:
> On 5/7/2015 5:16 AM, d user wrote:
>> the truth is, one of the biggest things holding D back from
>> mass adoption is the
>> complete lack of tooling compared to basically every other
>> mainstream language.
>
> D has some excellent tools that are generally nonstandard,
> klunky or nonexistent in other languages:
>
> 1. unit testing
The way D runs tests before running the app does not make any
sense. The way you can't run them for a module without a main
makes no sense. The way you end runnign all kind of test with the
ones you are interested in makes no sense.
Yes D has easy syntax to make unitests. Meaning it is a great
language in that regard.
But it has horrible tooling that can be regarded at best as a
glorified hack that is mostly useless at scale.
> 2. documentation generation
The fact this is backed into the language the way it is mostly
show a lack of separation of concerns. That is a side effect of
the fact the frontend is completely monolithic.
You don't need to bake that into the language when the compiler
can feed symbol information to 3rd party tools.
> 3. coverage analysis
I'm not sure how Go and Rust stand on that one, but all
mainstream languages have descent code coverage, with the added
bonus that this is very well integrated with the rest of the
tooling (tolling which is non existent in D). I would not put
this has a string point of D. Not bad either, but definitively
what you'd expect from any serious language.
Last but not least, things like:
if (foo && bar) ...;
Contains 2 branches. The output we have to not provide data about
this, which makes the coverage infos lacking in some regard.
In java for instance, I could run tests (and not the whole
program with test at startup) and get all the coverage infos
directly in my editor with colors and stuff, include things like
short circuit for boolean operators, which we don't have. We are
miles (kilometers damn it !) away from this level of support.
> 4. profiler
Same things, this is a standard tool nowaday for any language
worth considering. In fact, even if we had no specific support in
D for it, C/C++ tooling could probably do it for us to some
extent.
> 5. and as of last week, a memory usage profiler
>
Good memory allocator like tcmalloc and/or jemalloc have detailed
output. And if we go back to java, you can even observe things in
a graphic way in real time concurrently to the application
running ! Once again, we are not even remotely close to anything
like this.
More information about the Digitalmars-d
mailing list