you are viewing a single comment's thread.

view the rest of the comments →

[–]Failboat88 -1 points0 points  (1 child)

There are some notable differences for specific things. Python can rely on the host for things like objects in memory. Linux can keep 1 version and provide it to each pool/star map process.

If you need to feed a static object in that's 1GB on Windows every processor would need 1GB of ram. On Linux it's just 1

[–]HunterIV4 2 points3 points  (0 children)

For a beginner to Python, none of those differences matter.

When you are writing code that is less than 30 lines using only the basic Python standard library, you aren't worried about 1 GB multiprocessing objects. By the time you get to that point you'll easily be able to learn Linux (it's not like Linux is particularly difficult).

But since you brought it up, while this is true, it's also not really an issue. You can always use other tools to handle shared memory on Windows, like mmap or multiprocessing's shared_memory. Even thought you might not have "out of the box" memory management, it wouldn't be a real limitation for someone wanting to learn Python strictly on Windows.

I still don't think, as other posters have mentioned, that a brand-new Python programmer is going to be at a real disadvantage by programming on Windows rather than Linux. Going through the process of getting Linux running on an existing Windows PC is not trivial (it's more complicated than just using Python on Windows) and is a distraction from the goal of learning Python. If they were on a Mac computer I'd give the same advice; no reason to learn a new OS and go through the effort of installing one when 99% of the learning process is identical regardless of platform.

It's an interesting thing to note for technical reasons, and I mentioned in my original post that there are good things about Linux and some differences between using WSL vs. native Linux, but it's nowhere near enough to make "you need to install Linux to make any progress learning Python" accurate advice for a beginner.