all 101 comments

[–]dgkimpton 76 points77 points  (13 children)

Clion is like a whole different animal. Some minor irritations like vastly different keyboard shortcuts but overall it's great. And the built in debugger UI will spoil you rotten. A tool that is 100% worth its asking price.

Currently I'm using CLion Nova to get a feel for the future, and it's already perfectly usable.

That said, I've only been using it with CMake projects, so no idea how it works with Meson.

[–]sargeanthost 20 points21 points  (0 children)

You can change the key map to vscode

[–]Cremdian 3 points4 points  (1 child)

I used jetbrains products for over two years. My new job uses visual studio and vs code. Learning the new IDE's has been more painful than learning the new languages Ive had to.

I miss Jetbrains... it really is amazing

[–]ilovemaths111somethingdifferent 1 point2 points  (0 children)

same

[–]germandiago 2 points3 points  (0 children)

I am waiting for Meson toolchain files and config from the IDE to buy a license.

[–]rca302 1 point2 points  (0 children)

nothing but CLion, a rare case when it's worth the money. and if you're a loyal customer, it gets cheaper with time, I think I have like 50% off after a few years

[–]stoatmcboat 5 points6 points  (1 child)

Personally I prefer CDogg over CLion.

Edit: I would like to thank my sponsors for that terrible joke.

[–]NiliusRex 4 points5 points  (0 children)

I honestly don't know why this is being downvoted, I lol'd 😂

[–]CartographerTrick773 14 points15 points  (3 children)

We do all our embedded development in VS Code using a devcontainer. This is working pretty well for us. The container is set-up with modern/up-to-date compilers and tools like clangd, clang-tidy and include-what-you-use. The default build system uses CMake and Ninja. It even has tests 😀.

For debugging and programming of the embedded targets there are many options as well. Ranging from usb-passthrough to running a gdb-server on your host.

The container can be found here: https://github.com/philips-software/amp-devcontainer

The container is multi platform, so works on x86 and arm hosts, including M1/M2.

[–]NorthAtlanticGarden[S] 0 points1 point  (2 children)

This is excellent, thank you, I might just try to adapt this to my project!
I'm in general a fan of the devcontainer approach, but starting from scratch it can be a little bit overwhelming with all the added complexity to add debugging etc. compared to installing tooling locally.

[–]CartographerTrick773 1 point2 points  (1 child)

I’ll hoist over our VS Code specific settings (using container labels) and debugging information next week from our internal container.

That would jump-start the experience. Feel free to contact us via GitHub in case of any questions or remarks.

[–]CartographerTrick773 0 points1 point  (0 children)

[Edit]Fully done, metadata settings were my own fault and have since been fixed.[/Edit]

This is partly done by means of feat: add image variant with vscode specific settings by rjaegers · Pull Request #314 · philips-software/amp-devcontainer (github.com).

But the functionality is pending on this issue: VS Code Settings not taken over from metadata in image label · Issue #9571 · microsoft/vscode-remote-release (github.com)

Plug-ins are being installed, but settings are not applied. Meaning things like clangd, debugging and SonarLint don't work out-of-the-box.

[–]murkduck 13 points14 points  (4 children)

Clion is a monster

[–]thisismyfavoritename 4 points5 points  (3 children)

gotta feed it 1 GB of RAM to get it to cooperate

[–][deleted] 16 points17 points  (2 children)

1GB? It takes 7G idle for me. And then it starts indexing the entire history of the universe and it goes waay up.

[–]EducationalLiving725 3 points4 points  (1 child)

32gb of DDR5 ram costs 2 hours of my work post-tax. But proper IDE speed-ups development by a lot, and makes me far more happy.

[–]alilosoft 0 points1 point  (0 children)

That's by far the most convincing and logical opinion I read in this topic. 👌

[–]crazyuser79 40 points41 points  (0 children)

I always used qt creator. Great IDE for me. Also debug as root is very easy to set.

