A few notes on choosing between Go and D for a quick project

stewarth via Digitalmars-d digitalmars-d at puremagic.com
Sat Mar 14 17:41:25 PDT 2015


On Saturday, 14 March 2015 at 18:33:24 UTC, Russel Winder wrote:
> On Sat, 2015-03-14 at 18:11 +0000, Chris via Digitalmars-d 
> wrote:
> […]
>> 
>> This may be part of it. But I know that open source free 
>> software in this sector is also written in C/C++ or Java. I 
>> haven't seen a single system that was acceptable in Python. 
>> Sooner or later they all go back to C.
>
> Java will have the same problem as Python regarding shipping 
> source to
> anyone who knowns how to decompile Java.
>
>> I just don't see the point in using Python only to rewrite 
>> performance critical parts in C/C++ or D. Why not start with D 
>> or C from scratch. Also, I know that this Cython and C module 
>> mixing becomes a mess very quickly which makes development 
>> tricky and deployment a pain in the a**. I believe that as 
>> soon as you have to mix languages like that, there is 
>> something wrong, and you begin to rely heavily on an 
>> infrastructure that helps you to keep track of the whole mess.
>
> I would reject C as a language of implementation for everything 
> except
> small operating systems – which includes many embedded things, 
> most
> being effectively operating systems. I can see people using 
> C++, but it
> would be better if they used D, but I doubt this will happen :-(
>
> Mixing Python, Cython, and C does require standard compiled 
> project
> management, but is no worse than pure C, C++ or D systems. I 
> would
> suggest that the "messiness" is due to the Python people not 
> doing the
> Cython and C properly, and the C people objecting to having 
> Python
> involved. It usually comes down to the people and not the 
> technology.

+1

Using Python with C++ for small critical sections reduces our 
code development and maintenance costs significantly. The C++ 
constitutes about 3% of our code base. For the rest Python does 
the job very well.

There is no mess, the code base and build system are nicely 
segregated into performance critical code and the rest.

My hope is that D can replace the Python/C++ mix with one 
language that is both cheap for development/maintenance and 
achieve the C++ performance when necessary.

But even with a single language the performance critical code 
would still be kept separate. It can often get messy and it's 
important that only those with specific algorithm and low-level 
expertise make changes in it.

Cheers,
Stew


More information about the Digitalmars-d mailing list