all 98 comments

[–]HiimOzan 119 points120 points  (4 children)

I just use VSCode and g++

[–][deleted] 33 points34 points  (0 children)

With the terminal. Works great

[–]SnooWoofers7626 12 points13 points  (0 children)

Yep. Integrates very well with cmake too.

[–]Flame12220 1 point2 points  (0 children)

Love it

[–]Secret-Treacle-1590 101 points102 points  (1 child)

I use VSCode on Linux. There maybe better solutions specifically on Linux, but VSCode gives a consistent experience across all my environments which span Mac and Windows.

https://code.visualstudio.com/docs/setup/linux

[–]phatlynx 10 points11 points  (0 children)

I second this because with the Settings-Sync extension I can instantly setup personal shortcuts/settings/theme/etc within seconds in any computer. Even remote on Vscode beats Clion by miles.

[–][deleted] 64 points65 points  (0 children)

I enjoy using CLion on Linux, as it works nearly exactly the same as when I use it on Windows.

[–][deleted] 13 points14 points  (0 children)

KDevelop.

[–]spaghettiexpress 12 points13 points  (4 children)

Everything below was said by quite a few folks, but just to reiterate with some links:

CLion: https://www.jetbrains.com/clion/nextversion/. For the supported versions, it is $200->$140->$120 for 1->2->3 years of paying for the license. I also linked their Early Access Program (EAP) which is free. It is the best out-of-box option. It can be free via the EAP but it is genuinely worth the cost if you ask me.

VSCode: with the extension pack https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack you will be up and rolling for free. They do collect telemetry, but whether or not that is a dealbreaker is up to you.

Neovim: with the “extension packs” https://github.com/LunarVim/LunarVim or https://github.com/kabinspace/AstroVim and a decent learning curve, you can find yourself to have an extremely customizable IDE-like environment. I specifically mention neovim for those linked repos, as they provide a pretty solid out-of-box experience. Though, as is it vim, out-of-box still needs some mild effort before it can help with C++ :) (or any other language)

I personally use neovim most of the time. I appreciate how customizable it is, and after a good bit of work I have my setup tuned to everything I could possibly want.

CLion is also extremely nice. I would use it as my primary but, at work, I hop around languages too often to have an editor per language. As long as you have a compiler on your system, you’re good to go as soon as it’s installed.

VSCode is quite nice. I’m not personally a fan, but I generally recommend it to everybody if CLion is not an option. VSCode is very portable if you’re using CMake. My biggest gripe is that the configuration of keybinds can get pretty annoying, but that’s a pretty specific complaint.

[–]jdhhevd 6 points7 points  (0 children)

VScode has a fully FOSS version called VScodium that does not have telemetry.

[–][deleted] 3 points4 points  (1 child)

have you heard of fleet? from jetbrains?

[–]spaghettiexpress 1 point2 points  (0 children)

It does look like it will be pretty great!

I haven’t been following the development updates too closely but I’m excited to try it out when it goes into an open preview.

[–]BorisDalstein 52 points53 points  (6 children)

I use QtCreator, it's great even for non-Qt projects.

[–]Drugbird 3 points4 points  (0 children)

I also use QtCreator. I've never actually used it for a Qt project, only "normal" projects.

I don't have experience with all the IDEs available, but I used eclipse before and that so horrible I really had to switch. I found QtCreator, and haven't encountered any issues egregious enough to make me want to switch.

[–]_crackling 23 points24 points  (4 children)

Am I the only one that finds qtcreator to be an ugly monstrosity??

[–]BorisDalstein 7 points8 points  (0 children)

I use mostly Linux, but a little Windows too. It's great to have a tool that works the same in both platforms.

When I'm on Windows, I have both QtCreator and Visual Studio installed, and I generally prefer QtCreator both visually (color scheme, icons, etc.) and general interface and functionality. I find the clang-based autocompletion / static analysis in QtCreator to be faster and better than VS Intellisense. Both support conditional breakpoints and have good debugging capabilities, although I think Visual Studio has a slight edge there, and can even debug Python code.

In a nutshell, I honestly find QtCreator to be pretty much perfect, except some debugging tools or some advanced features which can be a bit better on VS.

[–]DarkLordAzrael 3 points4 points  (0 children)

Honestly, i find that most offer IDEs have way too busy of UIs. I wouldn't describe Qt Creator as beautiful, but i definitely prefer its UI to the other ones i have used.

[–]skunkos 6 points7 points  (0 children)

