# Why is all the new Microsoft technology C# junk?

## Recommended Posts

r1tual    100
I thought ASP was maybe worthwhile to start learning. C# and VB are the only real supported languages. I thought the Windows Presentation Foundation and the rest of AVALON looked like it would be a step up from Winsock2 and WIN32. The only real supported languages are VB and C#. .NET FRAMEWORK 3.0, built for C# programmers. Why arent these things built for C++ programmers? Something about C# turns me off, so I have not tried to use any of these new technologies. They say C++\CLI is supported in some cases but documentation is NILL. And why C++/CLI and not C++? Are the CLI extensions necessary? I dont think so. At least from what I see. What gives and what is wrong with C++? Why was C# invented? And why does Microsoft like it so much? It makes me sick. And are there people out there that actually know C#? What planet do they come from?

#### Share this post

##### Share on other sites
Quote:
 Original post by r1tualWhy was C# invented? And why does Microsoft like it so much? It makes me sick. And are there people out there that actually know C#? What planet do they come from?

Money. Money. Yes, Earth. You'll actually find lots of people here who like and use C#, I'm not one of them though (only because I haven't invested the time to learn it)

#### Share this post

##### Share on other sites
First off, say good bye to your rating. I'm not de-rating you, but everyone else will.

C# is a Microsoft product, it is almost as fast ass C++, has a robust managed system, and allows for incredibly fast development. Visual Basic is the same way.

There's always going to be a way to port back and forth between C++ and C#, one way or the other. However, the speed difference between C# and C++ is becoming less and less evident, and since your dealing with Microsoft systems, there going to encourage their products.

Also, C# has the ability to leave managed land and get pointers and all that stuff. So, it's fairly flexible like C++, not as much though.

In other words, as many people agree, C++ is "dying." It's large user base is slowly converting to managed languages, as they making programming much less of a hassle.

As for me, I'm a C++ fan, and always will be. You can create your own managed stuff with C++ if that floats your boat, but C++ has a large user base, flexibility, "functionality," and power.

Basically:

C++ pwns, but C# does pwn too.

#### Share this post

##### Share on other sites
daviangel    604
It's probably because Microsoft is trying to get everyone to use C# and spending most of their resources on it.
Look at VB it's not being as supported for XNA either so don't feel so left out.
And there is dwindling resource for VB programmers also.
Thus maybe you should get hint from microsoft and move to C# or to another platform ie mac/linux?
Oh and there is nothing preventing you from using managed code with C++ as this book shows it just that if you are going to use managed code it easier to just use C#/VB from the get go.

p.s. And as Charles Petzold says "I'd rather get a root canal before I have to switch back to using C/C++ than C#"

#### Share this post

##### Share on other sites
zerotri    274
Surprisingly enough, you can probably find a C# user not too far from your own home. Quite a bit of people use C#, simply because it is not as low-level, and allows the programmer to design what they want to, quite a bit faster. Sure, an advanced C++ guru could probably crank out a nicely made program faster than a newer C# programmer, but the C# language handles quite a bit of information behind the scenes that make things a lot easier on not the programmer. When things are made easier for the programmer, he can develop a nice program in a shorter amount of time and devote more of that time to adding extra features. In C++ you have more control over the program you are developing, but it will also take longer to develop a program in C++ than it would be to develop that same program in C#, assuming that what you are developing is supported by both languages.

I personally prefer to use C++ because I find that it is easier for me to use and develop in. I think that Microsoft saw some of the drawbacks to developing software in C++(and any programming language) and tried to address them in C#. Why they decided to develop their newer technologies to support only C# and/or VB.NET still remains to be answered.

Hope this gives you a somewhat more open view on the subject,
-Wynter Woods(aka Zerotri)

#### Share this post

##### Share on other sites
Promit    13246
Quote:
 Original post by r1tualIt makes me sick.
As long as we're sharing personal ailments, let me tell you what makes me sick.

There are newbies coming to this site every day. Many of them don't know the first thing about game programming; many don't understand programming. Some of these go on to be well liked and respected members. Others are pummeled into the ground, ridiculed, and more recently, rated into oblivion.

What distinguishes the two groups is the attitude they take on the forums. Those who are successful constantly seek to better themselves, to learn more, and to become more skilled. They may have terrible misconceptions and misunderstandings, but they are willing to address those problems and move forward. They tend to exude a positive, inquisitive attitude towards everything, and they are responded to in kind. I enjoy helping these people, and as they branch out into areas I've never touched, that help often becomes mutual.

And then there's the failures' group. These peoeple are locked into their own narrow minded, hopelessly flawed mindsets. They reject new technologies and techniques for any reason they can find. The worst of the lot actively seek to criticize those in the first group, the ones who are exploring new things and learning new things. Instead of exploring new technology and new ideas, they will attack them loudly and angrily, insisting that anyone who is interested is a fool. The people in this group make me sick. They're a black mark that makes the rest of the community look bad, and I am sickened every time one of them decides to spout even more misguided self-righteous nonsense.

Guess which group you fall in.

It occurs to me that you might need some help with that last bit, so here's a hint. The first group, the one with the positive mindset, does not include you.

#### Share this post

##### Share on other sites
MaulingMonkey    1728
"[...] and what is wrong with C++?"

C evolved from what, BCPL? C++ extended that by hacking in classes and OOP, C++/CLI extended that by hacking in GC and .NET access. The combined monstrositiy I don't feel dignified addressing. Type safety, reflection, classes, metaprogramming... the kind of stuff that many languages have taken for granted were slabbed atop the original C in haphazard, horribly integrated fashion. Ever tried passing a member function to a non-member function pointer? Completely rebuilt your own introspection mechanism since the language didn't support it? Explicitly casted a string to std::string just so you could concatinate it? Had a buffer over/underflow? Been bitten by std::vector relaxing it's contiguous-array-of-T guarantee for std::vector<bool>? Wondered why there's no resizable bitset class? Tried to std::fstream::open a std::string? std::wfstream::open a (const wchar_t*)? Wondered why std::wfstream::operator<<(const wchar_t*) narrow()s everything? Been bitten by std::list<T>::splice(where,list,begin,end) being constant time on one platform and linear time on another? Ditto for std::list<T>::size? Wondered why the standard wouldn't freakin' decide on one or the other, and not leave programmers unable to depend on either due to it's indecisiveness?

What's wrong with C++? That's entirely the wrong question. What's right about it? And what's wrong with C# that C++ isn't even worse at? Microsoft has the right idea, starting with a fresh new slate, even if I think C# falls woefully short of the mark of what the next language should be.

What makes me sick is people like you pretending C++ is, you know, actually a decent language. I probably invoked undefined behavior just writing this post, for hells sake. There will come a day when I remember C++ like I remember COBOL. In nightmares from which I awaken screaming, in the middle of the night, cold sweatdrops trickling down my face. I will cry out for my mother to comfort me, as a grown man.

Now if you'll excuse me, I've got some C++ code I need to work on. Debug, specifically, as if that wasn't blatently obvious from the fact that it's C++.

[Edited by - MaulingMonkey on December 14, 2006 7:32:48 PM]

#### Share this post

##### Share on other sites
r1tual    100
Quote:
 Original post by PromitAnd then there's the failures' group. These peoeple are locked into their own narrow minded, hopelessly flawed mindsets. They reject new technologies and techniques for any reason they can find.

I can see rewriting C\C++ to fix it's problems, but creating an entirely new programming language with an entirely new syntax is a bit too far.

Maybe you can explain why Visual Basic was invented.

How about Java?

I personally do not understand why these programming langauges exist with such popularity.

I never seen anything really wrong with C\C++. Not any of the problems Mauling Monkey pointed out. When I program in C++ I find no fault in the programming language that prohibits me from developing whatever program I decide to create.

So why such a drastic new language like C# instead of some kind of "Fixed" C++?

#### Share this post

##### Share on other sites
mutex    1111
C# and .NET just make things a lot easier. WPF, for example, heavily relies on .NET's reflection features in deserializing XAML; this would be considerably harder in C++ due to its lack of reflection.

Give C# a try. Write a simple program in it, perhaps a web file downloader, an image converter, an IRC bot, or Tetris. I think once you do you'll change your mind.

You can't judge something until you understand it.

#### Share this post

##### Share on other sites
Promit    13246
Quote:
 Original post by r1tualMaybe you can explain why Visual Basic was invented.How about Java?
I'll answer both of those if you can give me a coherent explanation of why C++ was invented.

#### Share this post

##### Share on other sites
MaulingMonkey    1728
Quote:
 Original post by r1tualI never seen anything really wrong with C\C++. Not any of the problems Mauling Monkey pointed out. When I program in C++ I find no fault in the programming language that prohibits me from developing whatever program I decide to create.

It's not about the language prohibiting you from developing whatever. It's about the language prohibiting you from developing in an easy, cost effective manner. The most obvious example which everyone will run into if they use C++ is it's old file/text based dependancy mechanism. One must violate DRY and repeat function signatures for both headers and source files, and spend time mantaining these things in sync. It also bloats compile times of the language, whereas symbol-based depedancy mechanisms avoid this kind of duplicitous junk.

Ever been forced to manually patch system headers because two libraries disagree on a function signature? Case in point: std::exit in <cstdlib> and <GL/glut.h> -- one lacks compiler specific extension keywords which alter the function signature, causing compile errors due to the conflict.

Quote:
 So why such a drastic new language like C# instead of some kind of "Fixed" C++?

C# is some kind of "Fixed" C++, IMO. It's pretty damn similar, TBH. Try something like lisp or smalltalk if you want something closer to "drastically" different, or haskal or...

#### Share this post

##### Share on other sites
mutex    1111
Quote:
 Original post by r1tualSo why such a drastic new language like C# instead of some kind of "Fixed" C++?
Fixed C++ needs to retain compatibility with unfixed C++, otherwise it's essentially a new language. And once you reach that point, you might as well make drastic changes and clean up everything.

#### Share this post

##### Share on other sites
jpetrie    13104
Quote:
 I can see rewriting C\C++ to fix it's problems, but creating an entirely new programming language with an entirely new syntax is a bit too far....I personally do not understand why these programming langauges exist with such popularity.

That is unbelievably short-sighted; exactly the kind of pointlessly narrow world view that Promit was commenting on earlier.

Different programming languages exist to address different needs. They're just tools. You don't see carpenters building things with only hammers, right? You don't eat all your food with a knife, right? Software development is the same way.

New languages get developed because needs, and the technology to address those needs, evolve over time. We don't still use bronze axes to chop down trees, do we?

#### Share this post

##### Share on other sites
r1tual    100
If C# is so easy why dont I ever see any .NET programs that actually use some important .NET feature?

I think if you data mined the entire internet you would only find a handful of .NET programs, and they probably all originate from Microsoft. I think .NET sounds good and I think Avalon and ASP sound nice, but to me it just is a headache to have to learn C# and then learn the API's themselves.

It doesnt seem like Microsoft thought this out too well which is probably why anyone actually using .NET in any significant way is a rarity.

I dont have the time or the motivation to use C# when C++ works fine. I actually like C++ and the C++ syntax.

#### Share this post

##### Share on other sites
Deranged    668
Quote:
 Original post by r1tualI can see rewriting C\C++ to fix it's problems, but creating an entirely new programming language with an entirely new syntax is a bit too far.Maybe you can explain why Visual Basic was invented.

Maybe you can tell me why C++ was invented when C was perfectly usable? Or before that, why was C invented when the world had BCPL and such to work with?

#### Share this post

##### Share on other sites
Dragon88    246
Quote:
Original post by Deranged
Quote:
 Original post by r1tualI can see rewriting C\C++ to fix it's problems, but creating an entirely new programming language with an entirely new syntax is a bit too far.Maybe you can explain why Visual Basic was invented.

Maybe you can tell me why C++ was invented when C was perfectly usable? Or before that, why was C invented when the world had BCPL and such to work with?

Because the poor children couldn't understand pointers.

On a more serious note, people had discovered how wonderful OOP is. So they hammered it on top of C, because C was popular and widely used and all that.

As for why C came about, if my knowledge of history is correct, they needed a language that was efficient, semi-low level, and portable across platforms. Apparently BCPL didn't meet one of those needs.

I have nothing against C#, or C++. I use C because I find it to be a more elegant medium to express myself with, but if you find yourself more capable of expressing what you want to get done to the computer in some other language, then use something else. I think in terms of algorithms, not objects, so it's more natural for me to use C.

#### Share this post

##### Share on other sites
jpetrie    13104
Quote:
 I think if you data mined the entire internet you would only find a handful of .NET programs,

You know, you could try to do at least some research before making such outlandish claims.

Simple Google searches for phrases like "'written in C#'" or "applications developed in C#" or "using C#" returns, typically, half a million results. While it doesn't prove that there are that many applications actually using C#, it does suggest that a lot of people are at least talking about or, or considering it (by way of comparison, "written in C++" returns almost 900,000 results). Searches for learning C# or about the C# language returns more than a million results.

Hardly a "rarity," and the number is increasing rapidly. Just because you don't see them doesn't mean they're out there (and in fact, since you are so anti-everything-that-isn't-C++, you're probably not looking or just assuming something is written in C++).

(And, for the record, C# is not .NET; .NET is a framework, or more generically a brand name. You can write C# applications with runtimes other than those provided by .NET).

#### Share this post

##### Share on other sites
Deranged    668
Quote:
 Original post by r1tualI dont have the time or the motivation to use C#

If you actually knew C++ in depth at all, you would be able to pick up C# within a few hours to a day depending.

#### Share this post

##### Share on other sites
Promit    13246
Quote:
 Original post by Dragon88I think in terms of algorithms, not objects, so it's more natural for me to use C.
That line actually suggests you'd do far better in a language with stronger functional concepts, such as Haskell or an ML variant.

#### Share this post

##### Share on other sites
MaulingMonkey    1728
Quote:
 Original post by r1tualI think if you data mined the entire internet you would only find a handful of .NET programs, and they probably all originate from Microsoft.

Results 1 - 10 of about    69,000,000 for C#.      (0.19 seconds)Results 1 - 10 of about    91,600,000 for dot NET. (0.08 seconds) Results 1 - 10 of about   104,000,000 for C++.     (0.07 seconds)Results 1 - 10 of about 1,810,000,000 for ".NET".  (0.09 seconds) -- obviously flawedResults 1 - 10 of about 543,000 for "written in C#".Results 1 - 10 of about 888,000 for "written in C++".

Nice "handful".

Quote:
 I think .NET sounds good and I think Avalon and ASP sound nice, but to me it just is a headache to have to learn C# and then learn the API's themselves.

Sucks for you, then. I call it adapting, and I find it much less of a pain than using outdated toolsets, personally. This is speaking from experience.

Quote:
 I dont have the time or the motivation to use C# when C++ works fine. I actually like C++ and the C++ syntax.

This ranks up there with "C works fine", "640k will be enough for anybody". The only surefire way to figure out the advantages of something is to try to find them yourself by trying things out.

Once upon a time, I thought C worked fine too. Or even QBASIC. I am so glad I was talked into tasting the future -- I've not looked back once. This alone is motivation enough to keep me interested in what's new and out there. The cost is a little light reading, and the benifits are uncountibly numerous.

#### Share this post

##### Share on other sites
smr    2468
Quote:
 Original post by r1tualIf C# is so easy why dont I ever see any .NET programs that actually use some important .NET feature?I think if you data mined the entire internet you would only find a handful of .NET programs, and they probably all originate from Microsoft. I think .NET sounds good and I think Avalon and ASP sound nice, but to me it just is a headache to have to learn C# and then learn the API's themselves.It doesnt seem like Microsoft thought this out too well which is probably why anyone actually using .NET in any significant way is a rarity.I dont have the time or the motivation to use C# when C++ works fine. I actually like C++ and the C++ syntax.

I think you have absolutely no idea what you're talking about. You admit as much here:

Quote:
 Original post by r1tualSomething about C# turns me off, so I have not tried to use any of these new technologies.

So did you data mine the entire internet? How many .NET programs did you find? Let's make a comparison:

1985: C++ (1985 is when the first edition of The C++ Programming Language was released. C++ was actually available before this.)
2002: .NET Framework

Looks to me programmers have had 17 more years to develop programs with C++ than they have with .NET. C++ was not widely adopted when it first came out either, so you cannot expect for C# to be. Neither was Java, python, VB, and so on for infinity. But why am I trying to convince you? It's better for me if you remain ignorant. You should memorize this phrase, because I think you'll be saying it a lot when you're old enough to get a job: "Would you like fries with that?"

#### Share this post

##### Share on other sites
Dragon88    246
Quote:
Original post by Promit
Quote:
 Original post by Dragon88I think in terms of algorithms, not objects, so it's more natural for me to use C.
That line actually suggests you'd do far better in a language with stronger functional concepts, such as Haskell or an ML variant.

When I said algorithms, I meant algorithms in the terms the computer sees them in. I have worked with assembly language quite a bit, so when I'm looking at a problem, my mind somewhat translates it into the terms a computer will see it in.

With that said, I may very well be better off in a functional language, however I have examined both Haskell and ML, and find them both to be ugly beyond comprehension. It's quite possible that I've just been predisposed to C by a decade of use, but at this point, I don't see myself changing over to Haskell. From what I recall of it, your usage of data is quite constrained relative to the freedom you have in C. I love my pointers. I use them correctly. Pointers are not evil, programmers who don't understand pointers are evil.

Really, most of the languages I've ever looked at are going to start seeming fundamentally broken when we start moving over to multithreaded environments, but that's a story for another day.

#### Share this post

##### Share on other sites
Tape_Worm    2807
Quote:
 Original post by r1tualIf C# is so easy why dont I ever see any .NET programs that actually use some important .NET feature?

Quote:
 Original post by r1tualI think if you data mined the entire internet you would only find a handful of .NET programs, and they probably all originate from Microsoft.

These two quotes show very clearly that you really don't know what you're talking about and you're probably just posting so you can have a fight.

So did you open this thread just to troll? If not, I commend you for starting a nice language war thread and getting several people to state the same things once again, we never tire of it ... [rolleyes]

#### Share this post

##### Share on other sites
smr    2468
Quote:
 Original post by Tape_WormThese two quotes show very clearly that you really don't know what you're talking about and you're probably just posting so you can have a fight.

He's posting because he's a language biggot and he thought that everyone else would chime in to agree with him. He didn't expect this reaction.

#### Share this post

##### Share on other sites
GroZZleR    820
Quote:
 Original post by r1tualI actually like C++ and the C++ syntax.

// C/C++#include<stdio.h>main(){     printf("Hello World");}

// C#using System;public class HelloWorld{      public static void Main ()     {          Console.Write("Hello World!");     }}

Where exactly is the syntax difference you're so bothered about?

#### Share this post

##### Share on other sites
This topic is now closed to further replies.