83
submitted 1 week ago by SpiceDealer@lemmy.world to c/linux@lemmy.ml

I'm getting back into coding and I'm going to start with python but I wanted to see what are some good IDEs to write the code. Thanks in advance.

top 50 comments
sorted by: hot top controversial new old
[-] eugenia@lemmy.ml 33 points 6 days ago* (last edited 6 days ago)

My husband, who mostly codes in assembly these days (he's mostly retired so his hobby is old atari, amstrad, and spectrum computers), went from VSCode, to Sublime, to now Kate. He prefers to use 100% open source apps, without strings attached. VSCode is nice, but it has lots of weird stuff in it that aren't necessarily up to the spirit of open source. So Kate works perfectly for him, although VSCodium would do well as well (it's just that Kate has better syntax highlighters for his weird assembly). Also VSCode/ium is using about 250 MB of RAM, while Kate about 45 (and Sublime only about 32).

[-] SpiceDealer@lemmy.world 25 points 6 days ago

(he’s mostly retired so his hobby is old atari, amstrad, and spectrum computers)

Your husband is an absolute legend.

[-] QuazarOmega@lemy.lol 2 points 4 days ago

without strings attached

How does he read??

[-] leastprivilege@lemmy.ml 8 points 5 days ago

Neovim! Here is a good video to get started TJ DeVries. If you just want to give it a shot there are a lot of preconfigured options like lunar vim or NVchad.

[-] Urist@lemmy.ml 1 points 2 days ago

LunarVim is dead I think. In the issues section the (main?) dev says they recommend switching to something else and that they have gone over to Astronvim.

[-] 737@lemmy.blahaj.zone 10 points 5 days ago

vim/nvim is really great

[-] hamburger@discuss.tchncs.de 26 points 6 days ago
[-] nullstreamer@feddit.org 17 points 6 days ago

I'd suggest going with LazyVIM / SpaceVIM as a starting point, though, as configuring vim from blank state is an art itself and requires quite some time and dedication.

[-] 737@lemmy.blahaj.zone 6 points 5 days ago

starting off with nothing but vim/nvim really isn't bad

load more comments (10 replies)
load more comments (2 replies)
[-] tapdattl@lemmy.world 6 points 5 days ago

I'm a big fan of vim/neovim with nerdtree and airline added in.

I've also been tryingourt Zed recently, it natively supports vim keybindings, so my workflow hasn't changed, but its lightning fast (programmed in rust) compared to vs-codium (an electron app)

[-] Kazumara@discuss.tchncs.de 15 points 6 days ago* (last edited 6 days ago)

I really like Kate as an advanced editor with syntax highlighting, auto-completion, plugin support. I would then use the Terminal pane at the bottom to run my code during development.

However, if you want a full IDE with included dependency management, test runner, and debugger it's probably not enough.

One of my professors said you don't need an IDE, the Linux system already is a development environment. Not sure that I fully agree with that, especially thinking of things like Android Studio that include the virtual machine smartphone, but it's still an approach thing that is worth trying out.

[-] Telorand@reddthat.com 5 points 6 days ago

Nobody needs an IDE. After all, you can just open a blank file and get straight to work. I could also just use Linux without a DE. Who needs all those graphics, amirite? I could also use a can with some string instead of a phone—or better yet, just shout really loud!

(/j)

load more comments (1 replies)
[-] beyond@linkage.ds8.zone 2 points 5 days ago

One of my professors said you don’t need an IDE, the Linux system already is a development environment.

Considering "the Linux system" is literally anything you throw on top of the kernel called Linux, it can be a development environment or anything you want it to be. But I think part of the appeal of an IDE is how all the parts integrate (the "I" in "IDE") so a bunch of packages thrown together might not provide the same cohesive feeling.

[-] communism@lemmy.ml 4 points 5 days ago

Considering “the Linux system” is literally anything you throw on top of the kernel called Linux, it can be a development environment or anything you want it to be.

I'd just like to interject for a moment...

[-] Kazumara@discuss.tchncs.de 2 points 5 days ago

Considering “the Linux system” is literally anything you throw on top of the kernel called Linux, it can be a development environment or anything you want it to be.

Yeah I thought about the same thing when posting, if anything it would have to be the the combination of tools available on Linux. Like GNU binutils, GCC, GNU emacs, GDB, Git. But that's how I remember him saying it. Either my memory is wrong, or he just wasn't that precise in his language.

But I think part of the appeal of an IDE is how all the parts integrate (the “I” in “IDE”) so a bunch of packages thrown together might not provide the same cohesive feeling.

I agree, it may not be what you want if you're looking for an IDE.

But, like me back then, if you're new to the Linux ecosystem, it's good to hear at least once that you don't strictly need to look for an IDE. And that you can instead use disparate CLI tools together, to make for an experience that some people end up preferring.

[-] 2kool4idkwhat@lemdro.id 17 points 6 days ago

I use Helix. It's kinda like a preconfigured Neovim. I really like it, my only complaint is that it (currently) doesn't have a filetree

[-] slowbyrne@lemm.ee 3 points 5 days ago

I use Yazi and its amazing. Here's their docs on how to set it up as a file picker in helix.

https://yazi-rs.github.io/docs/tips/#helix-with-zellij

[-] sntx@lemm.ee 1 points 4 days ago

I wanted to try to use this with yazi, to get the file picker without having to rely on zellij (or any other terminal multiplexer)...

https://www.youtube.com/watch?v=X9_z_gynvmM

[-] sntx@lemm.ee 1 points 4 days ago

I came to the conclusion that a fuzzy finder (SPC-f) + goto definition (g-d)/implementation (g-i) is better than a filetree in all my usecases...

[-] balsoft@lemmy.ml 5 points 6 days ago

Seconded. I'm coming from Emacs (+evil), so I'm still missing a few features (proper git integration a-la magit, collaborative editing a-la crdt.el, remote editing a-la tramp). However what is already there works way better/faster/more consistent than any other editor IMHO, and I've tried neovim with plugins too. I particularly enjoy the ability to traverse the AST rather than text (Alt+l/p/o/i by default, but I have it remapped to Alt+h/j/k/l). Really looking forward to https://github.com/helix-editor/helix/pull/8675, I'll probably write a couple plugins if this ever lands.

[-] sntx@lemm.ee 1 points 4 days ago

You can already do so incredibly much by hooking up a few extra LSPs and keybinds (calling external scripts/programs)!

What I'm personally still missing though:

  • Code Folding
  • More refined subprocess handling, i.e. term-buffer switching or floating term (when excuting gitui via keybind for example)
  • Emacs Org-Mode like context aware styling, for i.e. Bold or Italic text hints from LSP
    • Font changes (restricted through terminal)
    • Different Font/Line sizes for i.e. headings (restricted through terminal)
    • Inline images (sixel!)
  • Dedicated optional client, a-la Neovide with cursor animations (helps orientation with jumps etc.), and to alleviate the previous terminal restrictions
[-] balsoft@lemmy.ml 1 points 1 day ago

You can already do so incredibly much by hooking up a few extra LSPs and keybinds (calling external scripts/programs)!

Yes, agreed. But I would still love some git integration that can't be emulated like this. For now git cli + lazygit for more easier refinement works fine, but it's not ideal.

Emacs Org-Mode like context aware styling, for i.e. Bold or Italic text hints from LSP

Hmm, isn't this already the case for, like, markdown? Or what do you mean by context-aware?

load more comments (1 replies)
[-] Ziglin@lemmy.world 4 points 5 days ago

I'm slowly learning Emacs, I'd say I like it but it's a lot of config work and I wouldn't recommend it to somebody who hasn't programmed before.

[-] conrad82@lemmy.world 1 points 3 days ago

I agree. I learned and used emacs and org mode for several years. With age, I now want simpler tools that do not need extensive configuration. Using mainly Spyder and VS Code for python coding

[-] manito_manopla@lemmy.ml 9 points 6 days ago
[-] utopiah@lemmy.ml 4 points 5 days ago* (last edited 5 days ago)

Because people ask for an IDE, rather than an editor, I will say :

Vim + terminal(s) + containerization (e.g. Docker CLI, Python venv) + live reloading (e.g. nodemon or inotify or in the browser using e.g. server side events) + repository management (e.g. git in CLI to juggle between branches, push/pull local/remotely)

IMHO this is very VERY light (0 wait even on a RPi Zero) and yet very flexible.

Also most of that can be "saved" via e.g screen the CLI tool, allowing to have named windows in a terminal and a lot more than to e.g. screen -raAD, locally or remotely.

[-] mvirts@lemmy.world 3 points 5 days ago

It pains me to admit this but VSCodium has become my de facto standard

https://vscodium.com/

[-] data1701d@startrek.website 2 points 3 days ago

Agree. Codium goes brrrr, honestly.

[-] QuazarOmega@lemy.lol 2 points 4 days ago

Don't be ashamed, I think a lot here secretly like it, it's just very extensible because so many use it in the form of VSCode and it's just great for what it is, despite being Microsoft's for all intents and purposes

[-] lime@feddit.nu 10 points 6 days ago

with the rise of LSP, i feel that ides have become less necessary. get an editor that you like, add an LSP client if there's not one built-in, then install the server for your language.

[-] learnbyexample@programming.dev 4 points 5 days ago

I use Vim ;)

Python itself provides IDLE, which is good enough for beginners. https://thonny.org/ is another good one for beginners.

As mentioned by others, Jetbrains is good for many languages. https://www.kdevelop.org/ is another option.

[-] Dungrad@feddit.org 7 points 6 days ago
load more comments (1 replies)
[-] Presi300@lemmy.world 6 points 6 days ago
[-] BigTechMustBurn@lemmy.ml 5 points 6 days ago

Zed is full of AI rubbish, though, which is a shame as I was looking for a code editor built with Rust.

[-] agelord@lemmy.world 5 points 6 days ago* (last edited 6 days ago)

You can check out Lapce, which is written in Rust: https://github.com/lapce/lapce

load more comments (1 replies)
[-] theamazing0@discuss.tchncs.de 2 points 5 days ago

It's not too hard to disable all of it

{
  // Disable Telemetry
  "telemetry": {
    "metrics": false,
    "diagnostics": false
  },
  // Disable Assistant:
  "assistant": {
    "enabled": false,
    "button": false,
    "version": "2"
  },
  // Disable Copilot:
  "features": {
    "inline_completion_provider": "none"
  },
  // Disable Collaboration Features:
  "collaboration_panel": {
    "button": false
  },
  "chat_panel": {
    "button": false
  },
  "notification_panel": {
    "button": false
  }
}
[-] BigTechMustBurn@lemmy.ml 1 points 5 days ago

These should be off by default (made opt-in not opt-out) or made plugins/extensions at worst and removed completely at best.

[-] toastal@lemmy.ml 3 points 5 days ago

Rust doesn’t buy you anything interesting in this space.

[-] Presi300@lemmy.world 3 points 5 days ago

Not really, all the AI stuff is off by default and doesn't really nag you all too much...

[-] BigTechMustBurn@lemmy.ml 2 points 5 days ago

I did find this fork which removes all the AI and telemetry. You’d be surprised how much of it is there.

load more comments (1 replies)
load more comments (3 replies)
[-] veer66@social.vivaldi.net 3 points 6 days ago

@SpiceDealer I use Emacs as an IDE for Python.

load more comments
view more: next ›
this post was submitted on 17 Dec 2024
83 points (95.6% liked)

Linux

48687 readers
518 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS