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.

  • @abominable_panda
    link
    English
    411 month ago

    Codium. It’s VSCode without the proprietary stuff

    • @krigo666
      link
      61 month ago

      Also Eclipse Theia, it has the same interface and functionality and it is compatible with most VSCode extensions (probably over 98% of them?).

    • @SpiceDealerOP
      link
      1
      edit-2
      1 month ago

      I’m going to look like a dumbass for asking this but you’re not talking about vscodium, are you?

  • Eugenia
    link
    fedilink
    English
    32
    edit-2
    1 month 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).

    • @SpiceDealerOP
      link
      261 month ago

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

      Your husband is an absolute legend.

    • NullStreamer
      link
      fedilink
      English
      161 month 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.

        • @[email protected]
          link
          fedilink
          130 days ago

          I still have no understanding of how to do literally anything in vim, I couldn’t even close out lol.

            • @[email protected]
              link
              fedilink
              1
              edit-2
              29 days ago

              Where would I even type that lol.

              I got used to nano already for basic config edit needs over ssh

              • @toynbee
                link
                2
                edit-2
                29 days ago

                Apologies in advance for the WOT. I will not be offended if you don’t read it, but I did try to include helpful information.

                So, for reference, though this command should work it’s not the correct way to exit vim (for several reasons). Also, if nano works for you, then there’s nothing wrong with using it. IMHO you lose a lot of the power of vim, but some of the beauty of linux is that customization is big part of it. One of the smartest and most linux-knowledgeable people I know uses nano and can outperform me in basically every linuxy way.

                Also, a caveat: I know some stuff, but I’m not an expert in anything, let alone neat stuff like this. The text below is accurate to the best of my knowledge, but may not represent the whole of the paradigm.

                Now, to answer your question: vim is what’s called modal. You have two primary modes: editing (amusing edit: this is also called “insert” mode) and command. Editing mode is what it sounds like: When you’re editing a file. This mode is usually entered by pressing a button that starts the process of changing the file - stuff like i (for insert mode, which just starts adding text you type where your cursor is) or o (which starts adding text you type on the next line) or many others. This mode is exited by pressing Esc, which leaves you in command mode. In command mode, you can start with a :, which generally goes to a field (not the right word, but the one I’m using) at the bottom of the window/screen. This is the command. The command can be extremely complex and even chained. People who are more into vi(m) than I am call it a sentence, I believe, but I might be misinterpreting that. (You can also type things without a : but those will have different kind of impact.)

                So, to run the command I posted above, you would start by pressing Esc to make sure you were in command mode (if you already are it will just maintain command mode). Then you would type : to start the command (or possibly sentence). Then you would type the !, which tells vim that this command is to be run in the shell, rather than as a vim command. Then you would type pkill vim which is a command that would tell the shell to identify a process called vim and kill it. This would exit vim but is, again, not the correct way to do so.

                The usual way to exit vim correctly would be to press Esc to make sure you were in command mode, then type one of the following:

                • :wq (write and quit)
                • :q (quit without saving the file)
                • either of the above with a ! after it (e.g. :wq! or :q!) which tells it to ignore errors (:q will complain if you have made any unsaved changed but adding ! will ignore those complaints)
                • press ZZ (I’ve not used this myself, but I think it’s equivalent to :wq)

                One last aside: If you do decide to try to use vim, this is a useful resource: https://vimschool.netlify.app/introduction/vimtutor/

                edit: Very small formatting changes.

                edit 2: Just some random facts because vim is cool:

                • You can type :! with no other text to see the terminal from which you launched vim, then press enter to return to your active vim session, which can be useful if you’re trying to replicate text in an environment where you can’t copy and paste (and probably other circumstances)
                • Adding % before any command applies it to the whole file (rather than, for example, just one line) which can be useful if you’re trying to sort a file (and in other circumstances):
                %!sort
                

                (without the % it would just try to sort the current line, which likely wouldn’t be too useful since I believe it only goes by the first character of the line unless you present other arguments)

                • @[email protected]
                  link
                  fedilink
                  229 days ago

                  to apply a shell command to a single line you need :.!command. :!command just runs it normally and outputs stdout to the terminal instead of inserting it into the buffer.

                • @[email protected]
                  link
                  fedilink
                  129 days ago

                  Very interesting, thank you!

                  That does help contextualize my experience a bit, I was very much not expecting a “mode” so I started trying to just type and things were happening lmao. Much appreciated, I might have to give it another try next time, I see there’s a lot of love for the vi family in general, almost cult like ;) but a good sign that it is a really powerful tool once you understand it.

            • @[email protected]
              link
              fedilink
              1
              edit-2
              29 days ago

              I’m asking now in case it comes up again, I couldn’t make any sense of the documentation for the hotkeys.

              I was trying to edit config files, not learn vim at the time, I just needed a text editor so I could save my changes lol

      • @[email protected]
        link
        fedilink
        130 days ago

        configuring vim from blank state is an art itself and requires quite some time and dedication.

        Not really sure where you got this from. It’s quite simple to me. The default vim config works completely fine for me if I’m eg in a VM and I don’t want to copy all my vimrc and plugins over, if it’s a machine I’ll be using more long-term then it’s quite quick to configure a few settings to be how I prefer them to be. Main changes I make to a default config is enabling line numbers (idk anyone who wouldn’t want line numbers tbh) and setting them to be relative, set scrolloff=9999, use 4 spaces for indent, enable line and column highlighting, set a theme, and a couple odd scripts, but again the default is perfectly usable and the tweaks in my vimrc are just to my personal taste.

  • Luna
    link
    fedilink
    English
    161 month 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

    • @[email protected]
      link
      fedilink
      51 month 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.

      • @[email protected]
        link
        fedilink
        129 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
        • @[email protected]
          link
          fedilink
          126 days 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?

    • @[email protected]
      link
      fedilink
      129 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…

  • @[email protected]
    link
    fedilink
    14
    edit-2
    1 month 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.

    • @[email protected]
      link
      fedilink
      51 month 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)

      • @[email protected]
        link
        fedilink
        130 days ago

        use Linux without a DE. […] (/j)

        … actually (tip fedora hat) not but seriously actually most of what we NEED is fine that way. It sounds ludicrous then you try Sxmo on a phone and you can’t help but GENUINELY wonder “Damn… did I get scammed all those years?”

    • Captain Beyond
      link
      fedilink
      230 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.

      • @[email protected]
        link
        fedilink
        430 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…

      • @[email protected]
        link
        fedilink
        230 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.

  • Rimu
    link
    fedilink
    English
    14
    edit-2
    1 month ago

    I use PyCharm for work but it’s not FOSS or beginner-friendly. PyCharm does have a free community edition which is awesome if you’re mostly into FOSS for the $0 aspect.

    Codium is fine and technically FOSS although it’s association with Microsoft taints it for anyone who still hates MS from the bad old days. Also it’s an Electron app.

    • Captain Beyond
      link
      fedilink
      430 days ago

      Codium is fine and technically FOSS although it’s association with Microsoft taints it for anyone who still hates MS from the bad old days.

      “New” Microsoft isn’t really any better, and although Codium itself is perfectly fine (Electron notwithstanding) many of Microsoft’s extensions only work with/are only licensed for the official VSCode build and include proprietary parts.

  • lime!
    link
    fedilink
    English
    101 month 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.

  • @MTK
    link
    91 month ago

    Honestly, just try a few of the big ones and see what you like, I feel like with IDEs it’s all about personal preferences and rarely about actual amount of features.

    Good ones to start with can be PyCharm and vscodium, but try a few, that’s the best option.

    • DreamButt
      link
      English
      31 month ago

      Ya ime it’s mostly about what people are comfortable with. People who care about all the features :tm: go to emacs, people who want to use an instrument stick with vim, and old people use nano

    • @badbytes
      link
      129 days ago

      Yeah, geany is a simple and effective IDE. I chose to use vim with syntax highlighting.

    • @[email protected]
      link
      fedilink
      61 month ago

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

        • @[email protected]
          link
          fedilink
          130 days ago

          Yeah, I have. Seems like development has stalled, though. Last release was 4 months ago and the last commit a month ago.

      • Presi300
        link
        English
        31 month ago

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

      • @[email protected]
        link
        fedilink
        English
        229 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
          }
        }
        • @[email protected]
          link
          fedilink
          129 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.

    • @[email protected]
      link
      fedilink
      English
      11 month ago

      As long as it has an integration for your language/framework of choice it’s the best imo

  • @tapdattl
    link
    629 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)

  • @[email protected]
    link
    fedilink
    630 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.

    • @[email protected]
      link
      fedilink
      English
      127 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.