
1. Performance delta, but that’s likely anywhere near the issue with python than it is with earlier scripting runtimes. While it’s been a while since I’ve done a side-by-side comparison, I’d argue that once code is compiled, cpython runtime performance is far more akin to Java than perl or JS. Still not as performant as C or Go runtimes, though; bytecode is still bytecode.
Interesting, from a research perspective. I didn't realize that the data rates required by DNS resolution at some scale level would be higher than what interpreted Python code could achieve. On Sun, Aug 10, 2025 at 4:42 PM Chris Woodfield <chris@semihuman.com> wrote:
On Aug 10, 2025, at 03:40, Etienne-Victor Depasquale via NANOG < nanog@lists.nanog.org> wrote:
Python is, well, Python. It makes as much sense to me to write a DNS server in Perl or Javascript, which is to say: not much.
I don't follow. What's the objection?
I’d consider two off the top of my head -
1. Performance delta, but that’s likely anywhere near the issue with python than it is with earlier scripting runtimes. While it’s been a while since I’ve done a side-by-side comparison, I’d argue that once code is compiled, cpython runtime performance is far more akin to Java than perl or JS. Still not as performant as C or Go runtimes, though; bytecode is still bytecode.
2. Python-based DNS servers aren’t nearly as ubiquitous as others, and as such lack the kind of battle testing that, say, BIND, PowerDNS, or commercial servers have been through. This makes sense from a security perspective, but the solution is to make bugs shallower, not to avoid entirely. Understandably, no one wants to go first.
-Chris
-- Etienne-Victor Depasquale