Had another 48hr game jam this weekend...
Iain Buclaw
ibuclaw at ubuntu.com
Sun Sep 1 10:19:07 PDT 2013
On 1 September 2013 17:37, Manu <turkeyman at gmail.com> wrote:
> On 2 September 2013 01:02, Iain Buclaw <ibuclaw at ubuntu.com> wrote:
>>
>> On 1 September 2013 03:05, Manu <turkeyman at gmail.com> wrote:
>> > IDE integration absolutely needs to be considered a first class feature
>> > of
>> > D.
>>
>> An IDE is not a feature of a language. Unless you are a RAD language
>> that removes the ability of developers to write a single line of code
>> (and do it awfully).
>
>
> It certainly is in the case of C#. I think it's also central to C#'s
> success. People got in, and feel productive within seconds of firing it up.
> I've never had such a great language adoption experience. I clicked create
> project, and started writing code.
> The IDE is super helpful, and you can basically code by using the '.' key
> and consequent auto-completion popups as a documentation replacement.
>
Yeah... I'm still not buying it. :o)
>> > Obviously, we settled on Visual-D (Windows) and Mono-D (OSX/Linux); the
>> > only
>> > realistic choices available. The OSX user would have preferred an XCode
>> > integration.
>> >
>>
>> Why not VIM?
>
>
> Ummm, because I'm not a masochist? :)
> But each to their own. No reason VIM shouldn't have a nice integration
> too...
>
Well my perspective doesn't help that whenever I think of IDE, the
image of clippy comes into my head.
http://vigor.sourceforge.net/screenshots/fullscreen.png
>> > I think continuous code compilation for auto-completion and syntax
>> > highlighting purposes should be a service offered and maintained by DMD.
>> > That way it will evolve with the language, and anyone can use it without
>> > reinventing the wheel.
>> >
>>
>> WAT.
>
>
> The D frontend, whatever... it should be recycled to do the work, since it's
> already the best at it. I'm just repeating myself...
>
Ah, I just didn't understand what you were referring to first time
round (the "as a service" was confusing also. :o)
I assume you mean using *enter IDE name here* to run syntax checks on
your code as you type to highlight errors before you build using the
compiler proper?
>> >
>> > Debugging:
>> >
>> > Poor debugging experience wastes your time every 5 minutes.
>> > I can only speak for the Windows experience (since we failed to get OSX
>> > working); there are lots of problems with the debugging experience under
>> > visual studio...
>> > I haven't logged bugs yet, but I intend to.
>> > There were many instances of people wasting their time chasing bugs in
>> > random places when it was simply a case of the debugger lying about the
>> > value of variables to them, and many more cases where the debugger
>> > simply
>> > refused to produce values for some variables at all.
>> > This is an unacceptable waste of programmers time, and again, really
>> > burned
>> > us in a 48hour context.
>> >
>> >
>>
>> This is why GDC rox.
>
>
> O_o ... GDC produces DWARF info, which isn't so useful in windows.
> We used to roll with dwarf->pdb conversion, but I think there's quite a loss
> in translation, and it didn't work too well.
>
This is why using a free system rox.
>> > Bugs:
>> > Yes, we hit DMD bugs, like the one with opaque structs which required
>> > extensive work-arounds.
>> > struct MyStruct;
>> > MyStruct*[] = new MyStruct*[n];
>> >
>>
>> I'm not sure if that should work / don't see the advantage over just
>> using a void*.
>
>
> struct Mesh;
> struct Material;
>
> Mesh* mesh;
> Material* material;
>
> material = mesh; // ?
>
The only used case I can think is in C++ bindings where you don't want
to define the contents, but want to have the correct mangling (this
I've had a partial need for in a project I'm working on behind the
scenes that will come out at around the 2.064 release :-)
The language implementation would have to be changed to not produce
TypeInfo for opaque types, but this might be undesirable in
restrictions to the use of such types, but I guess you are asking for
it if you want it.
>> > One more thing:
>> > I'll just pick one language complaint from the weekend.
>> > It is how quickly classes became disorganised and difficult to navigate
>> > (like Java and C#).
>> > We all wanted to ability to define class member functions outside the
>> > class
>> > definition:
>> > class MyClass
>> > {
>> > void method();
>> > }
>> >
>> > void MyClass.method()
>> > {
>> > //...
>> > }
>> >
>> > It definitely cost us time simply trying to understand the class layout
>> > visually (ie, when IDE support is barely available).
>> > You don't need to see the function bodies in the class definition, you
>> > want
>> > to quickly see what a class has and does.
>> >
>> >
>>
>> That does seem more of the point of D interface files (.di).
>
>
> 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
Yes... though not outside the boundaries of implementing languages /
interpreters / bytecode compilers. ;-)
> Perhaps the dev's here use relatively few, or very simple classes?
K.I.S.S.
> Seriously, how do you quickly read and understand the API through the noise?
Depends how well the author was at documenting his API.
> 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?
Document the class as you write it.
> And why would you want to indent every line of function code by a few tabs?
>
I use GNU style myself... (that probably *does* make me a masochist).
http://en.wikipedia.org/wiki/Indent_style#GNU_style
--
Iain Buclaw
*(p < e ? p++ : p) = (c & 0x0f) + '0';
More information about the Digitalmars-d
mailing list