PyCharm vs VS-Codium vs Spyder... : which one to use?!

dhubs

Member
Joined
Nov 5, 2024
Messages
59
Reaction score
19
Credits
839
Good evening dear Community,

Well which IDE do you use: well i am trying to get in to python-development recently,

To find out what IDE suits most - i did a bit of research, and i found out that People just like pycharm when it comes to python development..Why! Some of my Friends use Spyder.

i gave it a try - and tested all of them: To be frank - i tried out all of them! They’re both absolutely fantastic and there are pros and cons to each, not to mention that they have some special strength and pros - where others have not: Well what do you say - i mean at the end i ll have to stick to only one! Well if it comes to python i think I like PyCharm for pure python projects, but on the other hand side: vs code (and VSCodium for Linux) is a good one if it comes to projects that might have a mix of several languages.

And besides this: what about the spyder:

spyder: i also used Spyder for some weeks: In some of my very first projects I wanted to use a package/module that is not installed by default in Spyder IDE. But I can not find a simple solution how to load/install an external package without using payed for software or a lot of complicated manual package and environment manager setups.

Question: Well, is it not possible to install a Python+IDE with a simple installer (for example the Spyder IDE) and out-of-the-box use packages and code from the community?

Pycharm: i recently installed pycharm because my colleagues recommended me this: but after a while i finally moved to VSCode because I was impressed by the blistering fast development.

to conclude: hmmm my first prelimnary conclusio: well some friends said to me: "Man, just use whatever IDE helps you get going and writing code." and they continued: "The worst thing you can do is get into this tribal mentality in the CS/Software field."

Well, i think VSCode is great and very capable - and besides this: its a damend good and very very big project on Github: i guess its the biggest one. Well in situations wher we are doing remote-dev work via SSH, i think that the VSCode it is a great UX compared to Pycharm. I think that VSCode may be probably the best tool for remote-dev work

but Spyder and PyCharm are great for getting started.


what do you use?

what is your experience..?

Look forward to hear from you
greetings
 


is there a way to even use Python without a Python-specific IDE?

I've toyed with python a couple of times, thinking I'll find out what all the hoopla is about but every time I sit down with a book or a tutorial or, in one case, even a human who claims to know python, I'm met with something like, "First, install this that or the other IDE - invariably one with its own built in text editor that can "emulate" whatever real text editor you can name.

At that point I lose interest. I have a perfectly good text editor that I've been using probably longer than you've been alive and if I want an "IDE" I'll use my text editor for that too, thank you very much.

So, while on the subject of Python, is there some resource (tutorial, book, whatever) for just learning the language itself without worrying about all the ancillary stuff that always seems to come along with it?
 
good day dear @MikeRocor

first of all: many thanks for the reply and for sharing your thoughts

I totally get where you're coming from! It sounds like you're someone who values simplicity and likes to stick with tools you're already comfortable with. If you're looking to learn Python without the distraction of IDE-specific features or setup steps, I have a few suggestions for resources that focus purely on the language itself:

  1. "Automate the Boring Stuff with Python" by Al Sweigart
    This book is great for getting into Python by solving practical problems. You can follow along with just your favorite text editor and the Python interpreter ... and i for one like the
  2. Python.org's Official Tutorial
    This is a solid, no-nonsense tutorial that walks you through Python concepts using just the basic command line and a text editor: Python Tutorial.

Regarding your broader point about various IDEs: yes, many modern Python tutorials and courses do jump straight into recommending IDEs. But you really don’t need one unless you’re doing more complex tasks like debugging or working on large projects. A good text editor and Python’s built-in REPL (read-eval-print loop) can get you pretty far, especially in the beginning.


have a great day

greetings :)
 
good day dear @MikeRocor

first of all: many thanks for the reply and for sharing your thoughts

I totally get where you're coming from! It sounds like you're someone who values simplicity and likes to stick with tools you're already comfortable with. If you're looking to learn Python without the distraction of IDE-specific features or setup steps, I have a few suggestions for resources that focus purely on the language itself:

  1. "Automate the Boring Stuff with Python" by Al Sweigart
    This book is great for getting into Python by solving practical problems. You can follow along with just your favorite text editor and the Python interpreter ... and i for one like the
  2. Python.org's Official Tutorial
    This is a solid, no-nonsense tutorial that walks you through Python concepts using just the basic command line and a text editor: Python Tutorial.

