October 01, 2019
On Monday, 30 September 2019 at 18:41:07 UTC, H. S. Teoh wrote:
>
> It's just like Walter himself has said on several occasions. Why bend over backwards to please the non-adopting crowds who will just move on to the next excuse not to use D once you've addressed their current complaint? Rather, we should be concerned about making *existing* users happier -- and there's no shortage of action items there.
>
>
> T


How do you reconcile that with people leaving D again? Anyway, there are two things in the statement above:

1. Walter admits that D only caters for a few users with very specific use cases (niches). There's nothing wrong with that, but please state it _publicly_ on dlang.org. Of course people will be p****d off when they are sold one thing (general purpose language), only to find out later that they don't count at all, that D is only for the "chosen few". Also, the "chosen few" shouldn't go on about how great things are with D, of course it's great for _them_, because they get their pet features implemented.
2. Given 1., it makes even less sense that D is such a mess. If you have a small target audience with a more or less small set of requirements, then D could focus on that and have a sound and compact language for special purposes.

In other words, D fails in both ways. It disregards the ordinary programmer, but it doesn't provide its pet users (the "chosen few") with a sound and stable language either. So what is D all about then?
October 01, 2019
On Tuesday, 1 October 2019 at 05:35:22 UTC, Ecstatic Coder wrote:
> I'm convinced his huge amount of effort should have been spent on making D a better Go/Crystal/etc.
>
> As I said earlier, I *REALLY* wanted to implement Cyclone, my CQL/SQL script runner in D.
>
> The problem is it was SO MUCH easier to do it in Go, despite is EXTREMELY limited compared to an object oriented language like D : no genericity, no parametric polymorphism, no virtual inheritance, etc.
>
> But the language and its standard library provides ALL the building blocks you need to implement web servers (coroutines, HTTP, etc), and the official CQL/SQL database drivers are complete, optimized, well maintained and used extensively.
>
> As I already said, it takes you just a few very simple lines of code to implement this script runner in Go, because you can clearly see that the language itself was designed especially for that : manage efficiently HTTP and database connections.

But none of this is in any way related to Walter. This is not Walter's area. No matter how many times anyone writes it on the mailing list, Walter will not be writing web servers or database drivers.

Your complaint, as written, is a complaint to nobody. This is not a corporation making decisions on where to spend developer time. It is a volunteer project. Sure, you can vent on the mailing list, but you don't have anyone to be the target of your anger. It's ultimately 100% wasted electrons unless you have a proposal to go along with it that will result in the work getting it done.

"D should do X" posts do not have any value unless they go a step further to suggest a solution beyond "someone else should do all the work". That is simply reality. Did you even put together a proposal for GSoC or SAoC?

It's easy to generate ideas of what some mythical developer should do. It's much harder to actually make it happen.
October 01, 2019
On Tuesday, 1 October 2019 at 08:47:19 UTC, Chris wrote:
> 1. Walter admits that D only caters for a few users with very specific use cases (niches).

Which niches are these?

My impression is that D primarily caters for users that want the feature-set of C++, but find C++ to be too inconvenient or complicated.

October 01, 2019
On Tuesday, 1 October 2019 at 10:05:31 UTC, Ola Fosheim Grøstad wrote:
> On Tuesday, 1 October 2019 at 08:47:19 UTC, Chris wrote:
>> 1. Walter admits that D only caters for a few users with very specific use cases (niches).
>
> Which niches are these?
>
> My impression is that D primarily caters for users that want the feature-set of C++, but find C++ to be too inconvenient or complicated.

Look at the companies listed here:

https://dlang.org/orgs-using-d.html

