May 09, 2015
On Friday, 8 May 2015 at 08:51:24 UTC, Walter Bright wrote:
> On 5/8/2015 12:45 AM, weaselcat wrote:
>> some of these really are klunky though.
>
> Nobody's ever satisfied. Doesn't mean the tools aren't effective, and doesn't mean a "complete lack of tooling".

I think it's important to air grievances with the language because it won't get better by sticking our heads in the sand. Stating things like "unit tests could have better reporting capabilities" etc, sparks a good discussion on how to improve them, and I think this thread is proof of that.
May 09, 2015
On 5/8/2015 5:25 PM, Andrei Alexandrescu wrote:
> It's goofy to run the program after unittests,

Goofy, maybe, but it makes things simpler. For anyone who is actually bothered by it, the fix is a one liner:

  int main(string args)
  {
    version (unittest) exit(0); // <== insert this line
    ...
  }

May 09, 2015
On Friday, 8 May 2015 at 21:51:24 UTC, deadalnix wrote:
> ...
> 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.

On this note, I think D is missing out on a lot of opportunities provided by the LLVM infrastructure. A lot of neat things are built ontop of LLVM now - for example, nim and rust are taking advantage of LLVM's emscripten/pnacl support to write web programs, and Rust is being used for GPU programming by making use of LLVM's PTX target.

On the D side, AFAIK Calypso is only possible because of LLVM - but to be fair I haven't really looked at it.
May 09, 2015
On Fri, May 08, 2015 at 09:51:23PM +0000, deadalnix via Digitalmars-d wrote: [...]
> >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.
[...]

I use dmd with gprof with not-bad results. It's not perfect, but at least I can get some useful info out of it.

The built-in dmd profiler is unfortunately unusable for me because its function call counters wrap around far too early (IIRC they use 16-bit counters or something like that), whereas the test cases I need to optimize for are the long-running, steady state test cases in which millions or billions of function calls are made.

Will this ever be improved?


T

-- 
Why can't you just be a nonconformist like everyone else? -- YHL
May 09, 2015
On 5/8/2015 10:09 PM, H. S. Teoh via Digitalmars-d wrote:
> The built-in dmd profiler is unfortunately unusable for me because its
> function call counters wrap around far too early (IIRC they use 16-bit
> counters or something like that),

32 bit counters

https://github.com/D-Programming-Language/druntime/blob/master/src/rt/trace.d#L38

> whereas the test cases I need to
> optimize for are the long-running, steady state test cases in which
> millions or billions of function calls are made.
>
> Will this ever be improved?

    if (bugzilla report submitted || developers are mind readers)
    {
	maybe it'll get fixed!
    }
    else
    {
        nobody knows there's a problem
    }

Feel free to submit a PR to make 'count' a ulong.
May 09, 2015
On Saturday, 9 May 2015 at 02:08:54 UTC, weaselcat wrote:
> On Friday, 8 May 2015 at 08:51:24 UTC, Walter Bright wrote:
>> On 5/8/2015 12:45 AM, weaselcat wrote:
>>> some of these really are klunky though.
>>
>> Nobody's ever satisfied. Doesn't mean the tools aren't effective, and doesn't mean a "complete lack of tooling".
>
> I think it's important to air grievances with the language because it won't get better by sticking our heads in the sand. Stating things like "unit tests could have better reporting capabilities" etc, sparks a good discussion on how to improve them, and I think this thread is proof of that.

I think it's good to have an honest discussion about these issues, but there is also a tendency of some to go overboard. At times it crosses into trolling territory where they'll post something negative just to be posting something negative.

One incident that stands out followed an announcement that got a lot of press for D, and someone thought it was a good use of his time to post a laundry list of problems with the language in that thread, much of which was pure crap. Those posts do not contribute anything.
May 09, 2015
On Saturday, 9 May 2015 at 05:12:28 UTC, H. S. Teoh wrote:
> On Fri, May 08, 2015 at 09:51:23PM +0000, deadalnix via Digitalmars-d wrote:
> [...]
>> >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.
> [...]
>
> I use dmd with gprof with not-bad results. It's not perfect, but at
> least I can get some useful info out of it.
>
> The built-in dmd profiler is unfortunately unusable for me because its
> function call counters wrap around far too early (IIRC they use 16-bit
> counters or something like that), whereas the test cases I need to
> optimize for are the long-running, steady state test cases in which
> millions or billions of function calls are made.
>
> Will this ever be improved?
>
>
> T

have you tried oprofile? It's embarrassingly simple to use, especially compared to perf. oprofile used to be much worse though
May 09, 2015
On Saturday, 9 May 2015 at 09:31:10 UTC, bachmeier wrote:
> On Saturday, 9 May 2015 at 02:08:54 UTC, weaselcat wrote:
>> On Friday, 8 May 2015 at 08:51:24 UTC, Walter Bright wrote:
>>> On 5/8/2015 12:45 AM, weaselcat wrote:
>>>> some of these really are klunky though.
>>>
>>> Nobody's ever satisfied. Doesn't mean the tools aren't effective, and doesn't mean a "complete lack of tooling".
>>
>> I think it's important to air grievances with the language because it won't get better by sticking our heads in the sand. Stating things like "unit tests could have better reporting capabilities" etc, sparks a good discussion on how to improve them, and I think this thread is proof of that.
>
> I think it's good to have an honest discussion about these issues, but there is also a tendency of some to go overboard. At times it crosses into trolling territory where they'll post something negative just to be posting something negative.
>
> One incident that stands out followed an announcement that got a lot of press for D, and someone thought it was a good use of his time to post a laundry list of problems with the language in that thread, much of which was pure crap. Those posts do not contribute anything.

