From Python to Lua: Why We Switched
I usually don't comment on these posts, but I felt the need to in this one. A couple of things stood out:<p>- Python 2.4? Really? In 2014?<p>- 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!<p>- Yes, in 2014 you should be supporting Python 3, or at least have it on your roadmap.<p>- 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.<p>- Calling C from Python is really really simple. Use the built in ctypes library, or something better like cffi[2]<p>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 <i>actually</i> better?<p>1. <a href="https://pypi.python.org/pypi/netifaces" rel="nofollow">https://pypi.python.org/pypi/netifaces</a><p>2. <a href="https://cffi.readthedocs.org/en/latest/overview.html#simple-example-abi-level-in-line" rel="nofollow">https://cffi.readthedocs.org/en/latest/overview.html#simple-...</a><p>3. <a href="https://pythonhosted.org/psutil/#psutil.net_if_addrs" rel="nofollow">https://pythonhosted.org/psutil/#psutil.net_if_addrs</a>