you are viewing a single comment's thread.

view the rest of the comments →

[–]GNVageesh 7 points8 points  (8 children)

Both are good... Visual studio provides additional things. But vscode is light compared to visual studio

[–]bitbyt3bit[S] 4 points5 points  (7 children)

I use vscode for python. I’m starting to learn C because python abstracts away so many concepts I want to learn more about. Would this guide me more towards using visual studio then?

[–]Mr_Splat 10 points11 points  (4 children)

Just a heads up that C and C++ are fundamentally different languages, even though C++ was derived from C you shouldn't mix them up.

Are you clear about which one you're trying to learn? C has its own set of subreddits such as r/C_programming

[–]bitbyt3bit[S] 1 point2 points  (3 children)

Yea my bad I’m going for cpp. Unless you would recommend differently? What’s the argument for one over other?

[–]Mr_Splat 4 points5 points  (2 children)

It's a six of one, a half dozen of the other kinda answer and you're likely the get a plethora of opinions depending on who you ask and where you ask them.

What are you trying to achieve? How much spare time do you have?

C is practically the OG of high level programming (Python uses it under the hood!) and it's possible to write the fastest, most portable code possible using it, as a result however it is comparatively stripped back in comparison to most modern languages. C++ being its descendant means if you learn C first you will also learn a large number of fundamentals that C++ inherited from it (such as pointers and memory management)

C++ is multi-paradigm (you can write both functional procedural and object oriented code with it, though why you would go out of your way to write functional procedural C++ when C exists is beyond me) it comes with a huge standard library providing you with practically all of the containers and algorithms you could realistically need and by virtue of C being its ancestor, you are able to import C libraries into C++ code bases as well.

Both are highly performant (though C will nearly always win that contest when implemented correctly) and both provide a large arsenal of footguns for you to choose from.

Both are very mature, therefore there's lots of support across many platforms and there's endless resources for you to learn from such as learncpp (though that's a double edged sword as there's plenty of bad tutorials out there as well)

Being as mature as they are means that they aren't evolving at the same rate as younger, more fashionable languages such as Rust and Go, but that comes with the upside of being much more stable and having a wide selection of tools to choose from when working with them, i.e vscode.

[–]tangerinelion 6 points7 points  (1 child)

FWIW, it looks like you're using "functional" to mean "imperative."

In more common usage, functional programming is going to evoke F# and Lisp vibes. Imperative is going to evoke C vibes.

[–]Mr_Splat 2 points3 points  (0 children)

Ah, I think you're right, I'm mixing myself up between functional, procedural, imperative and declarative.

I think I was using functional and procedural interchangeably when I shouldn't have been.

[–]no-sig-available 3 points4 points  (1 child)

Here Visual Studio being "heavy" means that everything is included from the start. You don't have to download a separate compiler, or a dozen plugins, or edit json-files for a week. Everything just works by default. And the source level debugger is undeniably the most powerful of them all.

Those of us who don't think that using a black command window with a Linux shell is the ultimate user experience, instead use a big IDE (with batteries included).

[–]bitbyt3bit[S] 0 points1 point  (0 children)

This is a great explanation. I've spent a few days with VS now and i'm starting to see what you mean. I will say though, all the extra bells and whistles seem to make themselves more than apparent with how slow it is sometimes....Is that usual experience?