Python Is Eating the World
Python has a lot of problems that really slow down development, but they are all fixable.<p>The biggest issue, in my opinion, is in dependency management. Python has a horrible dependency management system, from top-to-bottom.<p>Why do I need to make a &quot;virtual environment&quot; to have separate dependencies, and then source it my shell?<p>Why do I need to manually add version numbers to a file?<p>Why isn&#x27;t there any builtin way to automatically define a lock file (currently, most Python projects just don&#x27;t even specify indirect dependency versions, many Python developers probably don&#x27;t even realize this is an issue!!!!!)?<p>Why can&#x27;t I parallelize dependency installation?<p>Why isn&#x27;t there a builtin way to create a redistributable executable with all my dependencies?<p>Why do I need to have fresh copies of my dependencies, even if they are the same versions, in each virtual environment?<p>There is so much chaos, I&#x27;ve seen very few projects that actually have reproducible builds. Most people just cross their fingers and hope dependencies don&#x27;t change, and they just &quot;deal with&quot; the horrible kludge that is a virtual environment.<p>We <i>need</i> official support for a modern package management system, from the Python org itself. Third party solutions don&#x27;t cut it, because they just end up being incompatible with each other.<p>Example: if the Python interpreter knew just a little bit about dependencies, it could pull in the correct version from a global cache - no need to reinstall the same module over and over again, just use the shared copy. Imagine how many CPU cycles would be saved. No more need for special wrapper tools like &quot;tox&quot;.