FYI I don't think Python is really suitable for use with a production environment. After you want to start installing other people's modules, you'll encounter nightmares without any good solutions, and someone will eventually be extremely unhappy that you decided to use Python (probably within 5-10 years, if not much sooner): https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
In general, Python seems to be much too closely coupled to the Shell Command Language (which you should also try to use as little as possible): it seems like a lot depends on the environment, so trying to use Python after interacting with a PATH variable or changing the working directory might unexpectedly produce different results. A clear example of this is the idea of "virtual environments", as using one essentially requires that using Python is managed using the Shell Command Language (see what I expect is the source code for the "activate" and "deactivate" utilities also). "Virtual environments" seem to be extensively used by at least Pipenv. Also, the people managing Python seem much more concerned about maintaining interoperability with C than with making packaging less terrible (this is understandable, but other languages also interact with C while having better packaging systems).
I'll say that using Python is probably better than using C or C++ (especially since it seems that there are many more published best practices regarding package management for Python than for C), but it's probably better to choose a different memory-safe programming language if you have a choice at all.
FYI I don't think Python is really suitable for use with a production environment. After you want to start installing other people's modules, you'll encounter nightmares without any good solutions, and someone will eventually be extremely unhappy that you decided to use Python (probably within 5-10 years, if not much sooner): https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
In general, Python seems to be much too closely coupled to the Shell Command Language (which you should also try to use as little as possible): it seems like a lot depends on the environment, so trying to use Python after interacting with a
PATH
variable or changing the working directory might unexpectedly produce different results. A clear example of this is the idea of "virtual environments", as using one essentially requires that using Python is managed using the Shell Command Language (see what I expect is the source code for the "activate" and "deactivate" utilities also). "Virtual environments" seem to be extensively used by at least Pipenv. Also, the people managing Python seem much more concerned about maintaining interoperability with C than with making packaging less terrible (this is understandable, but other languages also interact with C while having better packaging systems).I personally prefer to use The Go Programming Language for more things recently, since packages are very easy to publish and programs are much easier to use with minimal preparation, and I've had a much easier time with refactoring and testing, and the huge speed difference is helpful too. Rust also seems to have a quite robust packaging system, but it seems that there are fewer features provided with main utilities (like measuring code coverage). I recall that
npm
has been relatively easy to use, but nowadays I'd avoid using JavaScript unless I absolutely have to (in the same way I avoid Python or the Shell Command Language).Regardless of whether you're interested in Go or Python or some other programming language, I find that it's easier to keep up with best practices for software engineering by checking documentation for linting tools and fixer programs referenced by ALE: https://github.com/dense-analysis/ale/blob/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/autoload/ale/fix/registry.vim https://github.com/dense-analysis/ale/tree/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/autoload/ale/fixers https://github.com/dense-analysis/ale/tree/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/ale_linters
These are some other sources that I found to be relevant to Python:
I'll say that using Python is probably better than using C or C++ (especially since it seems that there are many more published best practices regarding package management for Python than for C), but it's probably better to choose a different memory-safe programming language if you have a choice at all.