Facebook is using D now

Pages: 12
Of all the languages discussed in this thread, could you be a little more vague?
This is a thread about D, so...

EDIT: DMD always has the latest features fyi but has issues with Windows...
That's the kind of info I needed, thanks. I don't code on windows anymore, so it shouldn't be a problem.
Last edited on
We went into quite a tangent dancing around PHP.
I too suggest sticking with DMD instead of GDC.

Also if you download the big ZIP, you'll get the entire source code as well.

And the source code for the library is nice to have, because it contains unit tests, and sometimes you'll find useful functions that are not yet mentioned in the documentation.

Stay on the site for the reference and help.
closed account (S6k9GNh0)
Thankfully, they are FINALLY implementing functionality to help prevent things that forcefully activate the GC, which is what I've been asking for for literally 5 years or so. I'll be much more active in the D community hopefully... I do think it's a better language than C++.
"Facebook is using D in production". That's a big headline. Some would think the core Facebook site is run on D now. But it seems they use it only for some developer productivity internal tool (lint type thing - basically a tokenizer and a parser). I couldn't find any evidence on the Internet stating it would be used on the server side. Server side is still programmed in PHP (realtime) and Java (analytics).

Companies like Facebook (e.g. Google or Microsoft) use many different technologies and languages for their internal projects. E.g. Microsoft uses Linux servers somewhere or Google uses Python and Go. But this doesn't really mean much for the adoption of particular technology. It would mean something if they used it in the core critical projects they earn money from. If Google implemented Search, GMail or their core database stuff (e.g. Spanner) in Python that'd be something for Python. If Facebook used D for counting how many "likes" you clicked, that'd be some big success for D. Similar if Twitter implemented their messaging backend in D.

Therefore I'm bit skeptical. D is already over 10 years old and was surpassed in popularity by much younger languages. One internal project at Facebook doesn't change much IMHO.

Thankfully, they are FINALLY implementing functionality to help prevent things that forcefully activate the GC, which is what I've been asking for for literally 5 years or so

Seems they are going the same path Java recommended 10 years ago. Because their GC implementation pretty much sucks, they try to do everything to avoid/postpone its runs. This approach doesn't work in the long term (people will run into GC problems anyways). The real solution is fixing GC = making it efficient and pause-less (or at least with bounded pause times).

D removes the limitation of C and adds modern language constructs that removes the need of things like any type of boilerplate

I don't think it really succeeded to reach expressivity levels of other modern languages. D is still much closer to C++ than say, Haskell, Scala or Python.


This shows either D is not that expressive as its proponents seem, or that D coders are bad and put too much functionality into one commit.
Last edited on
@ computerquip: I know you must have explained this before in another thread, but for the sake of the discussion, why are you opposed to the garbage collector?

In my opinion, D is a high level language and should be used as such. If you want a low level language you should be using C instead. That's my rationale, personally, and it is why I'd never write an OS kernel in neither C++ nor D, nor anything other than Assembly and C.

So to reiterate, in what circumstances is the GC in D an inconvenience?
closed account (S6k9GNh0)
I don't know which is worse, the fact that rapidcoder started with a fucking JAVA DISCUSSION AGAIN dull comparison to Java and higher level languages or the fact that he thinks a memory allocation shouldn't be avoided. Herm...

EDIT: I'm not against garbage collection. I don't think it should be forced onto whoever uses the language though, there should be alternatives. Replacing the GC in D with another type of GC was for sometime complicated as well.

Its not so much you *had* to use the GC in the language, it was more like it was impossible without going well out of you way through out the program to check to see if the GC activated which was a burden.

EDIT2: Also, in the case of implementing something like a plugin, it's inconvenient and slow to start the GC for something simple especially if the plugin is opened and closed multiple times.
Last edited on
Memory allocation can and should be avoided where possible, but that doesn't solve the problem with poor GC. There are places, where GC is inevitable, e.g. parallel lockless programming. I've heard D tries to rival Scala/Haskell in parallel programming. But with a toy GC they're not going to make it. After 10 years of development D is IMHO *not* production ready.
Last edited on
closed account (S6k9GNh0)
The quality of the GC isn't the largest of my concerns with the language at the moment. There's always room for improvement. I'm generally more concerned with D as a language rather than D as an implementation.

As for parallel programming, I haven't personally looked into it since I generally stick with threads/mutexes in this sense as it's what I've always used. But perhaps I should try the alternatives!

EDIT: I've not kept up with GC improvements but people do constantly work on it. I doubt the GC is as bad now as it was a couple years ago.
Last edited on
Seems like it just wanted the D.


But D seems like a good language from what I heard. So I'd count this as an improvement.
Last edited on
> But D seems like a good language from what I heard.

"From what I heard" being the operative phrase.

The problems with a programming language come to the surface only after it gets widely used in mainstream programming. C, C++, Java - none of these are perfect; but by now we know what the issues are, we know that these are, warts and all, quite usable languages.

There have been dozens of theoretically 'perfect' languages that have never been tested except as toys by their aficionados, and there will be dozens more in the future. For any language, the step up from zero to one is a giant step; an increase in usage of infinite proportions. Parents are enraptured by their toddler's first steps, and believe that this astounding feat must surely be the precursor to olympic records being shattered with ridiculous ease.

That is where 'D' is right now; till it is used widely in production code, we don't even know if it has any first-order weaknesses. Till then, it remains a curiosity that might probably make it.
Last edited on
"From what I heard" being the operative phrase.
Yea, that's why I put it there. I never actually programmed in it, I was told it was amazing.

So don't really take my advice on how great it is.
Topic archived. No new replies allowed.
Pages: 12