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