Regarding your broader point about various IDEs: yes, many modern Python tutorials and courses do jump straight into recommending IDEs. But you really don’t need one unless you’re doing more complex tasks like debugging or working on large projects. A good text editor and Python’s built-in REPL (read-eval-print loop) can get you pretty far, especially in the beginning.


have a great day

greetings :)
Thanks for the tips - I actually have a hardcopy of Sweigart's book on my desk even now, though I haven't started in on it yet. And I'll be heading to the Python Tutorial link as soon as things settle down a bit here - a bunch of shtuff just got added to my to-do list with the changing of the calendar.
 
I use Vim in the terminal for all coding and text editing. If I want a more IDE-like experience, I’ll run Vim in a tmux session and will add a 60/40 or 75/25 horizontal split. And I’ll have Vim running in the bigger, pane at the top of the screen and a terminal running in the bottom pane, open at the root of the source tree I’m working on, so I can compile, debug, or run tests.

Python isn’t the only programming language I use. I do a lot of C/C++ development. I also use other compiled languages like Rust, Go, Java (and other JVM based languages), Haskell and Lisp. Plus other scripting languages like Ruby, Perl, Lua, PHP, JavaScript and of course Bash/shellscript.

Regarding other editors/IDEs, I’ve been hearing good things about a new editor called Zed, which apparently has much faster and smoother code-completion than VSCode (which can get extremely slow when dealing with very large codebases).

Zed has a Vim plugin/mode, so I might give it a go at some point. But I’ve been using Vim for so long, its keybinds (plus my own custom ones) are seared into my muscle memory. So I’m unlikely to switch to zed full-time unless its Vim mode is as good as (or better than) Vim.
 
is there a way to even use Python without a Python-specific IDE
Yes, you can. Python (the CLI executable) is an interactive interpreter, and you can also use it with the shebang to create executable scripts.

Comfortable for development? Probably not because I don't know about any CLI online debugger, but some may exist. But it is possible for sure.
 
is there a way to even use Python without a Python-specific IDE?
Yes, just use a normal text editor and alt+tab between that and your script to test it (unless you're pretty confident). Heck, you could do: while true; do my-editor /path/to/my-script.py && python3 my-script.py; done;
I've toyed with python a couple of times, thinking I'll find out what all the hoopla is about but every time I sit down with a book or a tutorial or, in one case, even a human who claims to know python, I'm met with something like, "First, install this that or the other IDE - invariably one with its own built in text editor that can "emulate" whatever real text editor you can name.
It's preferable you pick some to use something with a built-in shell. But it's up to you... Look the "install this" is often Python modules for each example/lesson. It's not different conceptually to, say, installing SDL dev for C/C++ (and any bindings, IDK, I hear they have some, I haven't used it in ages and there's probably a much cooler toy out aside from Unreal which is like a telephone directory of docs and when I tried it, I had to register)... But I digress.

Installing Python modules is useful outside of just Python coding. There are utilities like yt-dlp that are Python projects that receive their fastest updates via pip. Note that most OSes do not ship with (or even close to) all Python modules so rather than mixing (ie: hmm, this is in my distro repo, that is in Python's pip), just locally install them all. Officially it is suggested you make a virtual environment, venv, but I don't bother. Local install is fine.
$ pip install yt-dlp --break-system-packages
Gives you the upstream yt-dlp. Doesn't not break anything (you should, but don't have to, uninstall the system version of yt-dlp first, obviously)

Optional rant/rationale thingy about pip:
Yes, the docs say use a venv, and this is useful for for project-specific setups, but when speaking venv for everyday use, it's bollocks. Claims:
1. It will break dependencies.
No. It will install thing locally, usually in $HOME/.local/bin/. You are running as user, you cannot fiddle with system-installed packages.
2. Yes but if you already have that package installed...
Nothing will happen. If [/ | /usr/ | /usr/local/bin/]bin/ is before /home/you/.local/bin/ then the former takes precedence, otherwise the latter takes precedence. That's it.
3. Yes by some-program has a dependency on some-python-package and you pip installed it and .local takes precendence.
So? You'll run some-program against an upstream version. Anyone on a rolling release does this with glibc all the time. It won't break.
4. Unless there's upstream compatibility issues! Gotcha!
Then set your PATH to prefer system-wide bin/ instead of .local.
5. Haha! But if your projects require upstream compatibility!
Really? I already pointed out "project-specific setups" for venv, but just to hairsplit, once you've opened the CLI to run your program, just export a new PATH, it won't affect the rest of the system, duh. For bigger apps, use a startup script, you should be dependency checking anyway.
7. But the docs...
Are very useful, but we are free to choose how to do things. I am too lazy to run a venv if I don't have to. Especially for Python tools like yt-dlp which I can grab upstream through pip. We're all entitled to do things our own way. "They're more guidlines than actual rules".
At that point I lose interest. I have a perfectly good text editor that I've been using probably longer than you've been alive and if I want an "IDE" I'll use my text editor for that too, thank you very much.
Absolutely. Tried many IDEs including Code::Blocks years ago and hated them and kept with the text editors. That said, I tried out VS Code recently and have finally been converted, as despite how it looks, the UI is not confusing. The plugins are also part of what sold me. I still do all the smaller stuff and shell scripts in a text editor (featherpad, followed by mousepad, are my picks) as firing up an IDE, even on my fast machine, "feels" like a hassle.

So, while on the subject of Python, is there some resource (tutorial, book, whatever) for just learning the language itself without worrying about all the ancillary stuff that always seems to come along with it?
You could try the free Mosh Hamedani. I downloaded a compilation of his Python tutorials from YT (~6hrs IIRC), went through them at 1.25x speed (I suggest and you use 1.25x or more, there's a lot of beginner stuff), and I was Python-ready -- though obviously still not "Python-fluent" per se, but now I learn on the fly. He suggests PyCharm, but TBH, you can use a text editor and just run it in the CLI and ignore the IDE-centric stuff he mentions.

Anyway, good luck to ya.
 
Last edited:
2. Yes but if you already have that package installed...
Nothing will happen. If [/ | /usr/ | /usr/local/bin/]bin/ is before /home/you/.local/bin/ then the former takes precedence, otherwise the latter takes precedence. That's it.

That's the main reason I avoid pip, but sometimes you have no choice.

ansible isn't available in the centOs 10 repos unless you pay for the subscription. It wasn't available in the epel repos for a long time. ( although, I see it is now ) so I installed it using pip3. Now I want to go back to using the epel version, but uninstalling things that were installed by pip isn't always straight forward. I may end up rebuilding this system ( it's a VM, so not that big of deal ).
 
That's the main reason I avoid pip, but sometimes you have no choice.

ansible isn't available in the centOs 10 repos unless you pay for the subscription. It wasn't available in the epel repos for a long time. ( although, I see it is now ) so I installed it using pip3. Now I want to go back to using the epel version, but uninstalling things that were installed by pip isn't always straight forward. I may end up rebuilding this system ( it's a VM, so not that big of deal ).
Can't you just purge .local/bin/ of the ansible stuff? Or was it system-wide installed with pip? In my case, I only install things with pip as user so in the worst case, I have to purge .local of all pip stuff and reinstall everything. Hasn't happened on my production macine yet.
 
