Dscanner - DCD - Dfix ... Editor support or the lack of it.

Benny benny.luypaert at rhysoft.com
Thu Jan 25 15:20:15 UTC 2018


After months doing a different project, i need a programming 
language for a new client with specific needs. D comes to mind. 
As usual that involves downloading the compiler (dmd and ldc).

So, lets install Visual Studio Code:

* Code-D Plugin:
   - Syntax highlight *check*
   - After saving: DMD error suggestions in the code. *check*
   - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).
   - ... and nothing else...


So lets try the next plugin:


* Serve-D Plugin:
   - Syntax highlight *check*
   - After saving: DMD error suggestions in the code. *check*
   - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).
   - ... and nothing else...


Frustration level increasing. Lets try the next one:


* D-Language Plugin:
   - Syntax highlight *check*
   - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).
   - ... and nothing else...


Ok ... so Visual Studio Code its Dscanner, DCD, Workspace-d do 
not properly work or some other issue.


Then lets try IntelliJ Community Edition. After a long time 
getting all the dependancies and compiling them... Dscanner - DCD 
( client and server ) - Dfix ...


* D Language Plugin:
   - Syntax highlight *check*
   - Way too many items like writefln, import etc all being marked 
as unknown. Clearly wrong.
   - ... and nothing else...
   - Socket error (std.socket.xxx) on closing IntelliJ


Conclusion is that it feels like the whole D infrastructure is 
very, very poorly supported.

Other issues like delays that some of the D plugins seem to 
introduce:

* Like "loading ..." popups that do nothing but always show up ( 
Visual Studio Code )
* Like pressing "dot" expecting a response, waiting 2 seconds and 
then finally something happening ( IntelliJ plugin ) but simply 
dumping every possible name and variable ( zero intelligent code 
support )

I assume that this is again broken DCD or Dscanner.

And no, no errors in the console of VSC or anything like that.

Let me summarize my personal D editor experience in the last 1+ 
year.

* Attempts at getting D editor support going: 6 or 7.
* Amount of times things worked out of the box. One! And this was 
limited to about a few minutes and after that all suggestions 
broke again.
* Amount of times dscanner or dcd or other plugins broke because 
of DMD newest version broke: 4
* Tested on different machines: 4! They all have one thing in 
common: Windows 10
* Tested on different Windows installations: 3
* Tested on different "version" of Windows 10: 3
* Amount of times complaining to the plugin authors: Too many to 
count.
* Time spend on these tests / issues: Easily 50 hours or more.
* Frustration level: Again, like each time before EXTREME!

Please do not give me the company line that i need to report 
issues. I did so many times. It is tiring playing guinea pig, 
complaining and reporting, waiting for things to get fixed and 
still seeing things break again or simply not working properly.


I can download Go, C#, C, C++, Delphi, Rust and get proper 
working plugins for the above mentioned editors but D is always 
that frustrating problem child. And i can not blame the plugin 
authors because the issues always seem to stem from the D plugins 
( dcd, dscanner, ... ).

Like dscanner changing its binary location between builds from 
folder root to /bin folder, breaking the plugin authors there 
system as it expected it in the folder root.

Maybe things work great in a few very specific editor but in my 
personal experience, D its editor support is non stop 
frustrating. And i suspect that this complaint is not new.

Clearly there is infrastructure in place for automated testing 
the compiler but it feels like there is a total lack of 
infrastructure for everything that surround it. Beyond maybe a 
few editors that the core team uses?

My personal opinion: Too much in the D landscape is so 
individualist and not properly cross platform tested, that it 
results in pure frustration for the end developer.


More information about the Digitalmars-d mailing list