Live data from Hacker News

Escaping from Anaconda's Stranglehold on macOS

paulromer.net

151–160 of 286 posts

Re: Escaping from Anaconda's Stranglehold on macOS

#151

Earlier quoted context omitted.

In finding it very difficult to see what exactly is the problem with teaching a minimum of computer and operating system fundamentals to people that have to learn programming.

Not every person wants to become a software engineer, anymore than every person wants to learn to become a plumber or car mechanic. The vast majority, and by vast majority I mean more than 95% of students who are taught to code are training to be scientists, mathematicians, engineers, economists, accountants, or some such. They need to run simulations to understand their field. Any pain in the way of that is a failur…

If you're going to be spending a substantial part of your waking life working on a tool, spending a few hours to get the basics right is not an unreasonable ask. And as it turns out, all non-trivial programming languages that have some sort of packaging system or module system have some version of the problems involved.

You don't see people complaining that musical instruments are unreasonably complex when that complexity usually gets solved after a couple months of training, or when someone who wants to basic woodworking has to have at least a passing knowledge of the different types of hardwoods, MDFs, and essential joinery techniques.

Hate to say, but it definitely sounds like skills issues.

Re: Escaping from Anaconda's Stranglehold on macOS

#152
post #13

Earlier quoted context omitted.

TFA is for students who are (presumably) very early in their programming careers. Python is often billed as a good language for beginners because it does not require the author to keep track of curly braces or line-ending semicolons, and it lets the author focus less on syntax and more on reasoning with code. Wouldn't it be nice if the beginner could focus on learning Python instead of having to learn stupid minutiae…

At some point they'll have to learn about the file system, shell, network. Otherwise there is little point in learning Python. Octave, Matlab, Mathematica, Julia, R are superior for small programs with just a couple of functions. Escaping the stranglehold of Python would be the next project!

I think it's possible that learning programming could be the gateway to learning those other things, otherwise they're of little use. Many people don't even need to know the filesystem. They store their stuff in Google Docs or somewhere like that. If they use mostly canned software (such as EPIC or SAP) for their jobs, then their data are stored in some magical special unknown place.

I learned programming (in BASIC, in 1981) before I heard about the filesystem or shell. Making more complex programs do interesting work was my reason for learning more about the innards of computer systems.

Re: Escaping from Anaconda's Stranglehold on macOS

#153

Earlier quoted context omitted.

In finding it very difficult to see what exactly is the problem with teaching a minimum of computer and operating system fundamentals to people that have to learn programming.

I'd argue it's a lot more than "minimum". You need them to be comfortable with the host system, and also manage the running container, which will have a different OS most of the time, and the virtualization mechanism (docker here). Simple things like having a student access another student's web server becomes overly complicated, as you're dealing with 4 systems talking to/through each other.

But the fundamental fact is that "accessing someone else's web server" is not that trivial of an affair and has never been when you get down and dirty into the details of networking.

Re: Escaping from Anaconda's Stranglehold on macOS

#154

> 10. What Changes When You Are Free > You will not be forced to work inside something known as a “virtual environment.” Oof, this terrible advice cancels out an otherwise reasonable post. Beginners who don't know what they're doing are the last people who should be `pip install -r requirements.txt`-ing into the system Python the way this article is recommending. That's not only going to make working on multiple proj…

I teach using python. You should try explaining virtual environments to students, most of them with no programming experience, or any real notion of the state of a computer system. I do, because we recommend students use them. Every class consists of endless debugging of student systems. After that you might understand the OP's viewpoint.

> You should try explaining virtual environments to students

can you? Because I can't.

