Suitability of Python for daemon processes
mikem.rtp at gmail.com
Wed Oct 28 21:08:03 UTC 2009
On Mon, Oct 26, 2009 at 12:41 AM, Dennis Gilmore <dennis at ausil.us> wrote:
> On Sunday 25 October 2009 06:26:49 pm Jeroen van Meeuwen wrote:
>> And koji.fedoraproject.org, no?
> koji is a mod_python app. it doesnt run as a daemon at all.
> but it it all python.
There are python daemons in the system though. The builders run kojid,
which is a daemon, and the process that triggers repo regeneration
(kojira) is a daemon. Of course, these are not public facing -- they
really only talk to the hub.
The daemon distinction might be wrong thing to fixate on here. There
is nothing in that distinction that should exclude python (or most any
language). I think the real factors of concern are: size, complexity,
speed, system load, robustness, and security.
It's entirely possible to create large and complex systems with
Python. It's expressiveness and interpreted nature are a big help
here. Robustness is probably more a factor of design and good coding
than the language itself. That being said, the relative ease of
programming in Python, coupled with its exception handling, likely
give it an advantage over C in this department (over the same
development time at least). That's my opinion; others may disagree
(and of course Python is not the only rapid development language with
good exception handling).
Security threats are everywhere. With Python at least you have to
worry much less about buffer overflows, but of course you can
introduce security flaws in any language.
Obviously, as an interpreted language, system load and speed are where
Python suffers. There are optimization tricks, but you'll never get
close to execution speed of C. You can rewrite crucial portions in C,
though I rarely see that actually done.
More information about the infrastructure