Jump to page: 1 210  
Page
Thread overview
My choice to pick Go over D ( and Rust ), mostly non-technical
Feb 02, 2018
Benny
Feb 02, 2018
Adam D. Ruppe
Feb 02, 2018
bachmeier
Feb 02, 2018
H. S. Teoh
Feb 02, 2018
bachmeier
Feb 02, 2018
welkam
Feb 02, 2018
David Gileadi
Feb 02, 2018
welkam
Feb 02, 2018
Rubn
Feb 02, 2018
aberba
Feb 02, 2018
aberba
Feb 03, 2018
Adam D. Ruppe
Feb 03, 2018
aberba
Feb 02, 2018
user
Feb 03, 2018
psychoticRabbit
Feb 03, 2018
Joakim
Feb 03, 2018
Joakim
Feb 05, 2018
Michael
Feb 03, 2018
psychoticRabbit
Feb 03, 2018
Walter Bright
Feb 03, 2018
H. S. Teoh
Feb 03, 2018
Rubn
Feb 03, 2018
Norm
Feb 04, 2018
Rubn
Feb 04, 2018
Adam D. Ruppe
Feb 04, 2018
Joakim
Feb 03, 2018
psychoticRabbit
Feb 03, 2018
bachmeier
Feb 03, 2018
Dgame
Feb 03, 2018
welkam
Feb 03, 2018
Dgame
Feb 03, 2018
welkam
Feb 03, 2018
Christof Schardt
Feb 03, 2018
Dgame
Feb 03, 2018
bachmeier
Feb 04, 2018
Dgame
Feb 04, 2018
psychoticRabbit
Feb 04, 2018
Dgame
Feb 04, 2018
psychoticRabbit
Feb 04, 2018
Dgame
Feb 05, 2018
welkam
Feb 05, 2018
Dgame
Feb 05, 2018
psychoticRabbit
Feb 04, 2018
JN
Feb 04, 2018
bpr
Feb 04, 2018
Boris-Barboris
Feb 05, 2018
Walter Bright
Feb 05, 2018
Boris-Barboris
Feb 05, 2018
psychoticRabbit
Feb 05, 2018
psychoticRabbit
Feb 06, 2018
psychoticRabbit
Feb 05, 2018
Walter Bright
Feb 05, 2018
Boris-Barboris
Feb 05, 2018
welkam
Feb 06, 2018
Boris-Barboris
Feb 06, 2018
psychoticRabbit
Feb 06, 2018
Boris-Barboris
Feb 06, 2018
David Nadlinger
Feb 06, 2018
Luís Marques
Feb 07, 2018
Boris-Barboris
Feb 07, 2018
Boris-Barboris
Feb 07, 2018
Iain Buclaw
Feb 06, 2018
welkam
Feb 06, 2018
Atila Neves
Feb 06, 2018
Jacob Carlborg
Feb 08, 2018
Walter Bright
Feb 05, 2018
Jacob Carlborg
Feb 05, 2018
Atila Neves
Feb 05, 2018
Walter Bright
Feb 05, 2018
psychoticRabbit
Feb 05, 2018
bpr
Feb 05, 2018
Russel Winder
Feb 05, 2018
John Gabriele
Feb 05, 2018
Jonathan M Davis
Feb 06, 2018
John Gabriele
Feb 05, 2018
Laeeth Isharc
Feb 06, 2018
Ralph Doncaster
Feb 06, 2018
Adam D. Ruppe
Feb 06, 2018
H. S. Teoh
Feb 06, 2018
Ralph Doncaster
Feb 06, 2018
Jonathan M Davis
Feb 06, 2018
H. S. Teoh
Feb 06, 2018
bachmeier
Feb 07, 2018
Adam D. Ruppe
Feb 07, 2018
Nicholas Wilson
Feb 07, 2018
Ralph Doncaster
Feb 07, 2018
Ralph Doncaster
Feb 08, 2018
Nicholas Wilson
Feb 08, 2018
Ralph Doncaster
Feb 08, 2018
Nicholas Wilson
February 02, 2018
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.