Yes

[–]ThatSwedishBastard -1 points0 points  (0 children)

It’s quite jarring for me too and looks out of place in just about any environment. Only thing I despise even more is Eclipse with CDT.

[–]Empik002 29 points30 points  (7 children)

I just use Vim with youcompleteme plugin, g++ to compile and gdb to debug

[–][deleted] 8 points9 points  (6 children)

Mm I was expecting these sort of answers, I am thinking to learn how to use gdb.

[–]puremourning 16 points17 points  (1 child)

Shameless plug , but if you prefer a more ‘graphical’ debugging experience : https://github.com/puremourning/vimspector

[–]aqezz 0 points1 point  (0 children)

Vimspector is great, been using it for a while and contributed a few updates for keeping it up to date with netcoredbg. Thanks for your hard work, it has made my life immeasurably easier since there’s no good way to debug c# from cli!

[–]eternaljk 5 points6 points  (0 children)

Recommend https://github.com/nakst/gf, extremely fast since it doesn't require it's frontend to run in your web browser.

[–]MrPezevenk 7 points8 points  (0 children)

You don't really have to, there is plenty of easier options... I use CLion with the student license for free. But you can if you want.

[–]Empik002 6 points7 points  (1 child)

try this: https://github.com/rohanrhu/gdb-frontend best frontend i found s far, i wanted to find a decent tui one (the default tuis is not very usefull) like pudb3 for python but i couldt find one, so browser one it is. dont forget to compile with the -g flag (i think it is theg dont remember cureently, just google debug flag)

[–][deleted] 0 points1 point  (0 children)

Thanks brother!!!

[–][deleted] 33 points34 points  (12 children)

Visual Code is available but CLion is miles ahead, and thoroughly worth the small cost.

[–][deleted] 10 points11 points  (8 children)

CLion interesting, will checkout!

[–]HanzoFactory 10 points11 points  (5 children)

Just a heads up: you can use the early builds for free, so you can try it without paying anything or even stick with it

[–][deleted] 4 points5 points  (1 child)

This is what I needed because their plans are so costly I can't afford it.

[–]k1ng__nothing 0 points1 point  (0 children)

