John Carter:

We work in the embedded linux real time area,

I think you could use D for embedded area, but I think of D more like a low level application language.


1) Which D compiler should we start with?

dmd is more updated and it's the reference one, it compiles fast, but it produces less optimized binaries. All D compilers have some advantages and disadvantages. Also take in account the ldc2 compiler.


(We would be cross compiling to sparc or arm)

I don't know about Sparc, but arm is being worked on gdc, but I don't expect the libraries to work well.


2) The traditional argument against garbage collected languages in real time environments is that they sporadically lock up while collecting resulting in missed real time deadlines. Certainly the "state of the art" in GC has moved beyond this, and also there are workarounds for the problem. Is it possible to do real time programming in D?

It's like real time programming in Java or C# (or in C++ game engines): you have to not allocate in the real-time parts of the code. Heap allocations in geeral, and GC allocations in particular are not yet designed for realtime work.


3) A good starter project for me would be to take a well known cpu-intensive C++ template rich project and convert it to D and then present that side-by-side to my colleagues.

To do that you have to learn D first, learn the D idioms, and then write the translation. It will take some time. Do you already have an idea for what code to translate?


I like playing around with CImg, http://cimg.sourceforge.net/

I have used CImg in past, and it's a cute huge header. I like it for its lack of dependences. Importing a header is (or was) enough.


CImg it is one huge template with chunks of macro magic to do image processing.

I didn't know it uses significant macros. Could you show some of such code pieces?


Before I start, has anyone converted CImg to DImg yet?

I think no one has converted CImg to D. There is a graphics project for D, perhaps named simplegraphics, that contains about 0.01% of CImg.

I don't know but perhaps the conversion CImg to D could take a year or two of work for a person that knows D :-)

Bye,
bearophile

Reply via email to