I usually don't comment on these posts, but I felt the need to in this one. A couple of things stood out:

- Python 2.4? Really? In 2014?

- Yes, writing compatible code with a 10+ year old release of Python is going to be hard. Who uses 2.4 still? You have to use the lowest common denominator, I mean I don't think Python 2.4 even supports context managers!

- Yes, in 2014 you should be supporting Python 3, or at least have it on your roadmap.

- The ethernet address (MAC?) via uuid.get_node(). Or for something a bit more advanced you can use netifaces[1] (or even better psutil.net_if_addrs[3]). One of Pythons core strengths is the number and variety of the packages available. Took 2 seconds of googling to find a cross platform solution.

- Calling C from Python is really really simple. Use the built in ctypes library, or something better like cffi[2]

I'm obviously firmly in the Python camp so perhaps I'm a bit biased, but I don't see any clearcut reason to switch other than "the current code is not optimal, let's re-write it in X", where X could be anything. I would actually say Go would be a much better fit than Lua in this situation. I guess the memory reduction/CPU usage is a point, but really your program seems to be network orientated. What's wrong with asyncio? How is replacing everything with a C library actually better?

1. https://pypi.python.org/pypi/netifaces

2. https://cffi.readthedocs.org/en/latest/overview.html#simple-...

3. https://pythonhosted.org/psutil/#psutil.net_if_addrs

The article did mention a desire to use netifaces, but I didn't quite understand why the author thought they couldn't.

uuid.get_node(): ...and which iface's address will I get if I'm on a multi-interface machine (not to mention that it was added in 2.5 version of Python)?

netifaces: ...would require me to build a C extension which would mean going down the rabbit hole of building and bundling python and this library.

As opposed to shipping LUA with C extensions? Also, there are things like shedskin: https://github.com/shedskin/shedskin - you don't even have to ship python. Or micropython: https://github.com/micropython/micropython with the code embedded. Then you can easily either shell out or include any C extensions you want.