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.

But why do they keep inventing new technologies and compilation methods for Python when it's already soooo good? Every year I hear "now Python is fast", "now you can write fast and efficient code in Python", and more often than not it is some C-based stuff, some additional layer of complexity.

Try to integrate Python into third party software or some OS framework, and you'll begin to hate it. The question of which version of Python to use is enough to put you off. Some programs are delivered with their own Python version to avoid problems. All this is messy, not clean. I've seen it, and I've done it. I prefer D that gives me native efficiency and can interface with C. No Cython magic needed.

Reply via email to