dear community, i am on Linux MX 19.1 which is a Debian-based type of Linux. i want to set up a Python development environment: i have several options:

i have a bit Experience in ATOM which is neat and extensible. It also has a very nice Github-integration. We also can use PyChar which is a fully flegded IDE with a great Python-support.

VSCode is a very very large project on Github - in fact the biggest one.

to install VSCode on MX is a bit tricky - there are several options. I describe some - and would be lucky if you add more.

we can use Flatpack, since it is integrated into MXPI and it makes easier. some of my friends not use this (Fedora) packaging system, i can install codium as sugested on their web page: it is supposed to worked and we re keep getting updates if we install codium.

Anaconda: Btw, there is another option - Anaconda. If we install Anaconda, huge scientific package, many research labs use it,it comes with VS Code (well during installation we need to confirm that we want VS Code also installed) and then VSCode becomes integrated with it. Plus we furthermore get another IDE, simpler Spyder, plus Jypiter Notebook which I really like for certain things. We can check out Anaconda also. Although it is damned huge, some 12GB and after we start creating virtual environments in it, it will get even damned-bigger. Ah, yes, it is perfect for managing virtual environments, we can create them with mouse click, choose what version of python to use with it, which packages... all with mouse if we prefer GUI. Lots of choices...

by the way - if we discuss this a bit broader then we have to include Anaconda and docker too:

both of them provide isolated fully-fledged-configurable environment that allows the developers to avoid dependency resolution on any host computers.

Well this is pretty interesting: so we can say that these are different things - both are completely different types of application. However they do have some kind of overlap in terms of providing consistent software-systems across different platforms. So here first of all some ideas bout the conda-concept:

Conda; Conda attempts to do this by providing code binaries and a compatible ecosystem within environments. Conda can be called somewhat a package manager used for the installation and uninstallation written in Python, but which can manage applications in multiple languages

that said we have a look at Docker: Docker is a containerization of a system-application above a very very minimal Linux kernel (minimized). Docker isolates individual programs in containers so they don’t step on each others toes.Some Docker images use Conda as their primary dependency installation step, and there are now tools that auto-create

We can say that Docker images are somewhat based on Conda-packages. Docker’s concept of a registry is the very same as a package manager, except they deal in images and Dockerfiles rather than releases and source code.

from a Meta-level we d say that they both do quite the same thing and job and that they do it in quite different ways. That saind the question of chhoosing some of them sounds like a request for a discussion of things like:

You can say Conda a package manager, in the kind of NPM or Yarn. Otherwise Docker is container platform that let us package our environment in a isolated container-system