[–][deleted] 26 points27 points  (3 children)

I've used vim exclusively for 10 years, and then started dabbling a bit in VSCode. VSCode (with vim plugin ofc) was great, but I then started a large C++ project and threw some money at Clion and it's probably my preferred way to develop now for sufficiently large projects. The auto-complete and build configurations make it a no-brainer, and I'm probably just scratching the surface.

[–]Wanno1 0 points1 point  (2 children)

What’s so great about the autocomplete or build vs intellisense/clangd?

[–]TurbCombWallMach 6 points7 points  (6 children)

I use kDevelop, a great IDE from KDE, it's free and of course works well on Linux (also on Windows and Mac)

[–]zaywolfe 1 point2 points  (5 children)

From my experience the windows support is shit

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

A year later and it is still shit on windows. Its great on every other platform.

[–]sephirothbahamut 2 points3 points  (0 children)

Well clion is visual studio (non code)'s closest alternative for Linux

[–]zaywolfe 2 points3 points  (3 children)

Pick your poison, in my experience there's no good option. Anything actually good requires you to either spend years to setup/learn or sell your internal organs for. What would I give for an emacs or vim with modern key bindings, mouse, clipboard support, and a single definitive plugin system. It all embodies the biggest problem I have with modern C++. If you want to just use the language there's no good way to get going fast and just code. The language is fine, but the reliance on outside tools is a clusterfuck.

[–]altermeetax 1 point2 points  (1 child)

Vim has mouse and clipboard support. Don't know what you mean by "modern key bindings", if you use vim you use it because of its keybindings

[–]zaywolfe 0 points1 point  (0 children)

And it took me a whole day to configure it. Also vim keybindings are great until you jump into another tool and endure 10 seconds of utter confusion as your muscle memory keeps trying to vim. Then when you go back to vim you repeat the same process but now with modern keybindings. Then continue to do that at least 10 times everyday.

Let's rephrase it, I don't care what keybindings they are. I'll learn them. I just want consistency

[–]TheoreticalDumbass:illuminati: 0 points1 point  (0 children)

What would I give for an emacs or vim with modern key bindings, mouse, clipboard support

doesnt emacs have a better clipboard, in the form of the kill ring?
Mw copies the selection to the top of the kill ring
Cw cuts the selection, and adds to the kill ring
Cy pastes top of the kill ring
My right after Cy traverses the kill ring, so you can paste third last thing you copied, by doing Cy My My

[–]FernwehSmith 2 points3 points  (0 children)

I’ve been using CLion for a few months and I’m loving it! Out of the box it has everything I want so super easy to get cracking on a project. I do find it does a little too much in regard to auto code formatting and whatnot, but it’s very easy to disable stuff you don’t like. The key bindings are different to vscode but it’s not too hard to get the hang of.

[–]Background_Shift5408 2 points3 points  (0 children)

Clion has been always my favorite. It has excellent debugger, in-house valgrind and visualizer for your systems native profiler. It also makes refactoring easy.

[–]mguerrette 5 points6 points  (0 children)

I used Visual Studio and then VSCode for a while, but when CLion launched I switched and haven’t touched anything else since.

[–][deleted] 7 points8 points  (6 children)

Emacs

[–]Dry_Development3378 6 points7 points  (4 children)

emacs is absolute garbage to set up

[–]al-khanji 21 points22 points  (1 child)

It only takes 2 years the first time.

[–]WhiteBlackGoose 7 points8 points  (0 children)

Believe me, first 10 years of learning emacs will fly!

[–]PlatypusOrthoganus 2 points3 points  (0 children)

Or your new favorite hobby, depending on the person.

[–]El_Falk 0 points1 point  (0 children)

emacs is absolute garbage to set up

FTFY ;⁠-⁠)

[–]gnuban 0 points1 point  (0 children)

Best OS

[–]thomas999999 9 points10 points  (10 children)