There is a tendency to bash and trash D for not having the exact same feature that some other language has, or for not having a tool that exists for some other language. This often gives the impression that D is unusable and complete crap, unless, of course, it will get feature X demanded by user Y. This type of discussion is not constructive, but guided by personal likes and dislikes and only creates a lot of noise with no real results.

There is always room for improvement in software. All programs could be better, all tools could be better. But that something could be better doesn't mean that it's crap.
May 09, 2015
On 5/9/15 5:28 AM, Chris wrote:
>
> There is a tendency to bash and trash D for not having the exact same
> feature that some other language has, or for not having a tool that
> exists for some other language. This often gives the impression that D
> is unusable and complete crap, unless, of course, it will get feature X
> demanded by user Y. This type of discussion is not constructive, but
> guided by personal likes and dislikes and only creates a lot of noise
> with no real results.
>
> There is always room for improvement in software. All programs could be
> better, all tools could be better. But that something could be better
> doesn't mean that it's crap.

Well put. A few thoughts about that:

1. Some of these, even some of the more egregious ones, come from people who by their acts seem to genuinely enjoy the language and contribute to it. Are we taking the notion of tough love a bit too seriously?

2. There's a lot of resistance to the leadership saying positive things about the language. Soon as Walter replied that our toolchain isn't that bad, others replied with all they could to counter him - in what's now quite a predictable pattern. My interpretation of this phenomenon is that the leadership tooting its own horn makes people nervous ("are these guys in denial? so no more improvements on this stuff?" etc). I guess we should do less of it.

3. We need to improve the curb appeal of D.


Andrei

May 09, 2015
On Sat, May 09, 2015 at 09:02:27AM -0700, Andrei Alexandrescu via Digitalmars-d wrote:
> On 5/9/15 5:28 AM, Chris wrote:
> >
> >There is a tendency to bash and trash D for not having the exact same feature that some other language has, or for not having a tool that exists for some other language. This often gives the impression that D is unusable and complete crap, unless, of course, it will get feature X demanded by user Y. This type of discussion is not constructive, but guided by personal likes and dislikes and only creates a lot of noise with no real results.
> >
> >There is always room for improvement in software. All programs could be better, all tools could be better. But that something could be better doesn't mean that it's crap.
> 
> Well put. A few thoughts about that:
> 
> 1. Some of these, even some of the more egregious ones, come from people who by their acts seem to genuinely enjoy the language and contribute to it. Are we taking the notion of tough love a bit too seriously?
> 
> 2. There's a lot of resistance to the leadership saying positive things about the language. Soon as Walter replied that our toolchain isn't that bad, others replied with all they could to counter him - in what's now quite a predictable pattern. My interpretation of this phenomenon is that the leadership tooting its own horn makes people nervous ("are these guys in denial? so no more improvements on this stuff?" etc). I guess we should do less of it.
> 
> 3. We need to improve the curb appeal of D.
[...]

FWIW, I don't believe that the leadership tooting its own horn makes people nervous. Nervousness does not trigger the kind of ascerbic comments.

I think the *real* cause of these comments is the perception (whether or not it has basis in reality is up for debate) that certain long-standing nagging problems have not yet been fixed, and doesn't seem like they will be fixed anytime soon, and yet statements are made that seem (in the eyes of the commenter) to imply that these problems aren't there. These problems may be minor, peripheral, or not very important in the grand scheme of things, but they are nevertheless very obvious to the commenter because they encounter it frequently, or had a bad experience with it, like a mosquito in the room that causes endless annoyance and increasing frustration even if its worst effect is a mere itch at the end of the day.

Blanket statements about how good D (or that particular part of D) is may be wrongly taken as a denial of the existence of said minor (or not-so-minor) problem along with its associated frustrating experience, which aggravates the commenter to the point of posting an ascerbic response.

Another cause is that D has a core that's so ideal -- perhaps too ideal -- that people have developed an expectation that *everything* in D must be perfect, or else. They are not satisfied with a partial solution that meets 99% of the cases; they want 100.000%. The problem is, there is no single solution that solves every possible case.  Nobody agrees on how to get from the 99% to the 100%. Everyone has a different ideal of what perfection means. So no matter which route you choose, *somebody* is bound to get upset. Then when the chosen solution has been implemented and touted, the people who didn't agree with that solution get ticked off and react negatively.

How to solve this, I don't know. That's up to the leadership to solve. ;-) But at least let's be clear that this has nothing to do with nervousness or tough love or anything of that sort.


T

-- 
WINDOWS = Will Install Needless Data On Whole System -- CompuMan