Andrei's list of barriers to D adoption
Chris via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jun 10 02:19:57 PDT 2016
On Thursday, 9 June 2016 at 16:44:23 UTC, Yura wrote:
> Hello,
>
> I have to stress I am beginner in programming, mainly
> interested in number crunching in academia (at least so far). I
> started to write a small project in D, but had to switch to C
> for few reasons:
>
> 1) Importance for my CV. I know Python, if I add also C - it
> sounds, and could be useful since the C language is, apart from
> the other reasons, is popular and could help me wit the future
> job, both in academia and industry, since there are many C/C++
> projects.
I wouldn't worry too much about the CV. Maybe in a year or two
companies will demand you know Ruby or Javascript :) Once you
know who to program it's not so hard to pick up other languages.
The basic concepts of handling / mapping data are always the same
(hash tables, arrays ...)
> 2) The libraries - in the scientific world you can find
> practically everything which has already been coded in C, =>
> many C libraries. To link it to be used within D code requires
> some work/efforts, and since I am not that confident in my IT
> skills, I decided that C code calling C libraries is much safer.
It's a piece of cake most of the time, it's really easy.[1] When
I first tried it, I couldn't believe that it was _that_ simple. I
use some C code too in one of my projects and it's easy to either
call individual C functions or, if needs be, you can turn a C
header file into a D interface file with only a few changes (they
will almost look identical).
There is absolutely no reason not to use D because of existing C
libraries. The seamless interfacing to C is one of D's major
advantages. In this way you can write elegant D code and still
take advantage of the plethora of C libraries that are available.
Here are examples of porting C libraries that have D interfaces:
https://github.com/D-Programming-Deimos?page=1
If you need help, you can always ask on the forum. Nobody will
bite you :-)
There are even D frameworks that enable you to interact with
Python [2] and Lua. I'd say give it a shot.
[1] http://dlang.org/spec/interfaceToC.html
[2] https://github.com/ariovistus/pyd
Other links:
http://dlang.org/ctod.html
http://dlang.org/articles.html
> 3) For C - a lot of tutorials, everything has been explained at
> stack overflow many times, huge community of people. E.g. you
> want to use OpenMP, Open MPI - everything is there, explained
> many times, etc.
>
> 4) The C language is well tested and rock solid stable.
> However, if you encounter a potential bug in D, I am not sure
> how long would it take to fix.
>
> 5) Garbage collector - it will slow my number crunching down.
You should test it first, gut feeling is not a proof. If it
really does slow down your code, write GC free code, as ketmar
suggested. You can always ask on the .learn forum.
> Please, do not take it as criticism, I like D language, I tried
> it before C and I find it much much easier, and user friendly.
> I feel it is more similar to Python. On the other hand C++ is
> too complex for me, and D would be the perfect option for the
> scientific community, if the above points would be fixed
> somehow..
>
> Best luck with your work!
More information about the Digitalmars-d
mailing list