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?

  • IndependentRanger@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    1 year 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
      1
      ·
      1 year 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.

  • Hexorg@beehaw.orgM
    link
    fedilink
    arrow-up
    5
    ·
    1 year 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
      2
      ·
      1 year 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

    • zmhanham@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      It’s less about “sucks” and “not sucks” but the point I think is important is that IDEs are generally a closed system. You can’t modify them very much, if at all, to fit your needs. If the IDE out of the box is a good fit for your needs then by all means use it! But if there comes a time that you need to do something that isn’t supported by the IDE you either need to drop to the command line or attempt to hack together some solution in whatever limited extension language/API they support. Or hope that an extension already exists.

      Vim, emacs, and other programmable editors make it easy for you to do that one specific thing you need to do. And there is very likely already a package/plugin that someone made for it. But if there isn’t, it’s so much easier to modify a programmable editor than a closed IDE.

      So really it just comes down to what do you need from your editor? Now if you’re someone like me, I need to try to perfect the way I program. Always trying to find the most efficient way to do some common operation. But if that’s not you that’s totally ok (and honestly I envy you lol)

  • SNEWSLEYPIES@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year 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.

    • catacomb@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Yes and the refactoring, suggestions and, in some cases, debugging tools are also very useful.

      I used to be a text editor only kind of person and thought it meant I was a better programmer who didn’t need a crutch. In reality, I was wasting time whenever I wanted to rename something, never had any help regarding the standard library so wasted time looking up parameter ordering and namespace names. I had to compile to find syntax errors.

      With an IDE, I can pretty proficiently write code in (almost) any language thrown at me if it gives me linting and suggestions. I’m nowhere near as fast as in languages I’m comfortable with but it’s such a huge help that it gets me most of the way there.

    • isosphere@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      1 year 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
        1
        ·
        1 year 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
        1
        ·
        edit-2
        1 year 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
          ·
          1 year 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
            ·
            1 year 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
              ·
              1 year 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.

              • _bug0ut@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                Yeah, I used to configure vim with syntax highlighting and auto-suggestions and whatever else. I just like… don’t anymore. I’ve been feeling less burned out over the last few months and it seems, at least, like its still lifting slowly. Maybe when I get the energy back, I’ll take another crack at vscode.

  • luciole (he/him)@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Step by step debugging is very enlightening when it comes to inspecting execution. If your current setup doesn’t include that, I’d strongly suggest to revise it.

  • Guzzi@moto.teamswollen.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year 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.

  • zmhanham@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    I think you should give (mostly) everything a fair try. At least anything that’s “different” than what you’re used to. As a programmer, you should always be striving to improve your workflow. The ideal workflow is different for everyone. The standard text editing experience with a mouse / using control arrow keys etc to navigate is fine and familiar. But you should really at least experiment with modal editing like vim or kakoune. Beyond just the way you type text, the way you interact with the editor (and by extension the project you’re working on as a whole) is important to consider too. Make files are a great way to simplify those complex commands you run, but there may be a way to achieve those actions in the editor you’re using. Compilation, testing, and running code is just one thing. But what about something like git? Magit on emacs is an example of an extremely well thought out integration of git into an editor. Autocompletion is a whole other story, but you can get that in mostly any kind of editor with LSP integration.

    Anyways the point I’m trying to make is that you should never be stagnant in how you program (editor) and what you program (language, paradigm, domain, etc).

    Only time you should be stagnant is once you’ve at least considered the other options and you know what works for you. :)

  • souperk@lemmy.fmhy.ml
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    A good IDE takes the basics and supercharges them.

    Navigation along with block expand/collapse, make reading code much easier, they allow you to focus on what really matters.

    Syntax highlighting, inspections, and formatting allow you to focus on what you write and not if you missed a semicolon.

    Visual debugging is so much better that you just have to try it once, no debate.

    Run configurations, especially for tests, are a nice treat if you running multiple apps/different configurations.

    While there are many benefits to using an IDE, you have to keep in mind that they are not an one for all solution. Sometimes it’s better to open a terminal.

    Also, they are great as long as they assist your flow and not disturb it, you will need to spend time to figure out the configuration that works for you. I have been changing IDE configurationd since 2012 when I first used eclipse.

  • alefunguju@lemmy.one
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Personally, my path was from basic programming editors (Notepad++, PSPad) to IDEs (Eclipse, IntelliJ IDEA) to NeoVim which I use currently.

    I started out as a self-taught web developer pretty early. I worked with basic editors back then, and it was quite enough for my high-school tinkering efforts.

    I then transitioned to Java when I went to university and started my first programming job. During those days I used full-fledged IDEs, mostly IntelliJ IDEA, but played around with Eclipse as well. The biggest advantage of that was that it indexed the whole project semantically, allowing me to use project-wide auto-completion and to navigate between source files quickly. Also, Java’s build processes can get quite convoluted, which the IDE pretty successfully hid from me, which in hindsight is not a good thing.

    As I am quite curious about the internals of everything, I started doing C - mainly for assignments at the university. Initially, I used CLion for everything, as it’s basically just IntelliJ for C, but as I grew more and more frustrated with my Java job (both in terms of using Java itself, and in terms of company culture and stuff), I started looking for C jobs. Around that time, I incidentally started messing around with Vim and NeoVim, building out my config, finding Language Servers for languages etc. I fell in love. I love the versatility of using discrete tools for things, without them being bound to a big IDE. I love how everything is fast. I love how I can swap things out easily. The only thing I’m missing at the moment is a good GUI debugger for C - currently making due with terminal-based GDB. BUT I have recently started playing around with making a custom GDB GUI, which might potentially be accepted as a project at my current job, so I’m hopeful about that part as well.

    Anyway, if I were to work with Java or C#, I would still probably use an IDE - the languages are not really suited for writing with just an editor. But C, C++ and many other (saner, hehe) languages - I can imagine I will be using NeoVim or something similar for a very long time into the future.

  • Zapp@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I don’t feel like I have to make that decision anymore.

    I use Vim and VSCodium, because I can enable IDE functionality gradually, and only enable what I need.

  • ガブリエル@lemmy.one
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    It’s up to you and to your needs. Do you like configuring your software to your preference? If so, you’ll enjoy fiddling with configurable text editors. Do you have time for that? Or can you do that well enough so that you benefit from it? You have to answer those questions, as it depends on your constraints.

  • StrayCatFrump@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year 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.