On Sunday, 1 September 2013 at 02:05:51 UTC, Manu wrote:
Configuring compilers:

Naturally, this is primarily a problem with the windows experience, but it's so frustrating that it is STILL a problem... how many years later?

My first setup took me days :D Somehow it improved. It still sucks.


Getting a workable environment:

Unsurprisingly, the Linux user was the only person happy work with a makefile. Everybody else wanted a comfortable IDE solution (and the linux
user would prefer it too).


I came to the same conclusion, and that is why SDC is relying on libd. Our tooling sucks hard.

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.


I don't know any dev that is happy of XCode, even OSX lovers. I mean, how good is a editor that propose you to export functions to iTune (I should try it one day, I really wonder what it does), but not finding declaration in its contextual menu ?

This goes back to the threads where the IDE guys are writing their own parsers, when really, DMD should be able to be built as a lib, with an API
designed for using DMD as a lib/plugin.

Considering DMD never deallocate anything, expect to restart your IDE every hour or so.

Debugging:


Ho god ! The demangler do not demangle most things. Hello stack trace of incomprehensible symbol. If gdb is able to give me file/line, druntime is completely unable to do so, so you have to use external tooling to get back this info.

The best of the best being too long mangling being truncated in the output. Backtrace is the bare minimum to dubug and it isn't working.


Documentation:

Okay for the most part, but some windows dev's want a CHM that looks like the typical Microsoft doc's people are used to. Those that aren't familiar with the CHM viewer; it's just HTML but with a nice index + layout tree.


I don't understand that. I never understand anything at MS documentation because of its look and feel (the content is usually pretty good).

I guess it is matter of taste/habit.


Containers:

The question came up multiple times; "I don't think this should be an
array... what containers can I use, and where are they?"...
Also, nobody could work out how to remove an arbitrary item from an array,
or an item from an AA by reference/value (only by key).

This code:
  foreach(i, item; array)
    if(item == itemToRemove)
      array = array[0..i] ~ array[i+1..$];
Got a rather 'negative' reaction from the audience to put it lightly...


Me miss 1 piece in the language to make that work properly (and another one to make that more effiscient). Namely covariance on template instances and allocators.

I've been raising the first one as it is also a problem for SDC. People raised it to implement AA as lib, and it is a recurring discussion around dcollection.


Bugs:
Yes, we hit DMD bugs, like the one with opaque structs which required
extensive work-arounds.
  struct MyStruct;
  MyStruct*[] = new MyStruct*[n];

We also ran into some completely nonsense error messages, but I forgot to
log them, since we were working against the clock.


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).

Arguably, this is because of lack of IDE support and because C++ screwed you up :D I recognize the feature as good to have, but definitively not as big as an issue as the one mentioned above. If the problem mentioned before are solved, then this one won't be a big issue.

I'm doing some more work on premake (a nice light buildsystem that generated makefiles and project files for popular IDE's) to tightly
incorporate D into the various IDE's it supports.


That look a good project !

Reply via email to