Jump to content

  • Log In with Google      Sign In   
  • Create Account


Is C++ being replaced with C#?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
53 replies to this topic

#1 blueshogun96   Crossbones+   -  Reputation: 875

Posted 27 November 2010 - 10:08 AM

I'm not sure how many times this has been asked, but I thought I'd ask for myself. When I look at job postings online to see how well the IT/game job market is for programmers, I see that the demand for C# is now in greater demand than C++. Tbh, I don't see many hard core games programmed in C#, but why is it more in demand than C++? I personally don't care for C#, but I can use it when necessary. I personally prefer neither one, because using 100% pure C works just fine for me and I see little benefit to using OOP in games to begin with (except for templates and a few features from inheritance, but the rest feels rather useless to me). But who cares what I think, right?

So is it better to have C# skills these days as opposed to C++? Of course, you can have both, but I prefer C/C++ because it's more "to the metal".

Sponsor:

#2 Promit   Moderators   -  Reputation: 6611

Posted 27 November 2010 - 10:13 AM

Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.

#3 Programmer One   Members   -  Reputation: 746

Posted 27 November 2010 - 10:35 AM

Just because you don't understand something doesn't mean it isn't useful.

#4 blueshogun96   Crossbones+   -  Reputation: 875

Posted 27 November 2010 - 10:38 AM

Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


I was told you can't get low level access in C# such as accessing a linear or physical address directly (or is that just in XNA for 360)? I never used C# for anything serious.

Quote:
Original post by Programmer One
Just because you don't understand something doesn't mean it isn't useful.

Why do you assume I don't understand it?

#5 Washu   Senior Moderators   -  Reputation: 4980

Posted 27 November 2010 - 10:42 AM

Quote:
Original post by blueshogun96
Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


I was told you can't get low level access in C# such as accessing a linear or physical address directly (or is that just in XNA for 360)? I never used C# for anything serious.

Seeing as how you can't actually do that in C++ EITHER without using OS specific functions, which can also be invoked from within C# as well...
Quote:

Quote:
Original post by Programmer One
Just because you don't understand something doesn't mean it isn't useful.

Why do you assume I don't understand it?

Because of the statements you made above, combined with what is we're probably going to assumed to be a lack of experience.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


#6 Sirisian   Crossbones+   -  Reputation: 1726

Posted 27 November 2010 - 10:42 AM

You'll understand when you program more. It sounds like you've never had to program a GUI application in C++ yet. When you do and look at C# and WPF you'll see why a lot of people prefer C# for certain projects. Remember, as has been said a lot on this forum, that languages are tools. You choose the one that best suits your needs. Some companies need to create complex UI applications and C# is usually preferred for that. C++ has a niche since game engines tend to be coded in it.

What kind of job postings have you been looking at? Tools programming?

#7 Programmer One   Members   -  Reputation: 746

Posted 27 November 2010 - 10:48 AM

Quote:
Original post by blueshogun96
Quote:
Original post by Programmer One
Just because you don't understand something doesn't mean it isn't useful.

Why do you assume I don't understand it?


Because your statement is the equivalent of, "I don't get what is the big deal with cars; horses work just fine for me."

#8 Chris Reynolds   Members   -  Reputation: 110

Posted 27 November 2010 - 12:25 PM

Quote:
Original post by Programmer One
Quote:
Original post by blueshogun96
Quote:
Original post by Programmer One
Just because you don't understand something doesn't mean it isn't useful.

Why do you assume I don't understand it?


Because your statement is the equivalent of, "I don't get what is the big deal with cars; horses work just fine for me."


That's a bit of a stretch. If C# is a car, I'd say C++ is a car without doors.

#9 Dave   Members   -  Reputation: 1499

Posted 27 November 2010 - 12:43 PM

Nah, C++ is a car without brakes.

#10 SimonForsman   Crossbones+   -  Reputation: 6049

Posted 27 November 2010 - 01:48 PM

Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


?

;)

#11 Antheus   Members   -  Reputation: 2397

Posted 27 November 2010 - 01:56 PM

Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


It means a Real programmers.

And I'm not really sure what to make of the fact that there is a wikipedia entry on it...

I also always found it funny that Apollo Mission Computer used a virtual machine. Just goes to show they should have hired real programmers.

#12 Hodgman   Moderators   -  Reputation: 29422

Posted 27 November 2010 - 03:53 PM

Stepping aside from belittlement for a moment...


In the general programming business world, C# is taking over a lot of C++'s responsibilities.

In the console games sector of that world, those responsibilities mostly involve the tool-chain -- the bits of the game engine that run on developers PCs.

The actual game run-time -- the bits that run on the Xbox/PS3 -- are of course still C/C++.