As some have seen my posting in the past week regarding D, i like to explain my reasoning. I have been looking for the language to use for my next project, one of them was D.

But the choice was more or less between Rust, D and Go. As all 3 offered good multi-platform support ( essential ), fast, low memory usage.

It came down to a list of criteria. I will mostly focus on D and Go as mentioning Rust too much will simply sidetrack the post too much.

HTTP:

D has no default HTTP server. So you need to rely on vibe.d. Vibe.d being a external package that then relies on a few people to maintain it.

D has no future proof HTTP. There is currently no official http2 build in to vibe.d. Test branches do not count ;)

Go is the only one in the short-list that has a default HTTP solution that is well tested by loads of people, is fast ( especially with pre-fork ) and future proof.


Performance:

When it comes down to anything HTTP related unfortunately D is lagging behind on this part. Especially vibe.d

www.techempower.com/benchmarks/previews/round15. The techempower is just as example.

My own tests show the same performance issues where D at minimum to a un-preforked Go loses over 30% in real life, network tested benchmarks ( not some silly local device benchmarks that most people do ).

It also shows D has a higher CPU usage for the relative lower performance. Pre-forking Go increases the CPU usage but also performance.

All of my own tests are done with LDC ( optimized flags ) not DMD.

Sure, benchmarks are the devils breath but it makes no sense building a application that even with database queries are slow compared to the rest.


Build:

DMD is fast, no doubt about it but Go is just instant in my case for the same type of content i need ( Go HTTP vs D vibe.d ).

Other issues in my past with D also did not help, namely the regressions and constant bug-fix releases.

Its time for D to figure out a stable API. Its really bad when one compiles editor plugin code and sees "deprecated function" all over the output.

How up to date is the https://dlang.org/deprecate.html even?


Community / Code examples:

D has a nice community here on the forum but out in the real world "the internet" D is more or less non existing.

Google searches end up so many times back to this forum with a LOT of outdated code going back 5+ years, what does not work anymore as API changes happened.

The fact that a lot of code out there is old or non functional is a issue. Worse when 80% of the search results end up in this forum, showing that D does not have a very broad community.

I do not deny that D is used by some big companies as a C++ replacement but the impression is that those are mostly closed source projects where very few code surfaces on the web.


Package support:

Again ... D has very few packages and a LOT of them are frankly so old that they do not work properly anymore with the current DMD versions. Deprecated functions galore.

If D had 1195 active, well supported high quality packages but it has not. Most packages at best have one decent package and that is it.

You want to produce PDFs? fpdf 2015-Apr-06, a very limited PDF generation tool last updated 3 years go.

You want to produce Excel's? Excel-d but it faces the same issue as being the only native project. What if the author ...

GRPC? Imap? ...

As i post this code.dlang.org is down so no more comparing. *sigh*

https://github.com/avelino/awesome-go
https://github.com/zhaopuming/awesome-d < missing Excel-d

Just looking on Github for D vs Go packages. 323 vs 15,351 (dlang vs golang) ... This is again related to popularity and community. So there is much more chance for finding something exotic as a base project in Go then ever in D.


Windows support:

But unlike D, Go's Windows support is simply better.

Plugins work out of the box with VSC. It has its own Jetbrain IDE.

Is Go perfect, no...

Dealing with Gopath is stupid. Who's idiotic idea that was instead of managing simply by project location.

Its no fun dealing with the Go Sqlite plugin ( what is 3th party ) on Windows but then your are in actual production doing something, not fighting D to get your IDE working. Or fighting dub versions when LDC and DMD are both installed and in the environment path.

The amount of strange issues, not bugs or cross platform support issue that crosses D Windows users, simply leaves a bad taste.


Windows / Community issues:

From a persona point of view, its tiring with some people looking down on the fact that i use Windows and have true issues related to D. That have been reported and helped fix but its a never ending stream of fixing one thing, running into another. Currently need to fall back to D 77.1 because of "issues".

But let me say this:

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.

Or when a opinion is voiced about potential improvements, it comes down to "do it yourself or pay for it".

It is my personal opinion that:

