views:

3831

answers:

13

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.

+1  A: 

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
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
search for [d] in the search box to get tag based searching.
Gregg Lind
+1  A: 

@vextasy: Indeed, although it has had support for functional gems like closures and delegates for quite a while now, it seems to be shifting towards a Ruby-like paradigm. Which is great from my point of view. However, the lack of large scale users is somewhat strange, which is why I posted this question. The community is very much alive, and the people I've talked to have been very helpful in the past.

wvdschel
+16  A: 

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
+11  A: 

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 porgramming language it is possible to be used in realtime programms (IRQ handlers in a linux realtime 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.

+11  A: 

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 sript languages, then D is a good choice.

+7  A: 

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
A categorically similar project of mine, also in Dhttp://www.dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS
+28  A: 

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.

dsimcha
+3  A: 

Not myself, but 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.

Brian Palmer
+5  A: 

I am, sort of.

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.

BCS
+13  A: 

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.

larsivi
+2  A: 

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
+2  A: 

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

Dave Cheney