On Sun, 25 Oct 2009, Ben Boeckel wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hi,
I am working on a project designed to mirror large, changing archives of
software in a manner that ensures data integrity and atomic updates using a
peer-to-peer protocol.
My team and I would like to design this software such that it provides a
suitable replacement for rsync. As Fedora is among the leading
distributions, I would like to solicit your opinions on the implementation.
We have designed much of the architecture, but have not implemented anything
yet. One issue we wish to address currently is that of interpreted vs.
compiled languages.
My team and I would like to know whether the community would be accepting of
such a project (which includes a daemon) if it were written in Python rather
than C or C++. If so, it would greatly simplify the implementation and
allow it to be more robust. Python's built-in libraries and facilities
provide much of the path and network manipulation that the daemon requires.
Using the Python standard libraries allows us to rely upon a well-tested
base and focus on higher-level issues.
What are your opinions, as system administrators, on using Python for
long-running daemon processes when the developers are explicitly mindful of
memory considerations?
I've generally had better luck with C/C++ based daemons from a systems
admin point of view. But we've used plenty of python based daemons that
worked just fine. I think the problem is the lower barrier to using
python means it's easier for less experienced developers to create python
daemons.
Really though, if it's done right, python daemons can be just as good as C
daemons. And extending Python is very easy as you mentioned with using
pythons built in libraries. If you're concerned about performance though
it shouldn't take much to do the basics of what you want and compare C to
python. Sometimes they're identical, sometimes C wins but I don't think
I've seen python win yet (with performance). But it is much easier to
work with python :)
-Mike