* Do it yourself
* Pay for it
* Report it ( when the author has stated that they did )

Those comments add nothing to any discussions, they sidetrack discussion and only alienate people. Just do a google search and its horrible how many posts show up with this type of comment or variation.

Some people feel overly aggressive in defending D from criticism that it only alienates people. It has alienated me. Whenever i think about D, it positive feeling to move forward is always matched with dread thinking about some people or comments when i want to talk about issues.

The nice people here do not way up, to the people with a chip on there shoulder, that just ruin your day/mood.

It also does not help when comments boil down how "windows users do not contribute" when they actually do. Its very condescending and just scares away people.

At times i think that D is better served as a language with just a blog / news sections, a every expanding ( and up-to date ) examples section and better documentation and no forum at all.


Target:

I am personally confused with D's message.

* Are you targeting C++ developers?

From my perspective most seem to be plenty happy with C++ 17. And they have the whole massive tooling, debugging and IDE support already. Given D its tooling, IDE and other issues, you really expect to draw developers away?

* Are you targeting Script language developers?

Missing HTTP solution, no easy CGI solution, .. it feels like there is much missing in terms of convincing for what script language developers are used too.

* Are you targeting C developers?

Sure BetterC is a way towards that but again, what do you offer more then Rust? I see C developers more going for Rust then D on this point. Or hell even Zig or Jai or whatever 3 letter flavor of the month language.

* Are you targeting people new to programming?

From my perspective it does not even look like people with a lacking in programming skills are even welcome here. Everything is build around the idea of people with previous higher level programming skills. Discussions about ideas that tend to be so complex that anybody without a higher level programming background will simply say: "No, do not understand a darn thing" and they look for easier solutions.

* Are you targeting Go, Crystal or new language developers?

...

What is D even targeting? The kitchen and sink? It feels like D does not even know who its targeting. In my opinion the focus seems to be with C++ developers with most not giving a darn about D.

Go knows its not a system programming language, the focus is clearly more normal and web development. Even Rust has a much more clear message.

Other languages have slogans, they have selling points.

When i hear Go, you hear uniformal, fast, simple syntax language.
When i hear Rust, you hear safe, manual memory management.
When i hear D, you hear ... ... ... ...

Advantages:

D has a lot of advantages like CTFE, Generics, betterC etc over Go. But the resources seem to be spread so much over so much code, that information about how to properly use those Technics is spread thin.

As some wise people said in the past, use the tools you need for a project. And being a jack of all trades but master of non is not good.

It makes D its learning curve also much higher.


Conclusion:

In case people are interested, a personal list with 40 points that mattered to me. Each with a score ( Bad 1, Mediocre 2, Good 3 ). As a way to create a impartial opinion just based upon my own needs.

75. Go
69. .Net
67. Rust
64. Pascal < This one surprised even me.
63. Crystal
60. D
55. Swift
51. Kotlin

60/D < Yes, it also came as a surprise. The issues like finding potential affordable employees ( or high training times ), the non existing default HTTP support, lack of packages, the lack of code and examples. And a lot of mediocre (2) scores really made D lower ranked then i expected. I gave every language as much leeway without overly focusing on one specific bad point. .Net ended up high but it was never a contender because of the memory usage, but it was still fairly judge on all other points. Same with Pascal ( talk about a surprise ).

The amount of issues that plague D go beyond the few i mentioned here and frankly will take years with a lot of manpower ( that D lacks ) to even sort out. I think D really missed the boat years ago because if it had a influx of people maybe 10 years ago, it will have been a whole different ballgame now.

Is Go perfect? Hell no ... but one needs to way the positive and negative. And to me it feels like Go has made more positive decisions that actually help people develop, then D on doing too much everywhere. Go is here to stay for the foreseeable future, where as D... not sure and that is scary.

I can go on about a whole lot of technical issue and be told how uninformed i am. There is nothing to gain going down that route as the non-technical issues really put a dampener on D already.