Can't you just purge .local/bin/ of the ansible stuff?

Unfortunately ansible isn't the only thing I have in there, and I don't trust myself not to remove something that will break something else. :). It isn't in .local, it's in /usr/local
 
Unfortunately ansible isn't the only thing I have in there, and I don't trust myself not to remove something that will break something else. :). It isn't in .local, it's in /usr/local
Ah, if it's system-wide, probably scattered about in lib as well, so, yeah, it's cleaner and less likely to blow up doing a rebuild.
 
is there a way to even use Python without a Python-specific IDE?
Yes. As the others have mentioned, you can run the Python interpreter interactively in the terminal and can issue individual Python commands.

Also Python has the pdb module, which is Python’s built-in debugger.

The pdb module is used by Idle (pythons default IDE), to provide the backend for its debugging features. But pdb can also be invoked in the terminal, to debug Python scripts.

Essentially pdb is similar to gdb (terminal based debugger for C/C++/assembly), but it’s specifically for debugging Python code.
It allows you to set breakpoints in python code, step through code, watch variables etc.

Rather than explaining pdb’s usage here, here’s a link to a decent pdb tutorial:

IDE’s give you a lot of convenience. They hide a lot of complexity from developers. You don’t see all of the flags/settings that are sent to compilers, linkers or other tools in the chain. The IDE takes care of all of it for you in the background.

Many programmers will not consider developing without an IDE.
But regardless of the language - if you really want to get to know your tools, or you want more fine-grained control over them, then building, testing and debugging in the terminal is the best way to do that.

It might not be everybody’s cup of tea. But you will learn a lot. If nothing else, you will at least appreciate how much an IDE does for you!
 
... But regardless of the language - if you really want to get to know your tools, or you want more fine-grained control over them, then building, testing and debugging in the terminal is the best way to do that.
...
That, right there.
 
Last edited:


Members online


Top