January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | On Thursday, 25 January 2018 at 15:20:15 UTC, Benny wrote:
> 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.
Indeed, this complaint is not new. Because the complaint is actually so common, I'd like to share my own experience:
I tried several different solutions, including the IntelliJ plugin, Mono-D, Sublimetext with a D-plugin, dlangide and vs code with code-d. With most of them, I had some problems, but in the end, I got all of them working. I had the least problems with code-d (the serve-d variant), which works perfectly after setting the stdlibPath in the settings (provided you already have dscanner and dfmt installed on your system and in your PATH). This what also what I've settled for in the end.
In my opinion the features offered by it are actually quite good: The autocompletion provided by dcd is more than enough for my needs and in addition to that you get static linting, code formating, debugging (if you also install the native debug plugin from the same author) goto definition and some more features. And in my experience this all works without major issues. Sure, you don't get autocompletion for ufcs calls, but that is actually quite difficult to implement...
Take this all with a grain of salt: I have only tested this on Linux and OS X, I have no clue about the situation on Windows.
But at least my experience was really good, so I'd like to use this opportunity to thank all the authors of the plugins and the underlying tools for doing this (ungrateful) work (and in my opinion doing it very well). I know that probably a lot has still to be done, but the state of affairs is not as bad as all the complaints make it sounds.
The reasons for the problems you describe still being so common have already explained thoroughly by others: Its mainly that there are no paid developers working on it and therefore not enough people working on it. So the solution is actullay quite simple and it is the same answer that most complaints about problems with D get: Either do it yourself, or pay somebody to do it. That is the quickest way to fix things.
|
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rubn | On Friday, 26 January 2018 at 03:40:26 UTC, Rubn wrote: > You seem to be short tempered You think after two days trying to get a series of plugins to work? > you tried 2 plugins rather quickly, without even trying to see if there were configurations or other options you could use to get features working. Visual Studio Code: Code-D, Serve-D, D-Language Jetbrain: D-Language That is 4 plugins as described in the original post. Two of the same author, 2 from other authors. So that makes 3 different people there plugins. One may think a person can be salty after so many hours. >> - Limited name suggestion ( VSC functionality not the plugin ) only by forcing VSC (ctrl+space). >> - ... and nothing else... > > This is just not true... > > https://imgur.com/z6CZbjL.gif Well, if that actually worked, i will not be complaining here. |
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johannes Loher | On Friday, 26 January 2018 at 07:08:50 UTC, Johannes Loher wrote: > > Take this all with a grain of salt: I have only tested this on Linux and OS X, I have no clue about the situation on Windows. In general a lot of plugins tend to work better in POSIX systems then Windows. I think its more a issue about Windows platform testing. > But at least my experience was really good, so I'd like to use this opportunity to thank all the authors of the plugins and the underlying tools for doing this (ungrateful) work (and in my opinion doing it very well). I know that probably a lot has still to be done, but the state of affairs is not as bad as all the complaints make it sounds. It probably is not as bad but its clearly a issue anyway. But one guy complaining after trying 6 or 7 times over a year+ ( with constant reporting the issues ), probably means there are more people out there who tried and simply gave up without reporting the issues. > The reasons for the problems you describe still being so common have already explained thoroughly by others: Its mainly that there are no paid developers working on it and therefore not enough people working on it. So the solution is actullay quite simple and it is the same answer that most complaints about problems with D get: Either do it yourself, or pay somebody to do it. That is the quickest way to fix things. And that is the same issue with a lot of FOSS languages. But at one moment one needs to say stop. I donated a lot ( for me anyway ) of money to different FOSS projects but that money, what happened to it? In general there is zero accountability where money gets spend on most projects. Just in the last month over 500$ on different projects. But i am not a infinity money machine. And in this case: Does one donate money to the Code-D/Serve-D developer. But its not really his issue. To the D-Language developer? But its not really his issue. Who do you even donate too to have specific problems that are hard to trace fixed. Its not like one asks: "Please add x functionality". Just recently i donated 100$ to a other language project to implement socket support. So far i see nothing happening, while this functionality is more important to me now ( as it blocks my progress on that project ). So even when donating the results can be "i feel ripped off". Do it yourself = Time is money. If i had that much time to learn the base code of a language, i will not be donating money to specific language projects ( also i'am not a good core / system programmer ). I feel its too many times: Complain about issue => Get responds there are no people to do it => Please do it yourself or pay. By that logic i am bankrupt tomorrow with the issues i face in different languages :) Let me not bother you too much with my rants. Like i said, its better ( for me ) to focus on a language that has things better worked out and it does not feel like screaming at the walls. I feel sorry for projects like this that have no big corporate backers because its not a envy position without the money and focus. |
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | On Friday, 26 January 2018 at 16:30:19 UTC, Benny wrote:
> On Friday, 26 January 2018 at 07:08:50 UTC, Johannes Loher wrote:
>>
>> Take this all with a grain of salt: I have only tested this on Linux and OS X, I have no clue about the situation on Windows.
>
> In general a lot of plugins tend to work better in POSIX systems then Windows. I think its more a issue about Windows platform testing.
Just want to pipe in that I run linux and yeah, I can't relate to any of the OP's grievances, using Visual Studio Code. I installed serve-d and the D tools on the side from repositories, then a few clicks for the code-d beta in vscode, and it just works. Arch/Manjaro.
No real complaints about the features offered either. Autocomplete can be a bit too eager at times maybe, suggesting equals_t and various enum members when typing else, recently unitTest (from ModuleInfo) instead of unittest, etc. Syntax highlighting points out unbalanced parens, braces and quotes. Mouseover for documentation works, looking up/peeking at definitions does too. If I could magically wish for one thing it would be UFCS support.
|
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anonymouse | On Friday, 26 January 2018 at 17:27:17 UTC, Anonymouse wrote: > If I could magically wish for one thing it would be UFCS support. Just an FYI: implementing the universal language server protocol with DMD as a library is the number 1 priority for this year's GSoC: https://wiki.dlang.org/GSOC_2018_Ideas#Language_Server_Protocol_for_D (if the D Language Foundation gets accepted, of course) |
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | On Friday, 26 January 2018 at 15:37:15 UTC, Benny wrote: > On Friday, 26 January 2018 at 03:40:26 UTC, Rubn wrote: >> You seem to be short tempered > > You think after two days trying to get a series of plugins to work? > >> you tried 2 plugins rather quickly, without even trying to see if there were configurations or other options you could use to get features working. > > Visual Studio Code: Code-D, Serve-D, D-Language > Jetbrain: D-Language > > That is 4 plugins as described in the original post. Two of the same author, 2 from other authors. So that makes 3 different people there plugins. One may think a person can be salty after so many hours. Well one is an older version, which is why it's the same author. The Jetbrains plugin wasn't developed for a long time, I don't know the current state of it. Did you bother at all the create an issue on the respective github repos stating your issue? Did you look at the source at all for the plugins? They aren't terribly complicated, you could diagnose some issues yourself. >>> - Limited name suggestion ( VSC functionality not the plugin ) only by forcing VSC (ctrl+space). >>> - ... and nothing else... >> >> This is just not true... >> >> https://imgur.com/z6CZbjL.gif > > Well, if that actually worked, i will not be complaining here. Well, if it didn't work, that gif wouldn't exist. |
January 26, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | 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.
|
January 27, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dgame | On Friday, 26 January 2018 at 21:59:51 UTC, Dgame wrote:
> 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.
I have been comparing a bunch of languages and there IDEs this afternoon to see how fast and efficient there latest version work ( mostly inspired by the other topics of popular languages ). Wanted to avoid the whole "grass is greener on the other side" as a way to be fair.
* Rust: Jetbrain IntelliJ + Rust plugin.
It looks like it has become a official supported plugin by Jetbrain. Works perfectly out of the box. Impressive results and issue hinting.
* Crystal: Visual Studio Code + OmniPascal plugin
Color syntax but nothing else. No surprise, Crystal has no Windows compiler so no way to link any meaningful out output on Windows.
* Pascal: Yes, freaking pascal! Visual Studio Code + OmniPascal plugin
Impressive! Impressive features, type hinting and more.
* C#: Visual Studio Code + C# ( OmniSharp ).
No surprise there. Lots of functionality.
* Go: Visual Studio Code + Go Plugin.
Again, no surprise. Lots of functionality.
Did not try the Jetbrain Gogland IDE because that is a official product so of course Go will work great in that one.
* Julia: Visual Studio Code + Julia Plugin.
Took a bit more configuring but again more functionality then i ever got from any D plugin.
* Swift: Visual Studio Code + Swift Plugin.
Like Crystal, no Windows version and limited to Color Syntax.
... got kind of fed up testing because everything that you expect to works on Windows, worked out of the box ( at best with oa Julia one needed to add the compiler path ).
If nobody has figured out the trend by now, every language that has a windows compiler in any form has no major issues to offer extended functionality ( or even basic ). Those that do not have windows compiler, fall flat as expected.
The exception being D that despite having multiple windows compilers offer ( in my case ) no functionality beyond color syntax. I do not count the VSC ability to list every keyword in your document.
Another trend that i noticed from the other thread is that all the above mentioned languages all outperform D in github user activity ranking ( inc the very young one's ). D has always struck me more as a corporate language ( one that is less focused upon open source ). Maybe there is a more open community focus on the other platforms and this drives more interaction and pushes better plugin support?
In other words, at best it take me half a hour to get proper editor support in the above mentioned languages ( that offer it in Windows ). Where as D ... well, its been a long topic and anybody who read the first post knows the results. Lets see:
* 8+ hours: Struggling with 4 plugins and no results. And still waiting on one of the plugin authors his feedback as he also has a life.
* 5 hours: Seven languages with 5 working perfectly and 2 POSIX languages with the expected no result. Yes, that includes the time to download all the compilers, get examples and other stuff.
Guess the 8+ hour language ;)
|
January 27, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | On Saturday, 27 January 2018 at 00:08:17 UTC, Benny wrote: > * Rust: Jetbrain IntelliJ + Rust plugin. > It looks like it has become a official supported plugin by Jetbrain. Works perfectly out of the box. Impressive results and issue hinting. https://blog.jetbrains.com/blog/2017/08/04/official-support-for-open-source-rust-plugin-for-intellij-idea-clion-and-other-jetbrains-ides/ Yep, i was right. Its now a official support plugin by Jetbrain. And no offense but i doubt it has anything to do with Mozilla officially backing Rust but more a sign of popularity. Just as how Go got its own Editor by Jetbrain. |
January 27, 2018 Re: Dscanner - DCD - Dfix ... Editor support or the lack of it. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Benny | On Saturday, 27 January 2018 at 00:13:51 UTC, Benny wrote:
> On Saturday, 27 January 2018 at 00:08:17 UTC, Benny wrote:
>> * Rust: Jetbrain IntelliJ + Rust plugin.
>> It looks like it has become a official supported plugin by Jetbrain. Works perfectly out of the box. Impressive results and issue hinting.
>
> https://blog.jetbrains.com/blog/2017/08/04/official-support-for-open-source-rust-plugin-for-intellij-idea-clion-and-other-jetbrains-ides/
>
> Yep, i was right. Its now a official support plugin by Jetbrain.
>
> And no offense but i doubt it has anything to do with Mozilla officially backing Rust but more a sign of popularity. Just as how Go got its own Editor by Jetbrain.
My impression so far is that most of the D users love to program in a tiny editor without the features which modern IDE's gives you. That's impressive, but outdated and even a bit silly if the project is bigger. In any company I've been so far we've used IDE's, because their feature-set and tools take so much work away from you - I don't want to miss them anymore. Nowadays, the majority of programmers who are willing to try new/others programming languages, think so too. I'm somewhat sure that this unneccessary hurdle is one of D's biggest mistakes.
|
Copyright © 1999-2021 by the D Language Foundation