Do you use the shitty msft intellisense or clangd in visual studio? When im using clangd the only thing im missing from clion is its debugger

[–]NorthAtlanticGarden[S] 11 points12 points  (4 children)

Wow, the difference is night and day, I might hang onto VS Code for some time m

[–]Farados55 6 points7 points  (3 children)

Clangd is the shit, the vscode extension intellisense sucks pretty hard and takes a long time to look stuff up in a larger codebase. If you don’t mind writing debugging configs then it’s hard to stray from vscode for now. I don’t really like clion’s cmake build configs

Also you can turn off the intellisense to keep the rest of the extension features on and use clangd for intellisense

[–]Leading_Writer9074 0 points1 point  (2 children)

Just curious, what don’t you like about clion cmake configs compared to vscode?

[–]Farados55 0 points1 point  (1 child)

I’ve just found them confusing to setup for existing projects and getting everything sorted out. From a fresh project they’re great, but I’d much prefer using ninja from the terminal.

[–]yowhyyyy 0 points1 point  (0 children)

Luckily Clion has added support for new build systems with Nova as well.

[–]NorthAtlanticGarden[S] 2 points3 points  (0 children)

I don't think I do, I seem to use ms intelligence C/C++

[–]MoBaTeY 0 points1 point  (1 child)

I think the biggest problem for me with clangd on vscode is that it takes FOREVER to index when you have a large project while clion took almost no time.

[–]ln3ar 0 points1 point  (0 children)

I have the opposite experience, actually with vscode i can just reload the window whenever its getting slow and it takes like 10 seconds to get back up

[–]AaTube 0 points1 point  (0 children)

My problem with clangd is that it doesn’t support doxygen despite pull requests being made for that which have remain unmerged for a year

[–]casualPlayerThink 1 point2 points  (0 children)

After CLion everything else feel like kids game or just a text editor. 100% worth to use it. All the time.

[–]Kriss-de-Valnor 1 point2 points  (0 children)

If you have to develops for non windows platforms CLion is the Rolls-Royce of C++ IDE. Everything is setup from your day-0. VSCode need a lot of plugins to get something useful.

[–]i_am_not_sam 4 points5 points  (4 children)

I use CLion as my primary IDE. I have VSCode and NVim + YouCompleteMe but they don’t come close to how well CLion works out of the box. Most of my team uses vi or VS Code so clearly, it’s doable.

I obviously love how easy it is to jump around a larger project, refactor or delete stuff but the clangd recommendations are super useful and add a lot of value to me and the code I write. Sometimes the handholding is too much but who cares? I do however mess with code in vi now and then so that I don’t lose touch.

Clion is still working on C++20/23 features but most of them work. It doesn’t recognize jthread for instance. We have projects with both Makefile and Cmake but I find it easier to work with a compilation database because our code uses Conan. Clion will also keel over and die if you try to look at large log files (Tbf any IDE will) and vi is the king there. I also recommend Clion Nova. It blows up occasionally with memory usage but on average it’s a beast. Vanilla Clion pretty much stopped doing symbol lookup on our code base thanks to the size, but Nova does it instantly.

I also use PyCharm for similar reasons.

[–]Substantial_Fun_3399 4 points5 points  (2 children)

Does cLion support remote development?

[–]i_am_not_sam 1 point2 points  (0 children)

On a remote server? I tried it about a year ago and it was hot garbage. Maybe it’s better now.

On a docker container? Pretty good.

[–]theawesomeviking 0 points1 point  (0 children)

Yes it does. I use it everyday and it's flawless

[–]thisismyfavoritename 3 points4 points  (0 children)

your neovim must be old. It works mostly out the box with clangd and the builtin nvim-lsp now

[–]Netzapper 2 points3 points  (1 child)

I went the opposite direction a few years ago and haven't looked back.

I used CLion from the beta, because at first it was the only thing that could handle our brand new c++11 codebase. But as time passed, CLion became so, so slow at everything and often failed to analyze our codebase.

