How much more difficult is it to become competent at C++ in the real world compared to C#?

Since C# is the official scripting language of Unity I thought it would be a great place to ask this question.

What kind of analogy would be used here?

Is there any real benefit in investing crucial and limited time in learning C++ as opposed to investing all that time to master C# if you are most likely never to use C++?

This “under the hood” benefit of C++ to know whats going on under the hood does that have any merit in building a 2D indie game or working in C# and Java?

I heard someone say it’s like comparing driving an automatic car to a helicopter.

Or its like comparing learning how basic electricity works vs quantum physics.

eh, it’s more like driving an automatic car vs driving a car with a stick-shift. You’ll learn some, but it’s really not all that different.

you didn’t say what your goal is though

5 Likes

Digital Image Processing like software to work with finger print scanner, iris scanner, website databases etc

Also Artificial Intelligence.

And also simple 2D games as a hobby.

My final year degree course in Business Computing titled “Image Processing” has MATLAB for some weird reason even tho there was hardly any math even discussed in the first 2 years.

https://www.amazon.com/MATLAB-Practical-Introduction-Programming-Problem-dp-0128154799/dp/0128154799/ref=dp_ob_title_bk

^ This is the book they said I should get. Would learning C# be beneficial at the same time?

It’s really unlikely you’re ever going to use c++ unless you’re going into low level software. There is merit to learning lower level language, as you’ll have a better understanding of how memory gets managed, but this is very academic.

Most of the time domains have a dominant language, for example:

  • Python is super popular in AI circles and more or less anything trendy that isn’t using JS.
  • C# is probably the dominant language in gamedev because of Unity. I’ve heard of efforts to add C# support to unreal.
  • MATLAB is used quite a lot for mathy stuff, of which image manipulation is one.
  • JS is obviously the major language for anything web related.
  • Java is pretty common for non-tech business internal dev, although some shops prefer C#.

I think vanilla c is actually more in demand than c++ in practice, although this kind of low level coding is rare across the board.

I could be off the mark on some of those, I’ve been out of normal dev circles for a while now and things change.

3 Likes

I might be stoned for this, but JS is now very much in the desktop and can do most things you’d want from an application. With some exceptions(low level stuff, performance sensitive stuff).

3 Likes

Yeah that doesn’t surprise me. Again, I’ve been out of normal business dev for a clip, but JS was becoming more or less the dominant language (cuz everything is so internet centric). That it’s common on desktop now makes sense.

wow thank you very much for guiding me accordingly.
I didn’t like C++ either and didn’t want to have to learn that.

My degree doesn’t even use C++ it just uses Web development languages it is mainly just C# and JS and Database Design and Management with 1 final year semester of Image Processing with MATLAB. Not sure the purpose of that image processing module is considering the degree is mainly Computing and Information Systems but they have been updating these IT degrees in recent times to be more relevant towards what employers want, this is their reasoning is what they have said in adding a complicated module like Image Processing to what is otherwise usually considered a IT Business Degree.

To me this module is rather strange indeed the 2 major new modules they updated were “Cloud Computing” and “Image Processing”

According to this link on the university website

https://rl.talis.com/3/anglia/lists/AB2CB8DA-06E0-C793-5BAE-AC2EFFC5A26C.html?lang=en-US

^ they require me to learn programming with python and machine learning for the Cloud Computing Module.

I think this is a safe bet to say that I should just focus on C#, JS, SQL, MATLAB and Python?

Since this is all that is required for my Business IT degree?

Seems like a good list.

I tried to find some lists of most popular languages but they’re all over the place and totally nonsense.

This is probably pretty representative by how useful something is in the job market. I saw some other lists but they were usually nonsense.

This chart is from linkedin:

This one is probably nonsense with c in first place. I figure a lot of job openings say they like seeing c on a resume, but the job doesn’t actually involve writing c.

You can actually kinda compare those two charts - the first one is questions to stack overflow - so that revolves around how much people are using those languages the second is what keywords job posts have listed (but does not reflect what you will actually be doing most of the time). Like R is above JavaScript…you gotta be kidding me.

Thank you for this wonderful insight, it is a good indication of what I need to do.

I shall follow my Business IT course module and do as they say which is to learn SQL, Javascript, C#, Python Machine Learning and MATLAB.

The only odd one out of the entire list is MATLAB but maybe they know what they are doing if it is employers are seeking things like understanding of Image Processing etc. To come to think of it, iris scanning and face recognition and these things are indeed becoming popular so I best learn it to the best of my ability

1 Like