and the posters who say "everything's great" often work for one of those companies. Weka.io and Symmetry come to mind. It's mostly real time (e.g. Funkwerk, sociomantic) and high throughput stuff (Weka.io etc.). It's mostly cloud / server based (that's why mobile is regarded unimportant). This is perfectly fine, if that's what D wants, but please be clear about it.

I think what puts people off is that D is advertised as a general purpose "best language in the world", but is in fact a special interest niche language. Imo, it's this dishonesty that is at the heart of a lot of discontent and rants on this forum, and misunderstandings. Of course, an engineer who works on cloud based real time systems will not (care to) understand the frustrations of a team that wants to make their D program available on Android and iOS. If you look at the list of organizations above, it makes perfect sense why certain aspects - that any modern language needs nowadays - are neglected: mobile (cf. mostly cloud based users), proper tooling (cf. carefully crafted internal tooling in each organization).

It calls my attention, though, that at Mercedes-Benz R&D "D is used for software development tools." Apparently, they're not yet convinced, and if you look at the other organizations above, they can afford to use a highly specialized, exotic language like D, because they're not too big and use it for very specific tasks. But once things get bigger, e.g. Mercedes-Benz, the company starts to tread more carefully.
October 01, 2019
On Tuesday, 1 October 2019 at 05:35:22 UTC, Ecstatic Coder wrote:
> As I said earlier, I *REALLY* wanted to implement Cyclone, my CQL/SQL script runner in D.

are you familiar with my libraries? your code there looks trivial to do in D, the only piece I don't have sitting on my shelf is the cassandra one, and since there's a C library for that, that'd be easily accessible with my framework.

I think it is folly to insist on rewriting everything in your own language/library of choice. I'll agree there - the big guys might be able to do that (or be popular enough to get the other companies to officially support you) but D isn't really in that position. But we do have excellent interop with the lingua franca of apis - C. I have had reliable database code for ages because I just use an interface over the official C client libraries.

HTTP I wrote from scratch, but even that got bootstrapped by reusing the existing stuff - the original cgi interface (which btw is now a misnomer, since it does let you do an embedded server) did the bare minimum to talk to apache and iis servers! And the original http client I did called curl. I have since replaced that with scratch too, but I still think curl is a decent way to do it.

anyway though i just wonder if you tried it and found it sucked (or didn't try it cuz you saw it and was like "this sux" - to this day my docs are super light) or just didn't see it.
October 01, 2019
On Friday, 27 September 2019 at 18:41:46 UTC, Ola Fosheim Grøstad wrote:
> On Friday, 27 September 2019 at 18:16:27 UTC, Ola Fosheim Grøstad wrote:
>
> Seems like the adoption of new languages today is primarily driven by a desire by big corporations to avoid compatibility and isolate their own eco systems.
>
> Apple/Swift.
> Microsoft/C#.
> Google/Go/Koitlin.
> Oracle/Java.
>

Something I was always curious to know, Andrei Alexandrescu worked at facebook for few years

And from the little available online, it seems that facebook for a while used D for some internal tools

Again as an outsider, and with very little available on this, it seems facebook  moved t Ocaml and than Reason

Did Andrei, ever write a blog on why D at facebook didnt happen, it seems like it could have been a big moment for D

(OCaml is a GC language, so it can't be the GC)


October 01, 2019
> It's easy to generate ideas of what some mythical developer should do. It's much harder to actually make it happen.

I was just saying that the way the D sponsors funds are used towards C-like application programming doesn't seem optimal to me, as I personally think D is a nice garbage collected language for general application programming.

But hey, that's just my two cents...
October 01, 2019
On Tuesday, 1 October 2019 at 12:29:59 UTC, Adam D. Ruppe wrote:
> On Tuesday, 1 October 2019 at 05:35:22 UTC, Ecstatic Coder wrote:
>> As I said earlier, I *REALLY* wanted to implement Cyclone, my CQL/SQL script runner in D.
>
> are you familiar with my libraries? your code there looks trivial to do in D, the only piece I don't have sitting on my shelf is the cassandra one, and since there's a C library for that, that'd be easily accessible with my framework.
>
> I think it is folly to insist on rewriting everything in your own language/library of choice. I'll agree there - the big guys might be able to do that (or be popular enough to get the other companies to officially support you) but D isn't really in that position. But we do have excellent interop with the lingua franca of apis - C. I have had reliable database code for ages because I just use an interface over the official C client libraries.
>
> HTTP I wrote from scratch, but even that got bootstrapped by reusing the existing stuff - the original cgi interface (which btw is now a misnomer, since it does let you do an embedded server) did the bare minimum to talk to apache and iis servers! And the original http client I did called curl. I have since replaced that with scratch too, but I still think curl is a decent way to do it.
>
> anyway though i just wonder if you tried it and found it sucked (or didn't try it cuz you saw it and was like "this sux" - to this day my docs are super light) or just didn't see it.

Indeed I didn't wanted to spend my week end trying to use low-level C libraries or fixing the Cassandra package because it is incomplete and abandoned since several years.

As I say, the easy path to success was to use Go, for all the reasons I've explained.

Call this lazyness if you want, but my spare time was limited to a few hours, and IMO D didn't allow me to easily implement this very simple tool with just a few line of high level code like I did in Go.

I understand that D's philosophy is that you must put efforts to do this kind of development with it.

My philosophy is to take the tool which allows me to program what I need quickly and efficiently. And for anything related to web and database technologies, D is definitely not the path of less friction.



October 01, 2019
On Tuesday, 1 October 2019 at 15:55:50 UTC, Ali wrote:
>
> Something I was always curious to know, Andrei Alexandrescu worked at facebook for few years
>
> And from the little available online, it seems that facebook for a while used D for some internal tools
>
> Again as an outsider, and with very little available on this, it seems facebook  moved t Ocaml and than Reason
>
> Did Andrei, ever write a blog on why D at facebook didnt happen, it seems like it could have been a big moment for D
>
> (OCaml is a GC language, so it can't be the GC)

I remember Andrei mentioned in an article that D was faster than C++ for a script like cli tool, because it never freed memory in the first place (before it finished). Below you will find some material about it [1]. I don't know what exactly D was used for at facebook (he's probably not allowed to reveal it), but it might have been data analysis, same stuff sociomantics uses it for. Anyway, would be interesting to see why facebook abandoned it (or at least didn't go on with it) after Andrei had left. But the D community tends not to ask such questions ;)

[1]
2013
The announcement: https://forum.dlang.org/post/l37h5s$2gd8$1@digitalmars.com

"In a post on the Dlang.org website, Alexandrescu elaborates a little more: The code project he’s working on is in “heavy daily use at Facebook” and originally it was written in C++. Now that it’s in D the team has “measured massive wins in all of source code size, build speed, and running speed.” His post has spurred a lot of positive support on the forum, and if what he says is true then it would make sense for Facebook to take a critical tool and make it more efficient–because there will be an upshot on overall efficiency of operations at the site."
https://www.fastcompany.com/3019887/facebook-adds-5000-lines-of-d-language-code-whats-that-mean

2014
"Today, Alexandrescu is a research scientist at Facebook, where he and a team of coders are using D to refashion small parts of the company's massive operation. Bright, too, has collaborated with Facebook on this experimental software, as an outsider contractor. The tech giant isn't an official sponsor of the language—something Alexandrescu is quick to tell you—but Facebook believes in D enough to keep him working on it full-time, and the company is at least considering the possibility of using D in lieu of C++, the venerable language that drives the systems at the heart of so many leading web services."
https://www.wired.com/2014/07/d-programming-language/
October 01, 2019
On Tuesday, 1 October 2019 at 12:29:59 UTC, Adam D. Ruppe wrote:
> are you familiar with my libraries? your code there looks trivial to do in D, the only piece I don't have sitting on my shelf is the cassandra one, and since there's a C library for that, that'd be easily accessible with my framework.

I think the difference is, since Go has libraries like http in standard library, or de facto standard library, even if it's an external package, it's been included in thousands of projects since and went through a lot of testing.

Even though I like your libraries and have used them a few times, they haven't been as battletested. There might be missing vital functionalities (which you didn't just need for the moment), or there might be some nasty bugs lurking which just weren't triggered for the usual usecases. And if I were making a real web application, not a hobby project, I want to fully trust the libraries. I want to include the library and make use of it, and move on to more fun stuff. I don't want to debug the library whenever something breaks.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19