digitalmars.D - My choice to pick Go over D ( and Rust ), mostly non-technical
- Imperatorn (3/8) Nov 07 2021 This is a pretty well thought out post. Are we getting forward?
- jfondren (27/29) Nov 07 2021 You mean, has any of that changed? No, it hasn't. Maybe small
- mw (17/26) Nov 07 2021 Quote from that post:
- data pulverizer (23/32) Nov 07 2021 I had an experience where (because I'm not a network programmer,
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (6/14) Nov 07 2021 I don't know if using C (or C++) frameworks will provide an
- data pulverizer (35/41) Nov 08 2021 You're right that C frameworks programming experience is far from
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (12/24) Nov 08 2021 Yes, if you want use one language for all projects that is
- Imperatorn (11/41) Nov 07 2021 Yeah, I still have hope. I also see much happening in D now.
- rikki cattermole (8/13) Nov 07 2021 As of late, when I try goto definition with DCD it works fine.
- Dr Machine Code (3/11) Nov 12 2021 what's dmd-fe?
- max haughton (3/18) Nov 12 2021 dmd frontend
- data pulverizer (13/18) Nov 08 2021 ++1 I think IDE experience I've had in VS Code in a language like
- Dr Machine Code (3/12) Nov 13 2021 there's also
https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion. [...]This is a pretty well thought out post. Are we getting forward?
Nov 07 2021
On Sunday, 7 November 2021 at 11:43:23 UTC, Imperatorn wrote:https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org Are we getting forward?You mean, has any of that changed? No, it hasn't. Maybe small details like http/2 support have. If your only interest is making little HTTP servers then go has few disadvantages vs. D (although I'm surprised performance is so bad, when I compared a go UDP server with a D one the difference was enormous--go worked hundreds of times harder to have a fraction of the throughput). I've also found rocket.rs to have competitive compiletimes vs. vibe for a little server with a few dozen routes (not from scratch obviously, but Rust's edit-compile-test cycle took half the time of D's). If your code amounts to ```python import solution solution.work() ``` then the language doesn't matter at all and your complaints start to look like that post's: "language A has more investment in its solution library than language B has, so I want to use language A". Where language might start to matter for you is when you try to go against the grain of the the 'solution' library, or when something goes wrong, or when you want a feature that wasn't intended. This is where my happy little Rust solutions turned into nightmares. It didn't matter that Rust has an SMTP server library for me to use and d didn't when writing an d SMTP server was easier than adding what should be trivial features to the Rust server.
Nov 07 2021
On Sunday, 7 November 2021 at 11:43:23 UTC, Imperatorn wrote:https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:Quote from that post: """ D has a nice community IF you fit into the mold. As a Windows user i am frankly fed up with people giving responses as "report it, fix it yourself" when it has been clearly stated that i do as much. """ Sadly it's very true, and I actually have tried to fix the two RPC issues that I reported (https://forum.dlang.org/thread/ompyepvaeeorbldfyjkd forum.dlang.org) But I am not a complier guy or network guy, I was not able to fixed them myself, so my project using D stalled. I think that is the same experience for many people who just want to use D develop applications: many needed component libraries are simply not working. (In 2021, who can live without a network / RPC library?)First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion. [...]This is a pretty well thought out post. Are we getting forward?
Nov 07 2021
On Sunday, 7 November 2021 at 11:43:23 UTC, Imperatorn wrote:https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:I had an experience where (because I'm not a network programmer, and the situation was time sensitive) I opted to use a Rust solution rather than Vibe.d which I tried but found unsuitable. It frustrated me because I know D can do a great job in this sphere - but I wasn't in a position to do anything about it. One thing about languages such as Rust and Go is that lots of people in their ecosystem have an internet/network programming background. So you're likely to find decent server/client libraries, and there isn't just one option for a HTTP library, but there might be three, four, or more relatively high quality libraries. In addition because of the nature of their communities, if the "flagship" solution was for any reason to become unsuitable, someone would immediately write a great replacement. A lot of issues like this in the D space will be greatly ameliorated and some will be eliminated altogether once ImportC is made to work robustly. It won't be a "panacea" but it will help immeasurably. In that situation, you'd just dial up a C library and call it from D. You'd be able to lean on C libraries for the tools you need and write D code for the stuff I want to build. Bootstrapping from C in this way is the key to resolve this issue.First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion. [...]This is a pretty well thought out post. Are we getting forward?
Nov 07 2021
On Sunday, 7 November 2021 at 21:39:55 UTC, data pulverizer wrote:A lot of issues like this in the D space will be greatly ameliorated and some will be eliminated altogether once ImportC is made to work robustly. It won't be a "panacea" but it will help immeasurably. In that situation, you'd just dial up a C library and call it from D. You'd be able to lean on C libraries for the tools you need and write D code for the stuff I want to build. Bootstrapping from C in this way is the key to resolve this issue.I don't know if using C (or C++) frameworks will provide an acceptable programming experience. C frameworks tend to be quite distant from what you would expect from a higher level language like D. You would have to modify the C framework's «runtime», like making it create treads using the D runtime, etc.
Nov 07 2021
On Sunday, 7 November 2021 at 22:19:13 UTC, Ola Fosheim Grøstad wrote:I don't know if using C (or C++) frameworks will provide an acceptable programming experience. C frameworks tend to be quite distant from what you would expect from a higher level language like D. You would have to modify the C framework's «runtime», like making it create treads using the D runtime, etc.You're right that C frameworks programming experience is far from D. But I think if you are looking to get work done, it is the difference between having the tool there and being able to use D and perhaps having to use a different language altogether. Further more I think that `ImportC` is actually an opportunity to show off D's meta-programming features, by presenting how lots of imported functions with ordered parameter naming can be "lifted" into one of D's nicer programming methodologies including showing off std.traits, template/string mixins and so on. Julia does similar things with their C library backends. I haven't had to deal with making C frameworks «runtime» multithreaded in D, perhaps because the C libraries I tend to call are already multi-threaded, or it wasn't an issue for my use case. I think C libraries are a valuable resource to "lean on" and perhaps "write away" at a later date if they are not suitable, and `ImportC` is central to easing that pathway. Having said that runtimes *might* become an issue in the near future since I am working with interop between R and D. Basic things like calling R functions from D and D functions from R can be straightforward, but I quickly discovered that since R has it's own runtime and memory allocation schemes as does D, there were some issues. Certain features in D rely on D runtime, which you have to negotiate carefully with R's and you have to use R's memory allocation if you want the data accessible in R, but I think these are secondary issues - they are more about extending functionality and will be negotiated in various ways. The basic functionality I require is **immediately** available with a fully developed `ImportC`. As someone whose work is centred on data science C libraries are basically at the centre or backend of > 95% of what we do (even people working with JVM languages still have to call BLAS, Lapack, and so on). `ImportC` would make a huge difference there and in many other application spheres.
Nov 08 2021
On Monday, 8 November 2021 at 09:02:53 UTC, data pulverizer wrote:You're right that C frameworks programming experience is far from D. But I think if you are looking to get work done, it is the difference between having the tool there and being able to use D and perhaps having to use a different language altogether.Yes, if you want use one language for all projects that is absolutely true. Of course, most C libraries do not require a "runtime". So you can make elegant wrappers easily for those.on. Julia does similar things with their C library backends.I haven't used Julia, but it sounds interesting. I assume Julia is more dynamic/runtime focused than D though?there were some issues. Certain features in D rely on D runtime, which you have to negotiate carefully with R's and you have to use R's memory allocation if you want the data accessible in R, but I think these are secondary issues - they are more about extending functionality and will be negotiated in various ways. The basic functionality I require is **immediately** available with a fully developed `ImportC`.It would be interesting to read about you experiences when the time comes, hope you find time to share what worked/didn't work here in the forums. Maybe create a separate thread and "blog" about strengths and weaknesses? I think there sometimes is a distance between language designers and programmers because they use the language differently.
Nov 08 2021
On Sunday, 7 November 2021 at 21:39:55 UTC, data pulverizer wrote:On Sunday, 7 November 2021 at 11:43:23 UTC, Imperatorn wrote:Yeah, I still have hope. I also see much happening in D now. There are forces wanting it to succeed. But we need to focus. Most important thing I need rn (I know ppl find it silly, but coming from other languages you get so used to it) is a reliable and good IDE with static analysis, autocomplete, goto definition that just works and built in package management and a good set of core libraries that are rock solid. is my goal. (We have some devices where we barely have space left for dotnet runtime)https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:I had an experience where (because I'm not a network programmer, and the situation was time sensitive) I opted to use a Rust solution rather than Vibe.d which I tried but found unsuitable. It frustrated me because I know D can do a great job in this sphere - but I wasn't in a position to do anything about it. One thing about languages such as Rust and Go is that lots of people in their ecosystem have an internet/network programming background. So you're likely to find decent server/client libraries, and there isn't just one option for a HTTP library, but there might be three, four, or more relatively high quality libraries. In addition because of the nature of their communities, if the "flagship" solution was for any reason to become unsuitable, someone would immediately write a great replacement. A lot of issues like this in the D space will be greatly ameliorated and some will be eliminated altogether once ImportC is made to work robustly. It won't be a "panacea" but it will help immeasurably. In that situation, you'd just dial up a C library and call it from D. You'd be able to lean on C libraries for the tools you need and write D code for the stuff I want to build. Bootstrapping from C in this way is the key to resolve this issue.[...]This is a pretty well thought out post. Are we getting forward?
Nov 07 2021
On 08/11/2021 11:30 AM, Imperatorn wrote:Most important thing I need rn (I know ppl find it silly, but coming from other languages you get so used to it) is a reliable and good IDE with static analysis, autocomplete, goto definition that just works and built in package management and a good set of core libraries that are rock solid.As of late, when I try goto definition with DCD it works fine. But the future of DCD is to be rewritten to use dmd-fe. I did say this on Discord earlier today, that I'm hoping someone steps up to do the rewrite (really its a refactor + addition of the extra engine). But in saying that, this stuff should be owned by the compiler developers. They are the ones that are going to make the IDE integration actually good.
Nov 07 2021
On Monday, 8 November 2021 at 01:11:38 UTC, rikki cattermole wrote:On 08/11/2021 11:30 AM, Imperatorn wrote:what's dmd-fe?Most important thing I need rn (I know ppl find it silly, but coming from other languages you get so used to it) is a reliable and good IDE with static analysis, autocomplete, goto definition that just works and built in package management and a good set of core libraries that are rock solid.As of late, when I try goto definition with DCD it works fine. But the future of DCD is to be rewritten to use dmd-fe.
Nov 12 2021
On Saturday, 13 November 2021 at 03:57:22 UTC, Dr Machine Code wrote:On Monday, 8 November 2021 at 01:11:38 UTC, rikki cattermole wrote:dmd frontendOn 08/11/2021 11:30 AM, Imperatorn wrote:what's dmd-fe?Most important thing I need rn (I know ppl find it silly, but coming from other languages you get so used to it) is a reliable and good IDE with static analysis, autocomplete, goto definition that just works and built in package management and a good set of core libraries that are rock solid.As of late, when I try goto definition with DCD it works fine. But the future of DCD is to be rewritten to use dmd-fe.
Nov 12 2021
On Sunday, 7 November 2021 at 22:30:30 UTC, Imperatorn wrote:Most important thing I need rn (I know ppl find it silly, but coming from other languages you get so used to it) is a reliable and good IDE with static analysis, autocomplete++1 I think IDE experience I've had in VS Code in a language like Rust is frankly awesome and D's was quite poor and frankly enough to put new people off the language. Sorry but that was my experience. I now just use C++ syntax highlighting and the terminal, but it's some time since I used the D plugin so I might try it again... and built in package management and a good set of core libraries that are rock solid.Honestly, I think the standard library is getting better. From a looking to get work done perspective it's certainly much better than before. Improvements are of course necessary, but I wouldn't say that things are bad at all, but then I'm not from the DotNet world. I compare it to things like Julia, Nim, Rust, Chapel and so on, and I'd say D compares very well indeed.
Nov 08 2021
On Sunday, 7 November 2021 at 11:43:23 UTC, Imperatorn wrote:https://forum.dlang.org/post/vnkgayrbnokeufduuuba forum.dlang.org On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:there's also https://forum.dlang.org/thread/nj2mm1$1hun$1 digitalmars.com?page=1First of all, please do not repost this on Reddit or any other forum. This is focused for the D community alone to help deal with internal issues and it does not need to be ridiculed as this is a personal opinion. [...]This is a pretty well thought out post. Are we getting forward?
Nov 13 2021