There are exceptions to this (C# can be run on consoles if you really want to), but in general my experience has been C/C++ for the engine and C# for the tools.

#13 FableFox   Members   -  Reputation: 496

Posted 27 November 2010 - 03:53 PM

<I'm kidding here>

Nah... Real Programmer code in Pure Basic, and optimize the resulting FASM code it generate.

After all, you want to develop a demo on WinPC and watch it on AmigaOS.

</I'm kidding here>

On the topic, C# is an "expansion" to C++ the way C++ is an expansion to C. It serve a purpose. and use the purpose well. OOP on C++ is to make complex code and app manageable, not for you to create class for almost all variables and have .Get & .Set for everything.

As for me, I develop software and tools in Pure Basic, as I get running quickly. I develop games in game engines (Game Maker, Unity, UDK).


Fable Fox is Stronger <--- Fable Fox is Stronger Project

#14 Nypyren   Crossbones+   -  Reputation: 4161

Posted 27 November 2010 - 04:05 PM

Quote:
Original post by blueshogun96
Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


I was told you can't get low level access in C# such as accessing a linear or physical address directly (or is that just in XNA for 360)? I never used C# for anything serious.


Name a specific algorithm used in application programming that actually needs that kind of memory access ('application programming' meaning that operating system kernels and databases don't count).

#15 Mike.Popoloski   Crossbones+   -  Reputation: 2889

Posted 27 November 2010 - 04:34 PM

Quote:
Original post by blueshogun96
I'm not sure how many times this has been asked, but I thought I'd ask for myself.

Many, many, many, many, many, many, many times before. In fact, why don't I give you a minuscule sampling of them:


Frankly, these sorts of threads are incredibly tiring. The original poster always comes into the thread with firmly implanted notions borne of shockingly small amounts of actual fact and proceeds to ignore all comers unless they are providing him with justification for his ill-conceived presuppositions.

How about we skip the validation from those who don't know, the skewering from those who do, the rehashing of the same arguments again and again from both sides, the unwanted and unsolicited opinions from Joe Coder #3, and just agree to ignore these threads whenever they appear?
Mike Popoloski | Journal | SlimDX

#16 Hodgman   Moderators   -  Reputation: 29422

Posted 27 November 2010 - 05:10 PM

Quote:
Original post by Mike.Popoloski
How about we skip the validation from those who don't know, the skewering from those who do, the rehashing of the same arguments again and again from both sides, the unwanted and unsolicited opinions from Joe Coder #3, and just agree to ignore these threads whenever they appear?
...because that would go against the GameDev.net culture of taking pride in bluntly informing people that they're unknowledgeable. Duh.

#17 Oberon_Command   Crossbones+   -  Reputation: 1859

Posted 27 November 2010 - 05:22 PM

Quote:
Original post by blueshogun96
Quote:
Original post by Promit
Quote:
Original post by blueshogun96
I'Of course, you can have both, but I prefer C/C++ because it's more "to the metal".
I would love to know what exactly you think this means.


I was told you can't get low level access in C# such as accessing a linear or physical address directly (or is that just in XNA for 360)? I never used C# for anything serious.


C# has pointers.



#18 Mithrandir   Members   -  Reputation: 607

Posted 27 November 2010 - 05:44 PM

What's C++?


/will never touch that wretched language again
//if I don't have to

#19 Mithrandir   Members   -  Reputation: 607

Posted 27 November 2010 - 05:51 PM

Quote:
Original post by blueshogun96
I prefer C/C++ because it's more "to the metal".



That's a misconception. Anything low level that you can do in C/C++ you can also do in C#.

Some people say that you shouldn't be using C# because it's "slower", but with JIT compilation, it's just as fast as any compiled language.

The base libraries perform a lot more sanity checking however, such as array bounds checking... but here's the thing. Almost every single exploit found these days is still a buffer overrun exploit. It simply amazes me in this day and age that people STILL introduce buffer overrun vulnerabilities. But that's what you get for using a "to the metal" language. Sure, you think it's faster to not check things like array boundaries... until your little mistake causes things to be compromised. I'll take the safety of C# over the haphazardness of C++ any day.



#20 Fenrisulvur   Members   -  Reputation: 186

Posted 27 November 2010 - 07:40 PM

Quote:
Original post by Washu
Seeing as how you can't actually do that in C++ EITHER without using OS specific functions, which can also be invoked from within C# as well...

I'm not entirely clear on where you're going with this, so I'm going to stab around in the dark rather aimlessly in search of clarification.

I'm aware of the semantics of ISO C++ pointers (insofar as they are not integral memory addresses, undefined pointer arithmetic and all that), so one interpretation of "OS specific functions" would be implementation-defined pointer r-values? Or are you referring to virtual memory, separate address spaces and all that, where "OS specific functions" literally refers to OS routines which a process can invoke to interact with other parts of of the system? (I am clearly not an OS guy)

wrt C#, I won't go into that.

Quote:
Original post by FableFox
On the topic, C# is an "expansion" to C++ the way C++ is an expansion to C.

Well, that's among the grosser simplifications I've read recently.

Quote:
Original post by Nypyren
Name a specific algorithm used in application programming that actually needs that kind of memory access ('application programming' meaning that operating system kernels and databases don't count).

This.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS