So, I have been mostly self thaught programmer (C++), as its a big part of my job (not a regular developer). But so far I have been using a simple text editor like Geany to code and I compile stuff either in terminal (linux) or produce my own make file.

I am starting to wonder if I should switch to a full IDE, as I am on linux, I was thinking of trying KDevelop. But I am simply not sure if its worth, do I even need it?

I have never used an IDE, it seems kind of complicated for the start with “projects” and I havent really found any good introductions to how this workflow is supposed to work.

Do you think using and IDE is something everyone should use? Or do you think a text editor with producing your own make files should be enough?

  • Guzzi@moto.teamswollen.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 years ago

    I started as a sysadmin in 1995 and started programming not long after that. I spent most my time in a shell and vim, started writing python all in vim. Then I took on a project that was a graphical application for windows and OS X. It was a rewrite of a windows visual basic app that we did not have the source for, so now good opportunity to write a multi platform application.

    I wrote that program in python/pyQt3. Started on linux (which it also ran on) decided to look at IDE’s to help with pyQt I found Eric3. It made writing the first app and many after a lot easier.

    So moved on from there a few years later and I use Jetbrains Pycharm commercial if I am writing anything bigger then a quick script I will do it in Pycharm.

    Some of the things I like in Pycharm.

    • really good vim emulation
    • the linter finds code problems very well
    • completion is great
    • debugger is fantastic I rarely use a print to debug but it still happens
    • Increase’s productivity, hard to see at first.

    I strongly recommend looking at IDE’s start with Kdev and see where it goes also try the trial version of Jetbrains Clion. https://www.jetbrains.com/clion/

    It feels like a lot of extra work to learn an IDE but it pays in productivity. Watch some videos on Clion.

  • Communist@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago

    I use vim, and I can safely say, it was worth bothering to learn it and set it up, ESPECIALLY if you make a career out of it, and one time I had a friend who didn’t use an IDE and I showed him how much easier it was to do certain things on vim and he felt very very stupid for using notepad.

    • XTL@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I’ve moved to neovim myself after 20+ years of vim and 30+ years of programming with various editors and even monitors. I’ve used IDEs when in projects where everyone does and where the build may rely on them (yes, that’s a disaster) or when it’s the only tool offered (old obscure embedded systems). But I’ve never wanted to use any of them or found the results useful. Debuggers and editors can be extended to do anything extra an IDE does.

      Extra tips: Helix might have an even better command system. Kate almost works like an IDE and offers a vi command mode in a GUI editor.

      • Communist@beehaw.org
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        2 years ago

        being able to immediately jump to a line, jump to columns, have line numbers on the left, have css colors show up like this: https://github.com/RRethy/vim-hexokinase

        It’s been awesome for me!

        I do actually use neovim though.

        edit: Oh, I was referring to vim as an IDE, but I now realize you mean that vim is technically just a text editor, but i’ve set it up quite a lot, so, my particular vim setup might be in a weird spot!

        • BlueBockser@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Tbh, that just sounds like an IDE with extra steps. IntelliJ for example does all of those things as well IIRC and you don’t need to rely on third-party tools.

          Of course you’ll learn a lot more along the way if you configure vim to effectively be an IDE, but the end result is not that different.

          • Communist@beehaw.org
            link
            fedilink
            arrow-up
            0
            ·
            edit-2
            2 years ago

            While it was a ton of configuration work, it’s now an extremely slim text editor that I use for literally every text file on my computer

            I don’t think intellij’s performance could compare.

            Plus, now that it’s already configured, I just have to share my dotfiles and it’s immediately setup anyway, and I love how vim works with modality and all, i’m not familiar with intellij but it’d have to do quite a lot to sway me at this point.

  • Azzy@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    As hiajen said, most IDE’s simply aren’t as useful for lower-level languages like C++. And while communist suggested vim, I would say that something along the lines of helix-editor would be a bit more user-friendly, and just as extensible :)

  • nii236@lemmy.jtmn.dev
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    It’s worth figuring out an IDE “lite” like vscode to see how you go. It’s pretty lightweight and easy to spinup compared to something like IntelliJ

  • bobaduk@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    When I first started programming I used a text editor, UltraEdit32. When I moved into .Net, I initially used Ultraedit and wrote all my own build files, but switched to using Visual Studio with all the bells and whistles. When I moved to Python/Node I adopted Vim, and these days I tend to use Doom Emacs.

    There’s a spectrum from visual studio or eclipse, with complex project structures, through vscode and rider which are simpler, to programmers editors like Emacs or neovim, to plain editors like nano.

    I think the most important thing is that you’re comfortable with your tools. I could crunch out a lot of code with Visual Studio and Resharper, but I use Emacs as an IDE, note taking tool, and email client . The familiarity makes me productive.

    It is super helpful to have syntax errors or warnings highlighted when working on code, and a decent editor will make it easier to navigate code - jump to the definition of a function, find the documentation for an API call etc.

    As codebases get larger, you need all the help you can get. You may also find, when you work with others, that their opinionated tooling clashes with your opinionated hand crafting.

  • hiajen@feddit.de
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    Hm, i do thing witu c/c++ the benefits of using an IDE are not as great as for other languahes like java/python etc etc but still existant.

    I wont programm java without my IDE, for c/c++ i mostly just use vim with someplugins for autocompletion. I could be a snowflake tho.

  • teri@discuss.tchncs.de
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    You may actually miss out when using an IDE. Driving without training wheels is more fun :)

    I’ve used IDEs (Netbeans, Intellij) in the beginning but then started migrating away. They where just too heavy for me. Also, often IDEs do lots of stuff in the background such that you easily don’t understand fully what is going on. Now I settled using the ‘helix’ text editor. It provides some IDE-like features like integration with language-servers, syntax highlighting, code completion, file navigation, code navigation, symbol search. But there are no dozens of buttons for triggering compilation etc. You do all this on a separate terminal.

    Quite handy for such setups are tiling window-managers like i3. They allow you to easily fit the editor and terminals on the screen. This way you also don’t need the build-in terminal of an IDE.

    • teri@discuss.tchncs.de
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      IDEs can automate build/test flows. But you can also automate them with scripts. This has the significant benefit that you can check this scripts into your version-control system (git) and publish them together with the code. Then your collaborators can use the exact same scripts. With IDEs that’s really not working well because it would force others to use the same IDE as you. Possibly the IDE configuration is not even version-control friendly.

  • Hexorg@beehaw.orgM
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    In this Thread: people telling you how IDEs suck then proceed telling you how to turn their terminal based text editor into an IDE

    • SkierniewiceBoi@lemmy.one
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      There’s a learning experience to it though. When coding in intellij I’m just using writing some java without deep understanding how the build system works ans what’s done underneath. Setting up some nvim with lsp forces you to focus more on the whole process so I’d say it can be beneficial

      • Hexorg@beehaw.orgM
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Yes but people should also factor OP’s experience into recommendations. They are not a regular developer, self-taught programmer who uses C++ for work. They are probably not familiar with many build-chain internals, command line debuggers, and compiler search paths. So while everyone in this thread can probably agree that something like code completion is better than not having code completion, I think it’s also fair to get op started with something quick and easy like VSCode and then once they are comfortable they can go figure out how to install cool plugins for neovim

        • SkierniewiceBoi@lemmy.one
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Yup that’s also true, I’ve hit the wall multiple times when trying to use vim/emacs. Now I’m in neovim and feel like I get a better understanding of buildsystems but I won’t say it’s something that everyone should start with. I don’t know what the C/C++ intellij is though. On windows it’s probably visual studio. On Linux maybe vscode but I’d say if op wants to try some morw serious ide then clion may be a better choice

  • tranzystorek_io@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    I think there are two key aspects to IDEs:

    a) the larger the codebase and the less familiar you are with it, the more of a nightmare it will be to hunt bugs or search places to insert code; this is where an IDE becomes extremely helpful by e.g. letting you search a struct across multiple modules, showing lints, compiler errors etc.

    b) IDEs are only as helpful if they can be configured with your codebase, and sadly there are probably numerous codebases that won’t play nice and let you crate a working config

  • snaggen@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    There are “simple text editors” with IDE like features also, like neovim configured with LSP, Helix aso. And for languages that will infer types, it is really nice to have the editor show the types as inlay hints.

  • SNEWSLEYPIES@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago

    For my money: yes, you should use an IDE or something like one, but not because you’re “missing out” - rather, because a plain text editor will limit your progress.

    There are (still!) people around who think it’s some sort of badge of honour to only use text editors, but in reality, this means they miss the syntax errors and typoes that we all make because we are human, and end up wasting hours looking for them when an IDE would let them see them.

    You wouldn’t turn up at a cookery school saying “I’m still a beginner, so I’m only going to use this pair of scissors” - specialised knives and utensils are part of the chef’s toolkit, and becoming a better chef is just as much about learning to use them effectively as it is about memorising recipes. It’s the same with programming.

    • isosphere@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I stick with vim for years out of that sort of badge of honor. Now I use vscode and nobody is taking it from me.

      You can do almost anything in vim or emacs, but I can do it faster in vscode. It’s a really fantastic tool and it’s completely free.

      • Deebster@beehaw.org
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        Do you use the vim plugin for VSC to keep your speedy navigation? I miss things like “select up to the next quote” but I’m not enough of a vim user to make the switch myself.

      • _bug0ut@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        2 years ago

        I stick with vim because every time I try to use vscode, I get so bogged down trying to set things up and figure out how to use it that I end up just being like, “eh, fuck it - I’ll do this later.”

        Some younger admins and engineers look upon me with awe, but really I’m just secretly a really lazy bastard. I don’t even pack plugins into vim anymore to make my life easier. Just plain old vanilla vim.

        • Hexorg@beehaw.orgM
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          At the end of the day there’s some cost-benefit analysis for time spent setting up environment vs time saved by previously setup features. Autocomplete saves a good amount of time but even something like same-file-word suggestion can save a lot of time without any setup.

          • _bug0ut@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            Yeah, for sure - I don’t deny that at all. For me, it’s a confluence of general burnout, laziness, and comfort with what I already know… and likely not a really urgent need to move to a proper IDE. The majority of my coding is small, one-off Python scripts where I can :wq and run it and then open it back up to refine, fix bugs, add debugging prints, etc.

            • Hexorg@beehaw.orgM
              link
              fedilink
              arrow-up
              0
              ·
              2 years ago

              Even for that there are some nice (vim and otherwise) features where clicking on an error automatically opens up the right file and sets the cursor at the location of the error. Or just seeing errors in a separate panel from the rest of the code.

  • True Blue@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    The line between IDE and text editor is kinda blurry nowadays anyway. I don’t know that much about Geany, but many of the text editors I’ve used were basically full IDEs, except that the IDE features were opt-in.

    Currently I use VScodium as my editor, and I’ve been happy with it. I hear a lot of good things about Kate too, and as a KDE user, I feel like I should try it some time. Kate to me looks like the same spirit of text editor as Geany. Maybe if you’re comfortable with that style of editor, give it shot.

    The 2 editors that have really been catching my eye lately have been Helix and Lapce. I think it’s really cool that Helix went with a Kakoune style “selection → action” system instead of the normal vim style “action → selection”. I think Lapce is trying to be a similar style of editor to Vscode, with simple IDE features by default, but then an extension sytem to expand that. Maybe an editor like that would be approachable to you. Although unlike Helix, Lapce seems to be less production ready for now, so maybe wait on that.

    For now you could of course just try VScode (or VScodium if you’re like me and want open-source software) since that’s a popular one right now.

    • Ministar@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I was looking at Kate as Geany does not seem to get a lot of feature updates, but unfortunately i dont have KDE at work and there does not seem to be a flatpak version of Kate.

      I did not know about VSCodium, and I do actually prefer open source software so I will check this out. Thanks

  • StrayCatFrump@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago

    I’ve been doing development in many languages over the years, including C++, Java, Python, and Go. i do everything from the command line: tmux for multi-tasking, vim for editing, the specific compiler and other language tools, makefiles, grep, etc. I am plenty productive, and I find the speed and generality of the tools I use make up for the features an IDE might have out-of-the-box and that I have to either take a couple more steps to accomplish or write some kind of script to help with. Basically “the command line is my IDE”. Also nice to not be dependent upon a windowing/desktop environment to get stuff done. Nice and portable and lightweight on dependencies.

  • IndependentRanger@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    Interesting question. Personally, I started with a text editor transitioned to vim, then to VSCode and now I’ve settled on a customised neovim install.

    I’m a believer of PDE, that is personal development environment. It’s a concept one of the Devs of Neovim TJDeVries talks about.

    In essence it’s the idea of building your development environment how you want it. Personally, Neovim allows me to do this. For example, I have a VSCode style debugger, incredibly fast searching with ripgrep, vim keyboard shortcuts and uses the same language servers as jetbrains products.

    Here’s a link to his full conversation on the topic: https://youtu.be/QMVIJhC9Veg

    Stay awesome!

    • gears@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      Can you elaborate on your debugger?

      I’ve been trying to switch to neovim, and I’ve got a pretty decent setup with treesitter and also lspconfig. My search and debugger are still non-existent and I’m not sure what is best.

      I write python and c/c++ (for MCUs) at work, and I’m curious what the state of integration with potential debuggers is.