4 ms·
We use Nix which is much nicer than pyenv/virtual environment, but it's still a pain compared to Go. This is mostly due to Python's runtime model, and maybe als
by weberc2 9y ago
We use Nix which is much nicer than pyenv/virtual environment, but it's still a pain compared to Go. This is mostly due to Python's runtime model, and maybe also the tendency for Python applications to have very tall, broad dependency graphs.
Working with nix is also not very easy; docker might fare better here, but probably just a lateral move. In any case, Go outclasses Python on deployments. Also, my company is looking into compiling Python as a means of code obfuscation; Go compiles by default, which (modulo stripping) is probably enough obfuscation for our purposes.
- protomok 9y agoI've been evaluating Cython for both code obfuscation and for using C based extensions to improve performance. Cython is pretty nice, but shipping binary only Python extensions can be such a pain, especially dealing with 2-byte vs 4-byte unicode representation issues. I need to try Go one of these days !
- ptx 9y ago> shipping binary only Python extensions can be such a pain, especially dealing with 2-byte vs 4-byte unicode representation issues The issue with different Unicode builds was fixed 5 years ago, in Python 3.3: https://docs.python.org/3/whatsnew/3.3.html#pep-393-flexible-string-representation https://docs.python.org/3/whatsnew/3.3.html#pep-393-flexible...
- protomok 9y agoYes it's nice to see this is now fixed. In my case I need to support Python 2.7 though, and for Python 2.7 the only workaround I know of is shipping two binaries (2 byte and 4 byte encoding) then loading the correct module at runtime.
- mixmastamyk 9y ago> especially dealing with 2-byte vs 4-byte unicode Wasn’t that solved years ago?