Live data from Hacker News

Escaping from Anaconda's Stranglehold on macOS

paulromer.net

111–120 of 286 posts

Re: Escaping from Anaconda's Stranglehold on macOS

#111

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.

I think docker would be a much better alternative. You can just hand students a pre-built docker with everything installed and they are free to mess up the system without any consequences.

But then you're explaining virtualization and networking to your students, how to manage interactions in and out ("I wrote a program in Txtedit, how can I run it?"), when it's started and when it's not etc.

I could see giving them a remote access to a prebuilt env (which can be containerized) to be simpler to explain.

Re: Escaping from Anaconda's Stranglehold on macOS

#112

> 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 know virtualenvs suck to explain to people, but in my opinion it needs to be done

This is because Python doesn't have versioned imports, which means you can't have multiple versions of the same package in the same environment, but I like to dream about a world where this isn't the case. If instead of import foo we had import foo@x.y.z#optional-checksum, the Python world would be massively improved. It seems like it would be such a simple change too.

Re: Escaping from Anaconda's Stranglehold on macOS

#113

Earlier quoted context omitted.

I am fully on board with having reproducible declarative setups, line Nix or Guix offer. I want to note though, that the versions and original code may be the same, but it can still happen that something behaves differently on another OS. The code of some version of a package can intentionally do things differently on another OS. So you are not 100% safe from MacOS disturbing things. I wish though, that at my job peo…

Although Nix seems to be becoming more mainstream, I still have yet to encounter a (forgive me for lack of a better word) normie that uses it. I feel somewhat blessed that I get to work on tools at a company that can support a dedicated tools team. We are free to use the best tool for the job without needing to worry about popularity contests, and nix has truly been a game changer for us.

I think it is already seeing some adoption at normal & boring companies, which is a sign of maturity.

Frankly, the biggest problem is that it needs some better docs, i.e. some serious corporate funding to get them written.

Re: Escaping from Anaconda's Stranglehold on macOS

#114
post #4

Anaconda’s hidden license for institutions is a dark pattern time bomb for scientific computing.

Miniforge [1] provides almost all the same benefits and features without the licensing headaches. The commercial/sign-up nagging is gone, and the GUI launcher is the only thing I've noticed is missing, but I don't use that as it's extraordinarily slow.

[1] https://github.com/conda-forge/miniforge

Re: Escaping from Anaconda's Stranglehold on macOS

#115

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.

After that I wonder why people think Python is a good choice to teach as a first experience in programming. Virtual environments is actually my biggest gripe with Python. I think it is interesting to consider why Python is so popular despite such fiascos. The answers can be very informative but can also be giant red flags.

We use it because of other people use it. I would gladly switch to Julia for scientific commuting if I could.

Re: Escaping from Anaconda's Stranglehold on macOS

#116

Earlier quoted context omitted.

Well it constantly crashes and requires every shop to develop their own half-broken way of interfacing between it and other industry-standard software, but at least ~half the pixels you’ve seen in any modern movie or tv show have been touched by it at one point or another. So that’s interesting.

Thats extremely fascinating. What's it used for?

[deleted]

Re: Escaping from Anaconda's Stranglehold on macOS

#117

Earlier quoted context omitted.

After that I wonder why people think Python is a good choice to teach as a first experience in programming. Virtual environments is actually my biggest gripe with Python. I think it is interesting to consider why Python is so popular despite such fiascos. The answers can be very informative but can also be giant red flags.

Because every option sucks for teaching. C/C++? Full of footguns. Java/C#? Too complicated for beginners. Pascal? Outdated. Etc. I personally prefer C to teach first-year CS students but just as the lesser evil. A good first programming language is sorely lacking. (Note that I'm talking about the imperative programming paradigm. The debate on whether one should start with functional programming is outside the scope o…

It's weird you throw out Java because they are the teaching language. They're the stick everything else is measured against. CS101 is a sea of Eclipse. Having a programming environment where all the major structures are discoverable through menus is actually pretty useful.

Re: Escaping from Anaconda's Stranglehold on macOS

#119
post #107

What is an “official version of python”? Anaconda is a distribution, which to my understanding, includes an official version of Python. Anaconda includes its own way of doing things to solve a lot of common problems people face. Personally, I don’t use Anaconda any longer because I ran into so many issues over so many years with conda, their package manager. I’m also almost competent enough to deal with a lot of the…

What do you use in place of Anaconda ?

Re: Escaping from Anaconda's Stranglehold on macOS

#120

Earlier quoted context omitted.

I think docker would be a much better alternative. You can just hand students a pre-built docker with everything installed and they are free to mess up the system without any consequences.

But then you're explaining virtualization and networking to your students, how to manage interactions in and out ("I wrote a program in Txtedit, how can I run it?"), when it's started and when it's not etc. I could see giving them a remote access to a prebuilt env (which can be containerized) to be simpler to explain.

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.
Post reply on HN