Hacker News new | ask | show | jobs
by superkuh 1326 days ago
>That Python environment isn’t for you.

This is a relatively new and dangerous way of thinking about operating systems. Due to the massive futureshock of libs rapidly changing under-foot people have had to switch to containerization as a mitigation. And now people have been containerizing so long they are starting to believe it is the proper way to do things.

It's not. Giving up the idea of an operating system with system libraries is very bad. The idea that you have to set up an entirely new lib environment to run every single script is absurd and it has dire consequences for software longevity and portability. With no more OS system as a base an OS is fractured into literally innumerable possibilities. Gone is the idea of a distro being the same for everyone using it. Gone is the ability to just install things. And we're left with a pile of containers that make debugging things when they go wrong even harder.

Nix is taking this concept to the extreme and absurd, but using pyenv for every script is almost as bad. pyenv is not version management approach to Python. It's a bandaid that doesn't address the actual issue.

2 comments

> This is a relatively new and dangerous way of thinking about operating systems.

One could as well say: this is a response to faster-than-ever evolving platforms.

> Giving up the idea of an operating system with system libraries is very bad.

Good point. I don’t like the situation either.

I’m not sure there’s a good remedy. For example, how are system package maintainers supposed to know that your personal script is now ready to migrate, so they can finally bump system Python?

> using pyenv for every script is almost as bad. pyenv is not version management approach to Python. It's a bandaid that doesn't address the actual issue.

Not sure if I’m understanding you correctly here. You’re saying that using pyenv for every script is bad. Are you against venvs, too? Because you could apply a similar argument to those.

This x100.

If your project requires dozens of installed libraries to use even it's base features, that tells me a lot about you and your project.

Mainly, it tells me you haven't thought about stability and the future of your application.

That’s a false dichotomy.

Firstly, this is about the core platform, not third-party libraries.

Secondly, I absolutely do keep all my projects in lock-step with the latest stable platform version. My point is that I do that deliberately and in a controlled way, decoupled from my system package manager’s decisions.

I certainly don’t appreciate waking up to dozens of unexpected compile errors and warnings due to some random system Python version bump.