e.g. "What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc?" ( https://stackoverflow.com/questions/41573587/what-is-the-dif... )

what is the difference between conda and anaconda?

etc etc

Re: Escaping from Anaconda's Stranglehold on macOS

#155
I appreciate all the comments. I agree with most, even when they disagree with me or each other. I especially agree with the questions several people raise: What it is that we should teach? In which order?

I think there is a consensus about what a student should end up knowing. Even if they are not going to become developers, they should be able to edit text files; they should be able to run commands from the terminal; they should understand PATH. They should create a virtual environment every time they start a new project.

Where we might disagree is how to get them to the point where they know all those things.

I offered to write this post for a colleague who is now facing the issue I faced when I taught last spring. My only goal was to help the students who can't get started running Python from python.org. When I say that they don't know what an editor is or how to use the command line, I just taking those as the facts on the ground. What I didn't say (at least not very clearly) is that they need to learn these other things. I did hint in the end that some of these probably need to come before learning to use a virtual environment. I know this is controversial.

Because the first post was narrowly focused, I wrote a subsequent blog post called "Environment as Code" that is more specific about the goal and offers a specific sequence to follow to get there.

If you have any reactions, I'd be interested to hear them. In a deep sense, I think that the issue here is how to free students from the GUI. If we can do this, it will change how they interact with the computer for the rest of their lives. If there is a better way, I'll be happy to support it.

Re: Escaping from Anaconda's Stranglehold on macOS

#156
post #154

Earlier quoted context omitted.

I teach using python. You should try explaining virtual environments to students, most of them with no programming experience, or any real notion of the state of a computer system. I do, because we recommend students use them. Every class consists of endless debugging of student systems. After that you might understand the OP's viewpoint.

> You should try explaining virtual environments to students can you? Because I can't. e.g. "What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc?" ( https://stackoverflow.com/questions/41573587/what-is-the-dif... ) what is the difference between conda and anaconda? etc etc

That's exactly GP's point.

Re: Escaping from Anaconda's Stranglehold on macOS

#157

This seems very "Anaconda's a mess, so here's this one weird trick" then suggests a foot-gun. Arguably step one is: https://docs.anaconda.com/anaconda/install/uninstall/ Or for miniconda: https://gist.github.com/pulkitgangwar/421a1af800c5a9c6d4a77b... Then, adopt `uv` instead, for all your Pythons: https://docs.astral.sh/uv/ The 2024-08-24 update finally does "all the things" — unified Python packaging: https://astra…

> Then, adopt `uv` instead, for all your Pythons: https://docs.astral.sh/uv/

uv looks great, but its coming from a VC-backed company with no apparent way to monetise. Discussion here:

https://news.ycombinator.com/item?id=35617198

Re: Escaping from Anaconda's Stranglehold on macOS

#158

This seems very "Anaconda's a mess, so here's this one weird trick" then suggests a foot-gun. Arguably step one is: https://docs.anaconda.com/anaconda/install/uninstall/ Or for miniconda: https://gist.github.com/pulkitgangwar/421a1af800c5a9c6d4a77b... Then, adopt `uv` instead, for all your Pythons: https://docs.astral.sh/uv/ The 2024-08-24 update finally does "all the things" — unified Python packaging: https://astra…

> Then, adopt `uv` instead, for all your Pythons: https://docs.astral.sh/uv/ uv looks great, but its coming from a VC-backed company with no apparent way to monetise. Discussion here: https://news.ycombinator.com/item?id=35617198

It's licensed MIT and Apache 2.0. The community can fork it if it ever becomes an issue.

Re: Escaping from Anaconda's Stranglehold on macOS

#159

Earlier quoted context omitted.

I'd argue it's a lot more than "minimum". You need them to be comfortable with the host system, and also manage the running container, which will have a different OS most of the time, and the virtualization mechanism (docker here). Simple things like having a student access another student's web server becomes overly complicated, as you're dealing with 4 systems talking to/through each other.

But the fundamental fact is that "accessing someone else's web server" is not that trivial of an affair and has never been when you get down and dirty into the details of networking.

Giving access to a debug server on a local network is a single command line when running natively to the host.

Sure making them understand everything is a journey, but just spawning the server is fairly quick and painless.

Re: Escaping from Anaconda's Stranglehold on macOS

#160

This seems very "Anaconda's a mess, so here's this one weird trick" then suggests a foot-gun. Arguably step one is: https://docs.anaconda.com/anaconda/install/uninstall/ Or for miniconda: https://gist.github.com/pulkitgangwar/421a1af800c5a9c6d4a77b... Then, adopt `uv` instead, for all your Pythons: https://docs.astral.sh/uv/ The 2024-08-24 update finally does "all the things" — unified Python packaging: https://astra…

I think your suggestions are for people who know more the students I meet in the classroom.
Post reply on HN