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?
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!
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.
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. :)
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.
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.
In this Thread: people telling you how IDEs suck then proceed telling you how to turn their terminal based text editor into an IDE
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)
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.




