C++ vs. C# is a HOT topic these days.
I pearsonally try to keep up with both.
Here are 3 reasons I think most apps (99%!) are NOT written in .NET
1) OLD habits die hard. We learn C and C++ in school. So we become comfortably with the language. It's hard for people to try to learn a whole new (And I mean that) language like c# when they are use the old. I think that's wrong thinking if you are looking for a JOB in programming. You need to learn it ALL.
2) ABSTRACTION - This may be reason number one. If you are just staring out in programming, c# is a very abstract language. It is not as close to the machine, and so some people feel disconnected from it. C is very close to the machine.
Assembler is even closer. programming in C we feel that connection more strongly. But again I still think we need to learn it ALL.
3) There are things in c# that are just plain frustrating in c# and some people just give up and do it in C. You could argue perhaps that you just don't know enough about the language to do it. But does ANYONE really know all of it?. No , of course not. I've seen PHD's stumped by .NET.
4) C books are 200-300 pages. C# books are up to 1500 pages!. Which is easier to learn?
5) If I had to learn programming again I would still take the same path:
a) C
b) C++
c) The API
c) Assembler
d) C#
e) Java
f) ASP
ect.
Why C# XNA When Everyone Wants C/C++
Quote:Original post by Greycrow
3) There are things in c# that are just plain frustrating in c# and some people just give up and do it in C. You could argue perhaps that you just don't know enough about the language to do it. But does ANYONE really know all of it?. No , of course not. I've seen PHD's stumped by .NET.
Having worked with PhD's out of academia, I am not surprised.
Though frankly, I suspect the average C# programmer knows more about that language than the average C++ programmer does theirs. And really, the number of things that are frustrating to do in C# (bit fiddling, certain buffer tasks, certain scripting tasks) are far fewer than things that are frustrating to do in C (anything involving strings, anything involving a UI, anything involving containers).
Quote:
4) C books are 200-300 pages. C# books are up to 1500 pages!. Which is easier to learn?
That's odd. All the C++ books I know of tend to be the 'bible' sort, and even then need to be supplemented with Josuttis' Standard Library book and some of Meyers' texts. (to be fair, K&R is nice and concise, but plain C is not exactly practical for many apps [imo])
Those are some good points.
I did mean c and not c++ when it came to book size. Do even get me started on c++ and all of its so called helpers ... lol
grey
I did mean c and not c++ when it came to book size. Do even get me started on c++ and all of its so called helpers ... lol
grey
Quote:Original post by GreycrowQFE - I learned programming on my own, largely influenced by what I observed from the luminaries on this very forum. I started with C, Objective-C and C++, learned all of tem quite thoroughly, and moved on to Python and Java.
We learn C and C++ in school. So we become comfortably with the language.... I think that's wrong thinking if you are looking for a JOB in programming. You need to learn it ALL.
By the time I first took a formal programming course in University, I possessed programming skills on a par with the final-year grad students. Most students here learn only the C/C++ or Java they are taught in courses, and this often severely limits the ability to think through a problem/think outside the box.
Quote:Original post by GreycrowA rather frequent topic, and generally a silly topic.
C++ vs. C# is a HOT topic these days.
Quote:I personally try to keep up with both.
Good.
Quote:1) OLD habits die hard. We learn C and C++ in school. So we become comfortably with the language. It's hard for people to try to learn a whole new (And I mean that) language like c# when they are use the old. I think that's wrong thinking if you are looking for a JOB in programming. You need to learn it ALL.
I've done FORTRAN. I had no problems learning C#. If you're stuck in the old ways, perhaps it's not that it's hard to learn, but that you’re just stuck in the old ways and resistant to change.
Quote:2) ABSTRACTION - This may be reason number one. If you are just staring out in programming, c# is a very abstract language. It is not as close to the machine, and so some people feel disconnected from it. C is very close to the machine.
Assembler is even closer. programming in C we feel that connection more strongly. But again I still think we need to learn it ALL.
You are really no more closer to the machine in C/C++ than you are in C#. All three of them run against a reference machine that exhibits certain behaviors. Furthermore with modern things such as virtualization, virtual memory (old idea really), etc. you are quite distant from the actual hardware. The same is true of assembly as well.
Quote:3) There are things in c# that are just plain frustrating in c# and some people just give up and do it in C. You could argue perhaps that you just don't know enough about the language to do it. But does ANYONE really know all of it?. No , of course not. I've seen PHD's stumped by .NET.
There are plenty of things in C++ that are extremely painful to learn/do.
Quote:4) C books are 200-300 pages. C# books are up to 1500 pages!. Which is easier to learn?
C#. Because you’ll be up and running in an hour or less. Those 200-300 page books also generally start with “Learn” and end with “in 21 days.” Which is generally a prime example of exactly why C++ shouldn’t be your first language, also the C++ standard is over 700 pages.
At least you all had decent computers to start on, my first language was BASIC that ran on a computer that only ran BASIC programs off those big floppy discs. After I got my next Super Computer (IBM PS/2 386 16mhz with 2meg RAM, 40meg Harddrive, 2400baud modem), moved on to Pascal w/ assembly (the days when mode 13h was king), to C, to some C++ (mostly C code with .cpp on the end), then c# and have never looked back. It was just easier for me. And that is another reason I suggest C#.
And I know I shouldn't complain about that first computer, at least it wasn't punch cards.
And I know I shouldn't complain about that first computer, at least it wasn't punch cards.
Wow, I go have lunch and all hell breaks loose.
I think Greycow put it nicely, "we need to learn it all". Now for a beginer (which Im not to programming) I still don't know which would be best to start with. For me however, since I've been working with c# for years I will start my game dev experience with c++.
I've always felt I never had a solid foundation that all the other skills can stand on, and what better way to get that than doing something fun like game dev.
Thanks everyone!
I think Greycow put it nicely, "we need to learn it all". Now for a beginer (which Im not to programming) I still don't know which would be best to start with. For me however, since I've been working with c# for years I will start my game dev experience with c++.
I've always felt I never had a solid foundation that all the other skills can stand on, and what better way to get that than doing something fun like game dev.
Thanks everyone!
I guess, here's the thing, for me:
I have done a lot of C++. Well more than a decade of it. I work in C++ at my job. I'm fairly comfortable with it.
However, I use C# whenever I can, such as in my home projects. I haven't seen a performance penalty on my PC for using it, and even if there is one, it's minor enough that I don't care. Whatever I (hypothetcally) lose in the (hypothetical) tiny performance drop is more than made up for by the amount of work I can get done at one time.
C# is easy to work with. When I'm coding in C#, I feel like I'm working on my PROJECT, and not wrestling with the language to get it to do what I want. It generally allows me to focus on the high-level side of my algorithms instead of having to get bogged down in the details.
So say whatever you want about "OMG C# PERFORMANCE IS CRAP" or "Every professional developer uses C++ so obviously C# is crap", but for my productivity, C# is an invaluable asset.
I have done a lot of C++. Well more than a decade of it. I work in C++ at my job. I'm fairly comfortable with it.
However, I use C# whenever I can, such as in my home projects. I haven't seen a performance penalty on my PC for using it, and even if there is one, it's minor enough that I don't care. Whatever I (hypothetcally) lose in the (hypothetical) tiny performance drop is more than made up for by the amount of work I can get done at one time.
C# is easy to work with. When I'm coding in C#, I feel like I'm working on my PROJECT, and not wrestling with the language to get it to do what I want. It generally allows me to focus on the high-level side of my algorithms instead of having to get bogged down in the details.
So say whatever you want about "OMG C# PERFORMANCE IS CRAP" or "Every professional developer uses C++ so obviously C# is crap", but for my productivity, C# is an invaluable asset.
Quote:Well, the Playstation 3, the Wii, the PSP, and DS are all still relevant. Mac and Linux aren't, for better or worse.
Mac and Linux aren't relevant? The makers of World of Goo would beg to disagree:
Quote:
Update 4: It’s only been 2 days since the release of the Linux version and it already accounts for 4.6% of the full downloads from our website. Our thanks to everyone who’s playing the game on Linux and spreading the word. Here are a couple of nifty stats:
[...]
More copies of the game were sold via our website on the day the Linux version released than any other day. This day beat the previous record by 40%. There is a market for Linux games after all :)
[Edited by - Fiddler on March 4, 2009 4:02:34 PM]
You guys are getting olllllddddd, two pages and it's all over.
By the way, you call that C# binding of Bullet & PhysX SDK?
Come on!
By the way, you call that C# binding of Bullet & PhysX SDK?
Come on!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement