On Thursday, 25 January 2018 at 15:20:15 UTC, Benny wrote:
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.
You are not alone. The existing D-Tools are either really bad or
do not work propely/not out of the box. And I have more important
things to do than trying to setup the tools. Maybe someone likes
that, but not me. But I have to say that I've used more or less
successfully Visual-D and Mono-D a few years ago. But neither of
the tools can keep up in any way with Tools for
Rust/C++/C#/Java/PHP. The existence of a good IDE which works out
of the box without annoying setup procedures is crucial for the
success of a language nowadays. That's one of the reason why I've
moved on. I went back to C++ and nowadays to Rust. C++ is not
that clean as D but the Tool support is crucial for anyone who
wants to use the language for other than some hobby stuff.