September 01, 2013
On Sunday, 1 September 2013 at 16:37:19 UTC, Manu wrote:
> I'm amazed at the resistance to this (a few no's, any yes's at all?).

I'm neutral on it personally. If it was there, whatever, it'd be nice for porting from C++ at least. But if it isn't there, meh.

BTW you could hack it in yourself:

class Foo {
        int c;
        int add(int a, int b);
}

pragma(mangle, Foo.add.mangleof)
int add(int a, int b, Foo _this) {
        return a + b + _this.c;
}

lol
September 01, 2013
Manu:

> Seriously, how do you quickly read and understand the API through the noise?

The noise increases if you have to repeat the class name for each method :-)

Bye,
bearophile
September 01, 2013
Thank you for sharing this experience Manu, I had no idea there were so many issues with D on windows. I primarily use OSX without problems, but have also used it on windows for small projects, but I haven't experienced the issues you describe.

Can I just say to some of the others in this thread: comments along the lines of "use vim" or "use a free os" are not helpful. These are legitimate users and their issues are legitimate also, whether you agree with their choice of environment or not.
September 01, 2013
On 1 September 2013 19:01, Peter Alexander <peter.alexander.au@gmail.com> wrote:
> Thank you for sharing this experience Manu, I had no idea there were so many issues with D on windows. I primarily use OSX without problems, but have also used it on windows for small projects, but I haven't experienced the issues you describe.
>
> Can I just say to some of the others in this thread: comments along the lines of "use vim" or "use a free os" are not helpful. These are legitimate users and their issues are legitimate also, whether you agree with their choice of environment or not.

They were also my silly answers, and I say them because I spent a week sharing a room with Manu.  (So he should by now know when I am talking seriously. :o)

I also voice them because "everyone should be forced to develop in an IDE" is not a helpful either (and so, I make my point in this way by countering with the extreme opposite).  It's all about freedom of choice, and if you impose restrictions on people (removing makefiles) because another option provides convenience (IDEs) regardless of the freedom to use that tool, well, err... yeah...


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
September 01, 2013
On 9/1/2013 9:37 AM, Manu wrote:
> I'm amazed at the resistance to this (a few no's, any yes's at all?).

Andrei and I talked about this a while back, and we both think it is a good idea. But there always seem to be more important things, and it's notable that lack of this does not seem to have slowed down C# or Java.

September 01, 2013
On 9/1/13, Manu <turkeyman@gmail.com> wrote:
> You mean dynamically loading DLL's, and finding/hooking up the symbols manually?

You can use an import library (implicit linking) that's creatable with the implib tool rather then having to load each symbol by hand (explicit linking) via GetProcAddress. Personally I'd be scared to try and link /static/ libraries on Win64, since DMD-64 is relatively new and likely has bugs unique to it.

> Or enforce that the devs actually experience the end-user experience. Then they'll know what the problems actually are, have a realistic perspective of their productivity impact, and might take them more seriously.

But you can't force devs to hack on other people's IDE projects if they're not interested in IDEs. (especially if the IDEs are written in, say, C#, or are a complex C++ monster, or just have a lousy codebase).

If some IDEs don't work as advertised, why not file complaints to the developers of those IDEs?

> None of the others could be bothered creating yet-another-webpage-account to log bugs
> they encountered. I suggested they do so a few times. I was promptly ignored.
> It's just that manually logging in to non-ajax websites is so last decade. People are
> growing very weary of creating and managing accounts on every website they visit.

Lazyness is abound these days. :) I don't know what ajax has to do
with it though. (web is not my thing)

I do like how stackoverflow allows you to log-in with a single click (e.g. using a Google account or something else), if bugzilla allowed this it would be neat.

Alternatively maybe we should allow unregistered user bug reports, but use a captcha or something to fight spam. I don't know how doable this is. Some other projects use this system (e.g. Tcl).
September 01, 2013
On Sunday, 1 September 2013 at 16:37:19 UTC, Manu wrote:
> I'm amazed at the resistance to this (a few no's, any yes's at all?). Do
> people here actually write D code, or rather, non-trivial D code? O_o
> Perhaps the dev's here use relatively few, or very simple classes?
> Seriously, how do you quickly read and understand the API through the noise?
> I really can't get my head around it... Why wouldn't you want to be able to
> read a convenient summary of what a class is and does?
> And why would you want to indent every line of function code by a few tabs?
>
> Can anyone offer me ANY benefits? It legitimately blows my mind... O_O

Imho, the benefits of the "inline" model are clarity (the code is always at the declaration) and convenience (no need to adapt both declaration and definition on signature changes).

For a quick overview of a given class, just use your editor's code folding feature – you don't even need a fancy IDE with code outline support for that, the good old editors do just as well with a small of D syntax definitions present (and so do the newer ones in their tradition like Sublime Text).

I agree that good IDE support is essential for the success of D – if it maybe does not matter for all users, it certainly does for a sizable proportion of them. But this isn't even a matter of IDE quality, but just of not being stubborn/stupid about the way you use the tools you already have…

David
September 01, 2013
On 9/1/13, Manu <turkeyman@gmail.com> wrote:
> Perhaps the dev's here use relatively few, or very simple classes?

I think it's the latter. Plus we have UFCS, so we don't necessarily have to define everything as a member function. Also remember that D isn't so reliant on classes for "polymorphic" behavior, we have templates. All of this contributes to much fewer uses of classes than in, say, C#.

> And why would you want to indent every line of function code by a few tabs?

I think this is a result of not being able to define the methods outside of the class. You still want a visual clue that they're member functions, so you indent them. Otherwise I'd personally love to be able to define the methods outside.

Btw, I found Andrei's post where he proposes your suggestion:

http://forum.dlang.org/thread/j0cs8r$mch$1@digitalmars.com#post-j0cs8r:24mch:241:40digitalmars.com

At #1 is:
1. The compiler shall accept method definitions outside a class.
September 01, 2013
On 01/09/13 19:18, Walter Bright wrote:
> I agree. And frankly, I have no idea how any automated system could remove
> duplicates. It often is hardly obvious that two bug reports are duplicates.

The Ubuntu bug-tracker on Launchpad seems quite good at identifying duplicates, but that relies on some fairly sophisticated automated error-report generating software on the desktop.

It goes so far as to try and get me to submit bug reports for my built-from-source D compilers on the (thankfully very rare) occasions that they crash.  I decided in these cases, probably best to report the problem elsewhere ... :-)
September 01, 2013
On 9/1/13, Joseph Rushton Wakeling <joseph.wakeling@webdrake.net> wrote:
> The Ubuntu bug-tracker on Launchpad seems quite good at identifying
> duplicates,
> but that relies on some fairly sophisticated automated error-report
> generating
> software on the desktop.

The stackoverflow approach of listing similarly named topics *as you're writing the topic name* is a good way for someone to find a topic that may had already been discussed. It would be great if we had this in bugzilla.