141

Is anyone out there using D for real world applications? If so, what are you using it for? I can't seem to find anything big on the web written in D.

Despite the lack of known big users, D seems like a very promissing language to me, and according to TIOBE, it's fairly popular.

Braiam
  • 1
  • 11
  • 47
  • 78
wvdschel
  • 11,800
  • 14
  • 41
  • 45
  • 12
    Recently announced in the [dlang forums](http://forum.dlang.org/thread/l37h5s$2gd8$1@digitalmars.com), Facebook is now using D in production. – sghill Oct 11 '13 at 13:27
  • There is nothing big because D itself is pretty poor for building large complex applications. It looks great on the surface but once you try to do anything commercial all the cracks start showing and there is very little desire by the fan boys to create proper structured software for the commercial audience(I'm sure money has a lot to do with it but so does leadership and organization). It's one thing to write a command line utility or a 5k line algorithm but entirely different to create a very complex business app that involves multiple areas such as gui, audio, etc. – Stretto Sep 13 '17 at 08:33
  • Sure you can hack something together but that is not commercial. A business is not going to invest their time/money in something that is so flaky. There is no proper IDE and every one I've used has just about made me want to bash something in. It's about 10 times slower to properly debug apps because error messages are terrible, the debugger doesn't either work or works against you, the modern features we expect are non-existent or poor, and the library is fubar'ed because have it it has no logical structure(things are moved "arbitrarily", weird naming schemes like "chomp" and "detabber", etc – Stretto Sep 13 '17 at 08:36
  • I guess it's the yin/yang. Certain things in D are amazing and nothing comes close(yet)... but on the other side the thing's it fails at are pretty strong too. One only finds those things out when they actually put the time to write real apps rather than do trivial or algorithmic stuff. Until the D organization gets it shit together(how long will it take them? 10, 20 years?) real businesses are not going to invest in it. Time is money and no business wants to spend 10 times long to debug an app because the IDE is not up to snuff. – Stretto Sep 13 '17 at 08:39
  • @Stretto what do you mean? https://dlang.org/orgs-using-d.html – Bauss Nov 13 '17 at 19:19
  • 2
    Also @Stretto your lack of knowledge doesn't mean the language is bad. I have never encountered issues setting up work environments in D and I use it for commercial work. – Bauss Nov 13 '17 at 19:20

20 Answers20

90

I do bioinformatics work in D. For me, the key thing about D is that it takes a very level-headed approach to tradeoffs and recognizes the principle of diminishing returns.

Unlike C++, which adheres rigorously to the zero-overhead principle, D allows features that may have a small performance/space cost if they make the language a lot more usable. These include garbage collection, a monitor object for each class, runtime type info, etc.

Unlike Ruby, Python, PHP, etc, D tries to be almost as fast as C, even if it is less dynamic and slightly more difficult to program in than scripting languages.
The result is a language that is optimal when both development time and execution time matter about equally, which in my field is most of the time.

Similarly, D takes a very level-headed approach to safety vs. flexibility. It assumes that programmers basically know what they're doing, but do make mistakes.

Unlike C and C++, it assumes that you don't want to use pointers, unsafe casts, manual memory management, etc, everywhere in your code, because they're error prone, and assumes that you don't want to sift through multi-page template error messages when you screw up just to use resizable arrays.

Unlike Java and other bondage-and-discipline languages, D assumes that sometimes pointers, unsafe casts, manual memory management, etc. are a necessary evil, and assumes you're smart enough to handle real templates, operator overloading, etc. without writing obfuscated code. It also assumes that you may screw up and access an array out of bounds, but that the programmer knows best what tradeoff should be made between safety and speed in any given situation. Therefore, whether arrays are bounds checked is simply determined by a compiler switch.

nbro
  • 15,395
  • 32
  • 113
  • 196
dsimcha
  • 67,514
  • 53
  • 213
  • 334
  • 2
    What is a monitor object? I can't seem to find results for this. – Samaursa Feb 25 '14 at 15:50
  • 2
    I love the D language a lot compared to C++. Faster compile times, the ability to use less code, no header files, etc. The problem, however, is that it lacks anyone doing serious GUI work. Sure, I can use GtkD, but try and draw a series of fancy charts. I see promising work in integrating with Chromium for a GUI, but that project is largely undocumented and needs more players in that space. I'm hoping that changes, but that's what I see here in Sept 2015. – Volomike Sep 23 '15 at 18:46
  • Object monitor is bullsh**. It locks whole method, it's really really wastefull ... – dev1223 Nov 29 '15 at 21:41
  • @Volomike I also have been looking at D lately and similarly it has been tough to make graphical interfaces tools with it. I currently don't have any defacto solutions for making elegant GUI tools with D and that is something I may start tackling soon. – dimiguel Mar 14 '16 at 20:31
78

I'm using D for my research work in the area of computer graphics. I and others have had papers published in our fields based on work done using D. I think it's definitely ready for use on small to medium sized research projects where performance matters. It's a nice fit for research work because often you're starting from scratch anyway, so you don't have much legacy code to worry about integrating with.

Another popular area for use seems to be web services. Hopefully someone else can comment who's in this space, but there too I think the idea is that performance often really matters so you want a compiled-to-the-metal language. Services are often fairly small, self-contained processes, so interop with large amounts of legacy C++ code is not really necessary or useful. Thus D can get its foot in the door.

I think D will continue to gain grass-roots followers in this way -- on smaller projects that for whatever reason can afford to ditch the C++ legacy in order to gain a programming language that's much more enjoyable to use, and perhaps more productive too.

But until there's a huge number of grass-roots users there won't be much in the way of big corporate users I suspect.

Baxissimo
  • 2,629
  • 2
  • 25
  • 23
  • 11
    I develop client/server applications purely in D with some bindings to C libraries, but only for the GUI part of the client for one of the more popular services in the Netherlands. Though I had to convince my boss, but he seems to have no regrets. ;-) -- D especially shines here cause the standard library provides an implementation of BSD sockets, even on Windows. Write-once, deploy everywhere, very nice. – Jesse Brands May 29 '11 at 15:02
  • @JesseBrands Do you use phobos or tango? – qed Sep 14 '14 at 11:44
33

I know of one smallish company that have sent a mail server product to the market. They had at least 2 people working full time on the project.

Also, a major player in the IT business have several employees using D in larger internal projects.

Further I know of one company seeking venture funding, several (at least 4) employees in smaller companies using D either part or full time, and at least a couple (including me) actively seeking opportunities in the consulting market.

I've probably left out a few that I should have known about, and probably some I haven't heard about, but that still exists, as the above is more or less those I know myself via the community.

A small percentage of my current income comes from D.

nbro
  • 15,395
  • 32
  • 113
  • 196
larsivi
  • 1,485
  • 10
  • 16
  • Could you please nominate the organizations? It would also be nice to know more about these projects. – nbro Jan 12 '17 at 02:03
30

I use D for web development and it proved quite a lot more productive compared to C/C++. There are a lot of frameworks based on ruby/php/python, of course. But when you want to develop something unique that also have to be as fast as C and nearly as easy as to program with as you do in many script languages, then D is a good choice.

menjaraz
  • 7,551
  • 4
  • 41
  • 81
27

I use D for a hardware in the loop (HIL) test environment. This is for software tests in the automotive area. D can be used here, because as a system programming language it is possible to be used in real-time programs (IRQ handlers in a linux real-time extension RTAI-LXRT).

With the ongoing port of SWT/JFace I plan to do more and work in D which I would have been done in Java before.

o3o
  • 1,094
  • 13
  • 23
22

Facebook announced that they are using it in production as of today.

DOK
  • 32,337
  • 7
  • 60
  • 92
  • 1
    Relevant discussion: http://www.reddit.com/r/programming/comments/1o7p2f/facebook_is_using_d_in_production_starting_today/ and https://news.ycombinator.com/item?id=6532322 – Animesh Oct 12 '13 at 17:27
21

I'm using D in research about compile time code translation. The advanced templating combined with tuples and mixins makes code translation much easier and allows for code translation to be done during compile time without requiring a separate tool.

There are some examples of physicists using D to enhance their programs with meta-programming in D.

video - Conference talk, could not find source site of physicist use.

bmeck
  • 426
  • 2
  • 4
  • 1
    A categorically similar project of mine, also in D http://www.dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d – BCS Sep 16 '08 at 18:52
18

Our whole (high-traffic) network infrastructure is based only on D1 and tango. We are a young startup company in Berlin: sociomantic.com

menjaraz
  • 7,551
  • 4
  • 41
  • 81
Marenz
  • 2,722
  • 3
  • 20
  • 19
15

My current work task is a system to translate C# to D. This is as part of a for profit project to develop a software system.

nbro
  • 15,395
  • 32
  • 113
  • 196
BCS
  • 75,627
  • 68
  • 187
  • 294
8

It seems that Remedy Games has a large D2 codebase for their games (cf. Using D Alongside a Game Engine by Manu Evans - DConf 2013).

They are a big company, knowing that a big company is using D is very good.

menjaraz
  • 7,551
  • 4
  • 41
  • 81
RenatoUtsch
  • 1,449
  • 1
  • 13
  • 20
8

A lot of the games released by ABA Games are written in D 1.x, though I imagine the console ports had to be rewritten in C++.

I've written quite a few game prototypes in D, but I'm not sure if that qualifies as 'real world' since I wrote them for my own benefit and have never released any of them.

nbro
  • 15,395
  • 32
  • 113
  • 196
Brian Palmer
  • 221
  • 2
  • 6
8

I wrote (and I am still maintaining and developing) a software for the conversion of tester protocols from various hardware testing stations to a standardized output format for traceability and stuff like that.

All together over 5k lines of code, written with D 1.x and the Phobos library.

D is so easy to learn, and disregarding some pitfalls (in the Phobos library) a real joy to program.

nbro
  • 15,395
  • 32
  • 113
  • 196
user1158983
  • 81
  • 1
  • 1
7

I use D2, the second standard of the version. I wrote real-time applications (3D engine, for instance).

The language gets more and more powerful each day. D is very pragmatic and all the embedded features, especially the metaprogramming paradigm, makes it far over C++, in my opinion. The syntax is clearer, you can use the strength of functional programming through functions such as filter or reduce, and one of the most important feature: you can use all the C libs.

Definitely my favourite language, and I’m pretty sure it will be a spread used language.

nbro
  • 15,395
  • 32
  • 113
  • 196
phaazon
  • 1,972
  • 15
  • 21
  • Is it possible to see the source code of something that you created using D? – nbro Jan 12 '17 at 02:21
  • It’s been a while since that comment! I’m coding in Rust and Haskell mostly now, but I have a few projects. I have some stuff on my github, but I don’t think it’s worth digging it. That comment is 4 years old! I should have a look at the current status of all of this… – phaazon Jan 13 '17 at 09:05
7

I used D for my research project on developing a global optimization algorithm. I applied it to the problem of training neural networks. It's up to you whether you want to call this "real world".

TomekSowi
  • 79
  • 1
7

I wrote a wrapper script that builds DGCC on OS X

http://github.com/davecheney/make-gdc-apple/tree/master

I'd love to hear from other DMD programmers out there

Community
  • 1
  • 1
Dave Cheney
  • 5,575
  • 2
  • 18
  • 24
5

I suppose we can read something into the lack of immediate answers to this question and that is that not many/any of the acive stackoverflow responders are using D. I was also a little surprised about the level of its ranking in the TIOBE listing that you link to.

Having said that, Walter Bright has been working on the language for quite a number of years now and I think he has quite a number of `followers' who remember what a good job he did with the Zortech C++ compiler back in the '90s. I also note that the language appears to be leaning towards the functional direction now.

vextasy
  • 865
  • 7
  • 12
  • 4
    Actually it's impossible to search for D on this web site right now. Searching for "d" or "d programming" says "no hits", and searching on the tags for "d" list a pageful of tags that contain "d" but no "d" by itself. So that might have something to do with it too. – Baxissimo Sep 17 '08 at 09:31
  • 21
    search for [d] in the search box to get tag based searching. – Gregg Lind Nov 03 '08 at 18:06
3

The D's official website enumerates the organizations that are currently using D.

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

The D wiki also provides a list of organizations, but it's outdated.

Just watch carefully DConf talks.

Almost all people there work for some company, and they use D at work.

nbro
  • 15,395
  • 32
  • 113
  • 196
DejanLekic
  • 18,787
  • 4
  • 46
  • 77
1

I am starting a project to rewrite some of our internal tools from Perl to D. I chose D because I'm pretty excited about the design philosophies of the language. I've been programming for a long time and used a lot of languages, from assemblers to high-level (mostly C) to scripting languages (mostly Perl), and D is the first language I've been enthused about learning in many years.

I decided to move to a compiled language for one main reason - security. Functionally, Perl works quite well for the toolset I work on, but it's insecure - anyone that can run a script can also read, copy and create their own modified version of the tool. (And they do.) I know there are circuitous methods to get around this problem (sort of), but to be honest I don't have enough hours in the day to manage all of that and still get my primary job done.

-1

I started a ray-traced renderer in D with ldmd2.

http://palaes.rudanium.org/SubSpace/render.php

Palaes
  • 1
  • 1