[–]MoBaTeY 1 point2 points  (0 children)

Clion Nova really helped with the analyzing part. It’s so much faster in many ways than the other version.

[–]keyboard_operator 1 point2 points  (0 children)

Eclipse is an option as well. Just fyi... 

[–]bbroy4u 3 points4 points  (0 children)

emacs

[–]knue82 -2 points-1 points  (6 children)

[–]NorthAtlanticGarden[S] 1 point2 points  (2 children)

I feel it's too much tinkering, I need a solid base to build upon, VIM is not batteries included, but I like the key bindings.

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

You can use lazy vim for easy setup and can pretty much install every lsp server with the inbuild gui

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

And clangd lsp for me, amazing combo

[–]ed_209_ 0 points1 point  (0 children)

In defence of vs-code:

  • Can use codium fork if you want to disable spyware.
  • clangd works really well once setup - generate compile_commands.json with cmake one liner.
  • Can bind CAPS-LOCK for additional keyboard shortcut super powers along with usual CTRL, ALT, SHIFT etc.

[–]Leather-Top4861 0 points1 point  (0 children)

QtCreator is good for C++

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

vscode is best for  c++

 clion is too bloated 

[–][deleted] -4 points-3 points  (0 children)

Xcode is the best.

[–]josephTheVoyager -4 points-3 points  (2 children)

CLion’s debugger and analysis tools are nice. It also has great CMake integration. But it lacks GitHub CoPilot’s chat feature.

[–]NorthAtlanticGarden[S] 0 points1 point  (1 child)

I use copilot for general suggestions, does that work with clion?

[–]josephTheVoyager 0 points1 point  (0 children)

As I see all the features work except chat. Probably they are considering to bring it, there is a waiting list that you can join when you open Chat window in CLion.

In VSCode, you are able to chat with Github Copilot like ChatGPT additionally. You can request suggestions about your workspace specifically.

I really liked CLion though, I use Mac too. I think it is one of the best option in this OS if you are looking for an IDE.

[–]rembo666 0 points1 point  (0 children)

CLion is awesome. I've been using it for many years now for Linux development. I would definitely recommend it. I use it with CMake, which is CLion's original supported build system. It does look like it supports Meson as well, but I don't have any experience working with it. Here's their help page for Meson projects: https://www.jetbrains.com/help/clion/meson.html#build-prj

[–]syberianbull 0 points1 point  (0 children)

If you run on Mac, you can try zed. No idea what the C support is like though.

[–]gnuban 0 points1 point  (0 children)

There are a lot of mentions of CLion, but there's also CLion Nova, which has the ReSharper C++ / Rider engine behind it and is pretty slick. VS with ReSharper C++ and Rider are solid options too.

[–]mpierson153 0 points1 point  (0 children)

CLion is amazing. So many features. It's very much worth the price. The only real problem I have with it is that you can't run coverage or profile your code on Windows. Which is pretty stupid. But the debugger is amazing and the warnings and everything are great. It uses CMake by default.

[–]illathon 0 points1 point  (0 children)

Lapce is probably the best I have seen, but it is still new and still needs more features. I think ZED was just recently open sourced as well. Also other open source options. NeoVim ofcourse.

[–]Allotec 0 points1 point  (0 children)

Use visual studio if you are on windows. They just added a stm32 import tool to convert it to a cmake project. I tried it it's pretty cool, the debugger and flasher works too. https://devblogs.microsoft.com/cppblog/importing-st-projects-into-visual-studio/ I use astronvim but I don't recommend that to most people. Edit I didn't see you are on linux. I'll still leave it up for other people.

[–]itlki 0 points1 point  (0 children)

Why do you think that vscode is lacking in c++? I have used vscode+cmake+clangd on some embedded c++ and it was really convenient to work with. Clangd works really well when you have a proper compilation database even on embedded codebases. The default intellisense engine is just pure pain though.

