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.