You can probably work with AI and image processing just fine without getting into C++, or if you do it’ll be very limited, like really simple OpenCV stuff (and some OpenCV stuff works with C# I know).

Matlab seems weird to me outside of an academic context, or working with academics, but who knows.

Not accurate, there’s no single dominant language in gamedev :slight_smile:
C# is popular for project scripting in engines friendly to small teams. Unity itself is immensely popular in 2D & mobile, but that’s it. If someone doesn’t pursue these areas, C# might be irrelevant.

Efforts to add C# to Unreal are… how to say it gently… it’s nice, but terrible so far. Anyway, it would be only some 2nd-class citizens, for people who are emotionally attached to C#.
C++ is the standard way of programming in Unreal and it gonna stay this way. The same for any other major engine: Godot (C# is an option) and… Unity (written in C++, after all). These engines might expose other scripting languages (often used only by designers, not necessarily by people with “programmer” role). C++ itself doesn’t go anywhere.

No. Master any single language. Learn others on the go, if you need them. Programming languages are tools like any other.
Most of the languages won’t be a challenge to learn once you master C# :slight_smile:

1 Like

Ironically these are fields where C++ has limited popularity. For AI the most common language used is Python and in fact the Unity Machine Learning framework uses Python. For digital image processing C++ can be helpful if you want to write Photoshop plugins but otherwise I would use Python for that too since it’s a field that combines AI.

3 Likes

You need to view languages has tools and C++ is a very complicated tool compared to C#.

C++ is bloated with features and you can look at diffrent projects source code and you would almost think they are using different langage. The complexity makes it harder to learn and to master. Even editors and tools can’t keep up with C++. Also compile time is horrible on big projects.

People are still using it for legacy reasons, but it would be better to use a simpler langage that accomplish similar goals.

C# was designed after C++ so the creators were able to learn from past mistakes. Even tho they don’t accomplish the same goals, for what it can accomplish, C# is a far simpler and better tool to use.

To be frank, the sheer volume of unity releases alone probably places C# as the dominant language for game dev across the board. This will, most likely, only increase going forward in the near future, since unity is the default engine in academic settings.

“If you are updated about the gaming world, you might already know that Unity 3D has a 48% market share whereas Unreal Engine is standing at 13%.” - Unreal Engine vs. Unity 3D: Games Development Face-off

That could be bogus, but it sounds pretty plausible. If Unity is literally half the gaming market then that qualifies as dominant :stuck_out_tongue:

Not exactly relevant to the programmer. If most of these games are quickly made mobile games, like 10 mobile games made while only 1 Unreal made in the same time… does it matter how many games are based on what? If one C# programmer would work on many more titles than a C++ programmer? Obviously, that is pure speculation.

Although Unity is much better suited for smaller games/teams than Unreal, especially 2D. And many teams switch to Unreal while their games/teams grow. It might be safe to assume there are many more programmers working on an average Unreal game than Unity game.

I mean, I’m interested in a discussion related to the original question.
Only the number of jobs (and job openings) is relevant here. That’s why sources like that LinkedIn chart above are relevant to people. Not an amount of games released on the market, which isn’t even an indication of the revenue (and programmers participating in revenue share) made by these games.

What’s more. What truly counts on the job market is how many programmers are available for given language/technology, and how easy is to learn it. If there are many JavaScript programmers available, such a job would pay less.
In Poland experienced C++ gamedev programmer earns much more than a web developer. But junior Java programmer would earn much more than me in gamedev for many years :smile:

I don’t think the amount of released games indicates anything. Games are too different.

So this is the OP’s stated goal.

simple 2d games is the third priority. And it’s a hobby.

Hi guys I had a look at the books required and the coursework for one of the modules I must take for school involves Network Programming using C, the name of the module is Ethical Hacking and requires knowledge of C programming to implement, I am guessing this is for creating scripts possibly?

Is C the dominant language in Network Hacking?

Also I hope C is a lot easier to learn than C++?

I suppose it is best I start off with C and then move to Python? would this be a good plan? cause most of the course appears to involve Python as the main language.

I decided to follow this guide I found, hope this will be enough for me.

This playlist consists of 200 videos but they are short and straight to the point, I get the feeling that C is easier and takes less time to learn than C++

This guy put so much work into giving away 200 free videos of such high quality

The problem with the linkedin chart is that it was doing job posting keyword count. Many jobs may mention C but they won’t actually be C jobs. That’s why the stack overflow stat is likely more accurate - as this reflects what the body of the work itself is.

In the US javascript developers make about $10,000 a year more than c++ guys (on average). Java developers also make slightly less than JS developers. C developers also less than JS. GameDev generally pays the worst of all the tech sectors, because people will take less money to work in a sector they are emotional about.

Maybe it is very different in poland though!

1 Like

Only in the sense that there is far less to learn.

C is a major language for writing network firmware and drivers but that’s it.