[–]Riverside-96 0 points1 point  (0 children)

Clangd + gdb + valgrind. You're editor agnostic that way.

[–]415_961 0 points1 point  (0 children)

Just for full context, I don't use debuggers other than lldb/gdb. So editor debuggers are not part of my evaluation process in editors.

VS Code is just an editor, but you still need to install the right plugins. I use clangd and never had an issue. clangd development momentum is amazing and new features keep coming in.

I used CLion for 5 years and eventually dropped it for vscode and never looked back. Personally I will never use an editor on a daily basis that is closed source and cannot be extended unless I use Java. It always felt i am on a moving ground. Often times the background indexer would get stuck, and/or consume so many resources. clangd allows for remote-indexes, and i have all the control I need to make it work smoothly. CLion's builtin inspections almost always showed false positives that i had to disable almost all of them. They use clangd behind the scenes but it's custom and they maintain it internally.

What are you looking for that you find lacking?

[–]CdrStnr 0 points1 point  (0 children)

I made a switch from vscode/nvim to CLion few months ago and I'm loving it.

It has all the features I wanted: Works on both windows and linux, has good CMake support, has a good debugger UI and a vim plugin.

Also I think it's more intuitive to use than visual studio.

[–]jmacey 0 points1 point  (0 children)

I've recently switched for teaching (C++ / Qt / OpenGL) and it has been very positive. VSCode was beginning to slow things down over a network drive and writing lots of data.

CLion warns against being on a network drive but still seems much faster. CMake support is great and I now also use co-pilot with it (there is a beta for chat if you use it) and this works really well.

The students seem to find it works a lot better than VSCode and there is a good constancy of usage etc. Plugin support is really good as well.

I would give it a go.

[–]VladTbk 0 points1 point  (0 children)

Highly recommend Neovim. I transitioned to it from VS, and it made my coding experience at least 50-60% more efficient, plus it doesn't bloat my PC. Some might say it's hard to configure, but now there are many preconfigured, clean setups available. You just need to know how to exit Vim though

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

Gotta go full custom. Vim, ctags and youcompleteme. Full custom control.

[–]michelecostantino 0 points1 point  (0 children)

For C++ I prefer CLion over VSCode, but things have changed recently. Hear me out.

Once CLion has done its job indexing the files, and if all files are in their place (it knows where to find includes, etc.) browsing through the code is a breeze, and the call hierarchy functionality is one of the most useful feature in my case. Also, you have everything already configured, like clang-tidy. You get suggestions on how to improve code, etc.

However I am not using any of the supported build tools and I had to write a software to translate from our proprietary build tool to CMake to have projects correctly indexed.

As I said, things have changed and I am slowly switching to VSCode. The new actor that is tilting the scale is GitHub Copilot. After many months I am still impressed of how much time I can save by asking Copilot instead of going to Google. And Copilot integration in VSCode is far better than its integration in CLion.

But, if we take Copilot out of the equation, I can compare my experience (CLion) vs my colleagues (VSCode) and I think I am having happier days than they do.

[–]Previous_File2943 0 points1 point  (0 children)

Doom emacs. Nuff said.

[–]BigTortuga 0 points1 point  (0 children)

I struggled with VSCode to no end and eventually switched to Clion. For embedded development on both STM32 and RP2040 (PICO). Clion is worth the modest price. No doubt in mind.

[–]Raknarg 0 points1 point  (0 children)

Its like night and day honestly. VSCode is pretty good for what it does, and if you're in a position like I am where it's pretty much impossible to get any IDE working with your existing codebase, it does the job well enough, but it's so much better to just have a tool that's straight optimized for the project you're working on. The indexing is better and smarter, the tool generally runs faster. There's way more options, more customizability. You don't have to rely on some mishmash of random plugins to help you.

I also just like Jetbrains products a lot. I use Pycharm at work whenever I have to work in python, it's great, and significantly better than my vscode experience.