I am sure there will be lots of opinions regarding this post but its suffice to say that my decision to go with Go ( no pun intended ) is finally. I hope this final post is some indication of the issues that have plagued my decision process.
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> D has no default HTTP server. So you need to rely on vibe.d. Vibe.d being a external package that then relies on a few people to maintain it.

You could also use my libs, which have been around far longer than vibe.d and work fairly well with a variety of things including http serving, cgi interfacing, databases, gui, scripting, all in easy-to-use independent modules and often using reliable first-party libraries to avoid bugs.

Of course, you can be forgiven for not knowing that, since I don't aggressively advertise them. I'm tempted to package it all together someday though... a "just works" thing with the packaged libs and maybe even an IDE would be nice. But alas, I don't have an IDE packaged like that (yet, at least).
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

You don't want any comments on your post, but this being the internet, it's necessary to respond when you disagree.

> 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.
>
> Or when a opinion is voiced about potential improvements, it comes down to "do it yourself or pay for it".
>
> It is my personal opinion that:
>
> * Do it yourself
> * Pay for it
> * Report it ( when the author has stated that they did )
>
> Those comments add nothing to any discussions, they sidetrack discussion and only alienate people. Just do a google search and its horrible how many posts show up with this type of comment or variation.
>
> Some people feel overly aggressive in defending D from criticism that it only alienates people. It has alienated me. Whenever i think about D, it positive feeling to move forward is always matched with dread thinking about some people or comments when i want to talk about issues.
>
> The nice people here do not way up, to the people with a chip on there shoulder, that just ruin your day/mood.
>
> It also does not help when comments boil down how "windows users do not contribute" when they actually do. Its very condescending and just scares away people.

The reason you hear this is because you are getting an explanation of how things work around here. You write "Those comments add nothing to any discussions" and in a sense that is true. But that's because there really isn't a reason to have a discussion. You are getting an answer. There is nothing to be gained from saying "someone should do this and this and this". When you get those responses, it is simply people explaining how things are done. It wouldn't make sense to go into a clothing store and complain that they don't sell fried chicken. If you're in the market for fried chicken, don't go to a clothing store. The things you want - a perfect out-of-the-box Windows experience, where you can make requests for others to do the things you want - is not what D has to offer.
February 02, 2018
On Fri, Feb 02, 2018 at 05:01:58PM +0000, bachmeier via Digitalmars-d wrote: [...]
> The things you want - a perfect out-of-the-box Windows experience, where you can make requests for others to do the things you want - is not what D has to offer.

While I agree that in an open-source volunteer project like this one, it doesn't make sense to go around telling others what to do (it's their own free time, they get to decide what they like to work on), I think the bit about a perfect out-of-the-box Windows experience is something that we can and should work on, even if we may never get there, given our current manpower.  Reducing unnecessary barriers like this will only benefit us in the long run.  I don't think it's a good idea to just give up on it or ignore it.

