On Monday, 2 September 2013 at 02:38:35 UTC, bearophile wrote:
John Carter:

"How easy is it to convert both C++ programs and C++ programmers to D?"

Porting C code to D is not hard, it's mostly mechanical work, you just have to keep an eye on few things (like passing fixed-sized arrays to functions by reference, global floating point data not initialized to zero, etc).

I think that for a C++ programmer it's not too much hard to learn D. But converting C++ code to D could be very hard (and a slow work) if the code uses lot of small things that are specific of C++ and missing or different in D. If the C++ code is more plain, then it's probably not hard, despite the missing multiple inheritance and struct inheritance.

Converting CImg to D seems a multi-years work.

Bye,
bearophile

While I just had a brief look at CImg and am thus far from an
expert I wonder if developing a similar project in D would be
quite that bad.  There seems like a lot of the code isn't core
functionality for an image processing library.

The whole header file is 40+K lines of code.

The system seems to include its own cross-platform image/graphics
rendering system. There are 1100+ loc are just static arrays
storing fonts.

Furthermore, while it does seem to include a tonne of image
processing functions, I am sure a basic library could initially
omit many of these.
For example there is a math formula parser that accounts for a
huge chunk of the library.  Certainly something you would want to
have in the long run, but might be omitted initially.

Finally, the use of templates seems fairly straightforward - at
least by my brief perusal, and the code is more C like that C++
like.  It doesn't appear to have a complex object hierarchy at
all.


So, I think this might be doable if:

1. You skipped the image display system (that shouldn't be part
of a library in my opinion anyway).

2. You identified what your priority functionality would be and
(initially at least) dropped the others [eg. the math formula
parser].

Craig

Reply via email to