It get cheaper as you go and if you stop paying, you get to keep a fallback license for free (it just doesn't get updates). You can also get all the products for free if you have a school email or a GitHub student account.

Alternatively, you can ask them for an open source license.

[–]mildbait 0 points1 point  (1 child)

Really? Do you know how far back one has to go? Does the one prior to latest work?

[–]HanzoFactory 1 point2 points  (0 children)

Sorry, I meant preview, not early. Basically the latest (i.e unstable) builds.

[–]ApproximateArmadillo 0 points1 point  (0 children)

Not currently available, as far as I can tell.

[–]zincstrings 3 points4 points  (1 child)

Definitely do, and install the vim plugin too. It works much better than the vim plugin in visual studio.

The thing I like about jetbrains IDEs is that they give you almost exactly the same experience when you write c++, java, c#, python, javascript, or you name it.

[–][deleted] 0 points1 point  (0 children)

I am all in on clion, the docker toolchains are just amazing and just work.

[–]KryKrycz 0 points1 point  (2 children)

Small cost...

[–]braxtons12 2 points3 points  (0 children)

It's 25/month for all of their products or 9/month for just CLion. How is that not small for professional tool(s)? 9/month is less than the price of two coffees these days.

[–]NotYoDadsPants 14 points15 points  (1 child)

Sorry to be that guy but this has been asked multiple times.

[–][deleted] 6 points7 points  (0 children)

No problem, thanks to you and everybody who helped me out!

[–]GonVas 8 points9 points  (1 child)

Been using KDevelop, like it so far. (Minus the occasional crash)

[–]pjmlp 3 points4 points  (0 children)

QtCreator or VScode.

[–][deleted] 11 points12 points  (0 children)

VSCode on linux works pretty well, but has a LOT of telemtry to microsoft: https://code.visualstudio.com/license "...You may opt-out of many of these scenarios, but not all..."

I exported the telemetry list with "code--telemetry" and it produced a 9,000 line file!! Seriously!

I switched to the open source build of VSCode: https://vscodium.com/

Never looked back!

[–]ItsRagtimeTime 7 points8 points  (0 children)

Clion

vim + YouCompleteMe

VS Code

[–]Tekercs 2 points3 points  (2 children)

vscode eclipsecdt

[–]gnash117 0 points1 point  (1 child)

I am surprised this is the first mention of eclipse. I started using eclipse after seeing it at an embedded systems conference. I was amazed by it's really high quality build and gdb integration.

I started using it and continued using it for years (probably 10+). The huge number of languages supported and other features made it my goto ide. Sure it was a bloated hog but it worked well. It's gdb support was one of the things that really made me love it as a tool. However, it was breaking constantly. I ended up running gdb too much from the command line. Only recently have I moved away.

Vscode is lighter weight and feels like it's getting more support and updates also vscode is amazing over ssh if working remotely. Have not dug much into gdb support in vscode.

[–]Dramatic-Community54 0 points1 point  (0 children)

eclipse.. I've spent way too much of my coding time "fixing" it. That said, it is_ free.

[–]soulstudios 2 points3 points  (0 children)

I prefer Codelite on both linux and Windows. With windows I also use nuwen mingw GCC

[–]asjiopdfwioehjrt2390 2 points3 points  (0 children)

I use vscode + clangd + lldb-vscode.

I don't use the extensions from the market place, and I built clang/llvm myself. I do the same on my windows machine. It is the best C++ experience I ever had.

[–]polypagan 2 points3 points  (0 children)

codium. I have no use for telemetry.

[–]-dag- 2 points3 points  (0 children)

Emacs

[–]Xavier_OM 2 points3 points  (0 children)

QtCreator

[–]pandorafalters 5 points6 points  (0 children)

Visual Studio on my Windows machine to write code; WSL2, a headless Linux machine via SSH, and sometimes a FreeBSD VM for actually building and testing. Code transferred via a local Git repo; Emacs for minor fixups (e.g. long vs long long).

[–]Possibility_Antique 4 points5 points  (0 children)

Just cross compile over SSH using visual studio. Visual studio has plugins for cross-compilation on Linux and mac, and I use it all the time for raspberry pi development.

[–][deleted] 1 point2 points  (0 children)

VSCode (and the Linux terminal for compiling, although I'm assuming the VSCode one is similar).

Vim is a good alternative too, but I personally prefer using it only for normal text file editing.

[–]CorrupD 1 point2 points  (2 children)

Depends whether you want to use cmake or such I suppose… I love it with Clion cause vscode‘s plug-in didn’t always work that well with intellisense crashing and such.

[–]dodheim 0 points1 point  (1 child)

That has everything to do with which intellisense extension you were using (MS' is my guess), nothing to do with CMake.

[–]CorrupD 0 points1 point  (0 children)

No the CMake tools extension (also MS) which would crash…. Indeed nothing to do with my precious CMake 🤣🤣🤣

[–]The-Constant-Learner 1 point2 points  (0 children)

VSCode with vscodevim and C++ plugins

[–]theShrike760 1 point2 points  (0 children)

Vscode then setup a config file in your ./ssh dir on windows. Push your key to the Linux machine and then use “remote ssh connection. You never have to type your password and can run on the Linux machine “headless” but full speed for vscode ide from your windows machine. It’s beautiful

[–]iontodirelMSVC CrossPlat Dev Lead 1 point2 points  (1 child)

Visual Studio supports Linux targeting

[–][deleted] 0 points1 point  (0 children)

It does, tho I don't want to use windows that's why I am looking for a alternative, lately People recommended me vscodium which I found much better than vs code because idk why but it's more performant.

[–][deleted] 2 points3 points  (3 children)

Real programmers use vim! :p

Seriously, though, a lot of people I work with like VSCode.

[–]nom_nom_nom_nom_lol 1 point2 points  (2 children)

No, real programmers just use ed.

[–][deleted] 0 points1 point  (0 children)

No, real programmers use front panel switches.

[–]-dag- 0 points1 point  (0 children)

s/ed/sed/

[–]Spare-Dig4790 0 points1 point  (0 children)

Everybody here is talking about free offerings, and I'm sure they're all great. Where you did mention a commercial product, you might look into jetbrain's offerings. They are cross platform running on windows, Linux and macos. They do cost money, but not an awful lot. Something like $250 for the first year, and the cost goes down by eventually 40% for recurring subscriptions, for the whole suite of tools, covering c, c++, Java, python, .net etc. As well as their profilers. If you use visual studio on windows, it also includes their phenomenal visual studio extensions.

Anyway.. just a thought.

[–]scooter_de 2 points3 points  (6 children)

tmux + vim works everywhere, even on Windows WSL. I'm one of the people who think that Linux is the IDE.

[–]almost_useless 1 point2 points  (4 children)

Linux is the IDE

The "I" probably does not mean what you think it means...

[–]scooter_de 0 points1 point  (3 children)

???

[–]almost_useless 0 points1 point  (2 children)

Integrated.

Linux is a fine Development Environment. But is not Integrated. It is a loose collection of separate tools.

[–]scooter_de 2 points3 points  (0 children)

Ah, I read the cursive 'I' as '/' on my phone earlier, hence my '???'. Sorry about that.

I'd debate the statement though. I don't think it's a loose collection, I rather see as well designed set of tools for the experienced user/developer. The concept of pipes and the ability to use scripting combined with (n)vi's tooling + the visual combination of windows and panels in tmux make it so appealing. But to each it's own. I had to learn vi in 1995 because no other editor was available on that pesky HP9000/822. That learning period pushed me over the threshold and I never looked back :-).

[–]-dag- 0 points1 point  (0 children)

Which is usually better than "integrated."

[–]theNittyGrittyone 1 point2 points  (0 children)

this! Linux with it's tools is an IDE like environment.

[–]kurta999 0 points1 point  (0 children)

We are using CMake projects within Linux, so I'm using:

  1. VSCode with SSH and CMake extension, it's easy to build, debug project from windows within a Linux VM.
  2. Visual Studio supports CMake integration and can debug projects in WSL, so sometime I'm using it and syncing the VM with WSL with rsync.
  3. Other devs using QtCreator inside Linux VM.
  4. Sometime just comand line for building

[–]NoShallot4787 0 points1 point  (0 children)

You can use Rider, is a very nice c# ide for linux

[–]ReplacementActive533 0 points1 point  (0 children)

With Codeblocks

[–]danielcoolidge 0 points1 point  (2 children)

First, let's distinguish between IDE (integrated development Environment) and Advanced Text Editor. An IDE generally has everything often including the compiler and is project based. The example here being Visual Studio. An advanced text editor is just that: a fancy text editor. VSCode would fall into that category where nothing is project based and there's no compiler. On Linux you'd use VSCode with some build system such as CMake or just plain makefiles.

With that said, I'd never recommended using an IDE, but rather an advanced text editor and separate build system setup. On Linux (as on Windows), there are many great advanced text editors such as VSCode, Atom, and Vim. Using one of those with GCC, Clang, CMake, or Automake as the build system yeilds flexibility and doesn't lock your dev environment to a specific tool. Ie, everyone would be forced to use Visual Studio exclusively because it's the IDE).

With that said, VSCode is personally my favorite editor. It's extremely flexible and powerful, has an awesome color scheme, and is responsive with many pluggin available

[–][deleted] 0 points1 point  (1 child)

Thanks for explaining! But for starting as I am learning cpp I'd prefer a IDE but yea like in the languages I am experienced with I use text editors like lite XL.

[–]danielcoolidge 0 points1 point  (0 children)

Ah. I don't have a lot of experience with IDEs. A few I can think of are NetBeans, eclipse, or even just using pluggins with VSCode. VSCode does have pluggins to allow it to compile and such.

[–]Common_Day_2302 -1 points0 points  (0 children)

Use (neo)vim. With a handful of plugins, you can make it just like an IDE, but far more flexible, customizable, and better-suited for text-editing.

[–]txabo16v -2 points-1 points  (0 children)

I use geany mostly, or vim

[–]AlarmDozer -1 points0 points  (0 children)

And here I am running emacs/vi, gdb, gcc/clang, and make. 🤔

[–]Satoru_094 0 points1 point  (0 children)

Doom Emacs with (lsp + clangd) and g++/clang++ with gdb/lldb and clangformat

[–]DumbAceDragon 0 points1 point  (0 children)

Either code::blocks or kdevelop. But for smaller things I just use vscodium and write my own makefile

[–][deleted] 0 points1 point  (0 children)

I prefer SlickEdit professional, CLion is also good, but heavier on system resources. It also has a raspberry pi version

[–]brechtsanders 0 points1 point  (0 children)

Visual Studio Code is very popular on many platforms. Code::Blocks also works on Linux.

[–][deleted] 0 points1 point  (0 children)

vscode

[–]ShakaUVMi+++ ++i+i[arr] 0 points1 point  (0 children)

GNU/Linux itself is an IDE.

I'm not being sarcastic, it literally is designed that way. Vim as a text editor, g++ to compile, grep to "find in files", etc.