And AFAIK, there *are* some people working on improving Windows support, though progress is slow because of limited manpower. (And there's where more volunteers to step up to the plate would help expedite things.) So IMO it's unfair to say that D has absolutely nothing to offer on this front -- it's not perfect yet, but we're getting there!


T

-- 
What did the alien say to Schubert? "Take me to your lieder."
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> [snip]

D is a fantastic language.

If I can derive some gist from OP, we need high quality libraries for people to use.

There are two things here: libraries (of) high quality (features, performance, stability)

Most of the stated facts are known and there are many such threads in this forum.

However actionable things will become reality only with *quality man power*.

Probably the D website should highlight that before people come here to compare it with Rust, Go, C++ etc which are backed up by $$$ corporations.

D might have lost it's mind share, but is trying hard to catch up to it. That's why you see things on D blog and so on.
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> 75. Go
> 69. .Net
> 67. Rust
> 64. Pascal < This one surprised even me.
> 63. Crystal
> 60. D
> 55. Swift
> 51. Kotlin

It is interesting that you took the time to score different languages, but of course, there probably are a lot languages or frameworks that you didn't score.

Anyway, I think in most cases polyglot programmers looking for high productivity would pick a language from a very small set of parameters, which basically has very little to do with the language itself:

What would be the most productive tooling for this very narrow problem I am facing? Then you look at tooling that has been used for similar problems, and the eco system around that.

Rust, Crystal, Kotlin and Pascal would  typically be very far down on that list. The eco system being an issue.

In reality many programming tasks can be solved efficiently with "interpreted" languages like Python or the Javascript-ecosystem. I.e. you can get good performance and high productivity for many applications if you are selective in how you build your application. The reason for this? They have been used for many different applications, so other people have already done the groundwork.

February 02, 2018
On Friday, 2 February 2018 at 17:24:47 UTC, H. S. Teoh wrote:
> On Fri, Feb 02, 2018 at 05:01:58PM +0000, bachmeier via Digitalmars-d wrote: [...]
>> The things you want - a perfect out-of-the-box Windows experience, where you can make requests for others to do the things you want - is not what D has to offer.
>
> While I agree that in an open-source volunteer project like this one, it doesn't make sense to go around telling others what to do (it's their own free time, they get to decide what they like to work on), I think the bit about a perfect out-of-the-box Windows experience is something that we can and should work on, even if we may never get there, given our current manpower.  Reducing unnecessary barriers like this will only benefit us in the long run.  I don't think it's a good idea to just give up on it or ignore it.
>
> And AFAIK, there *are* some people working on improving Windows support, though progress is slow because of limited manpower. (And there's where more volunteers to step up to the plate would help expedite things.) So IMO it's unfair to say that D has absolutely nothing to offer on this front -- it's not perfect yet, but we're getting there!
>
>
> T

Not sure what happened to my response...

Improving the Windows experience is definitely a good thing. The Windows experience
is not yet what it should be, and that's where you either have to do the work or
pay someone else to do the work.
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> ** Wall of text **

I dont post here often but...

Most of what you complain is known already and/or not entirely correct. People who work on D are not some glue sniffing brain dead individuals that are incapable of understanding that documentation is not perfect, library support is lacking and user experience is not at the same level as C#. That and more are known here. Over the years that I lurked here I saw many people come on forums and complain about things that are obvious and say them in a way that indirectly imply incompetence of core contributors. Things don't work not because of incompetence but because there is not enough people working on things. Thats why you get answers you get. To fix problems we need people who work so either you become one (fix it yourself) or get some one else to work (pay money).

The entire D project is fueled by coffee and dislike of C/C++ and its amazing that it achieved so much with so little
February 02, 2018
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
> HTTP:
>
> D has no default HTTP server. So you need to rely on vibe.d. Vibe.d being a external package that then relies on a few people to maintain it.
>
> D has no future proof HTTP. There is currently no official http2 build in to vibe.d. Test branches do not count ;)

D interfaces with C and C++ so you are not limited to vibe.d. You have entire C and probably all C++ HTTP libraries.

And you didnt benchmark D. You benchmarked vibe.d
February 02, 2018
On 2/2/18 1:38 PM, welkam wrote:
> On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
>> ** Wall of text **
> 
> I dont post here often but...
> 
> Most of what you complain is known already and/or not entirely correct. People who work on D are not some glue sniffing brain dead individuals that are incapable of understanding that documentation is not perfect, library support is lacking and user experience is not at the same level as C#. That and more are known here. Over the years that I lurked here I saw many people come on forums and complain about things that are obvious and say them in a way that indirectly imply incompetence of core contributors. Things don't work not because of incompetence but because there is not enough people working on things. Thats why you get answers you get. To fix problems we need people who work so either you become one (fix it yourself) or get some one else to work (pay money).
> 
> The entire D project is fueled by coffee and dislike of C/C++ and its amazing that it achieved so much with so little

It is pretty amazing, and it's a testament to how appealing the D language can be, even with all its surrounding pain points.

As a long time lurker it seems like I see posts like Benny's more often recently than I recall seeing in years past. This makes me happy--to me it's a sign that more people are seriously considering D than used to. I also think it's good to be reminded of what newcomers' pain points are, and I'm glad Benny took the time to list his.
« First   ‹ Prev
1 2 3 4 5 6 7 8 9 10