loading...

Discussion on: Where does Python Shine Over Node?

Collapse
duhdugg profile image
Doug Elkin

I have experience in both. It usually comes down to the dependencies required, and what's already on the target environment. You might use IronPython or Jython if your environment is strictly based on .NET or Java.

There may be situations where you cannot use any outside packages (for security or other business reasons). CPython has quite a few useful things included in its standard libraries that Node doesn't have, such as libraries for CSV, XML, SQlite, and many others.

If you're interested in performance and memory usage, you should look into PyPy.

Thread Thread
mjcapecci profile image
Michael Capecci Author

This is all really interesting stuff about target environments. I also was under the impression that, once you installed Python or enjoyed having it by default on your Mac or Linux machine, that it just simply ran in and of itself.

What are the implications on target environment when you setup a virtual environment (venv)? I wonder if this is using CPython behind the scenes.

Thread Thread
duhdugg profile image
Doug Elkin

Virtualenv supports multiple implementations, and is what you use when you want to isolate your Python environment.

Think of it like this: by default, pip install packagename is similar to npm install --global packagename. When you use virtualenv to create a new directory (called "env" for example), and then execute ./env/bin/pip install packagename, the packages are installed within that directory only (similar to how npm by default installs to ./node_modules when not using global mode).