I am just curious about the pros and cons of each. Please leave your opinion(s). Thanks! (sorry the question is so broad, but i just wan the pros and cons of each.)

Recommended Answers

All 39 Replies

C# is best for designing interfaces. It is not entirely dissimilar to Java, as it needs a runtime environment in order to execute, which affects performance. However, you can't beat the speed and drag-and-drop ease of creating applications you get from using C#. :)

C/C++ are much lower-level, allowing you to directly access memory and manipulate hardware. They can even be used to create an operating system if you wanted to. The downsides of these languages is that creating interfaces is way harder when you're using an API, interfaces tend to be unportable unless you use a toolkit, and you can make lots of memory leaks with your pointers.

Those 2 paragraphs were quite the generalization, but hopefully it helped a bit. Maybe an expert can explain this in more detail.

I am just curious about the pros and cons of each. Please leave your opinion(s). Thanks! (sorry the question is so broad, but i just wan the pros and cons of each.)

It's impossible to tell you the pros and cons without some sort of context. If it were possible then people like us wouldn't stress over what language to use. ;)

C# is best for designing interfaces. It is not entirely dissimilar to Java, as it needs a runtime environment in order to execute, which affects performance. However, you can't beat the speed and drag-and-drop ease of creating applications you get from using C#.

I agree that Visual Studio makes designing UIs much easier, but that's not restricted to C#. C++/CLI is also a part of Visual Studio and all of the .NET features are there too. Once you see that, the only difference is that C# was designed with .NET in mind and C++/CLI had .NET hammered on by Microsoft as an after thought. The performance hit of .NET isn't really that bad, especially when taking UIs into account, but I can't deny that a good MFC or Win32 application will probably beat a good .NET application in terms of responsiveness.

C/C++ are much lower-level, allowing you to directly access memory and manipulate hardware. They can even be used to create an operating system if you wanted to. The downsides of these languages is that creating interfaces is way harder when you're using an API, interfaces tend to be unportable unless you use a toolkit, and you can make lots of memory leaks with your pointers.

Well, if you take into account the fact that low level work is almost always done through an API and .NET has access to the Win32 API, the direct access myth really is just a myth. Keep in mind that I'm saying this from the view of comparing C/C++ and C# where their applicability intersects. :)

Ok, so would C# be a good language to learn? Don't get me wrong, i like c/c++ for doing simple little calculations, but i need something that i can develop with quickly..

Ok, so would C# be a good language to learn? Don't get me wrong, i like c/c++ for doing simple little calculations, but i need something that i can develop with quickly..

It all depends on the context, or rather what you're trying to make. The way I see it, C# won't help you that much if you're trying to make a little console application. However, a larger-scale GUI program would be a better candidate for C# or CLI.

The important thing to remember is that there is no end-all language; you must use the right tool for the job. So first decide what you want to create before choosing the language you are going to create it with.

Ok, so would C# be a good language to learn? Don't get me wrong, i like c/c++ for doing simple little calculations, but i need something that i can develop with quickly..

I think every language is a good one to learn. :) The nasty secret of rapid development is that you can be efficient in any language with the right tools. C# is productive if you have Visual Studio and a good understanding of .NET problem solving. Otherwise it's not that much easier than C/C++ with Notepad and half a clue of what's in the standard library.

Developing applications quickly is one part experience and two parts good tools to aid you. :)

The question still remains: What kind of programs do you want to write quickly?

That is the thing. I really don't know what type of programs i want to start developing. I just want to know a windows programming language. I don't like being tied down by chains. I want a programming language that is universal. I want a language that can be used to produce anything from utility programs to games.

That is the thing. I really don't know what type of programs i want to start developing. I just want to know a windows programming language. I don't like being tied down by chains. I want a programming language that is universal. I want a language that can be used to produce anything from utility programs to games.

I want that language too. :) C/C++ can be used for those things, but it's not always the best choice and I don't think of C/C++ when I think of rapid development.

I get the impression that you don't quite know what you want yet, or what's available, and that's a prime position for experimenting with as many languages and tools as you can get your hands on. I say try both C/C++ and C#, then see which suits you. The worst that can happen is you've learned a little bit more than you expected. ;)

I get the impression that you don't quite know what you want yet

Oh good, i am not the only one who thinks that then! ;) I think i am going to give C# a go. It seems nice... I am not too thrilled about the .net framework, though, but i guess times are changing. M$ still dominates...

Oh good, i am not the only one who thinks that then! ;)

That's the way I am most of the time, so I can see it easily. ;)

I am not too thrilled about the .net framework, though, but i guess times are changing. M$ still dominates...

I really like the .NET framework, and that's coming from a hardcore Java background. It's not fair to suggest that .NET is bad just because Microsoft made it. ;)

Oh good, i am not the only one who thinks that then! ;) I think i am going to give C# a go. It seems nice... I am not too thrilled about the .net framework, though, but i guess times are changing. M$ still dominates...

Who cares which company made it? If you really hate Microsoft that much, you may as well just go out and use Linux. If you insist on using Windows, suck it up.

Oh and there is an open source alternative to Microsoft's .NET framework, in case you care.
http://www.mono-project.com/Main_Page

i dont like net, mono or java. I got some VB6 and some VB.NET apps - the .NET apps use 3 times the memory and are double the size. Likewise for java whose speed is nbearable for anything apart from toy programs

If you don't want to be bogged down with M$, go with C or C++. They are more general and not 'controlled' by M$

They are more general and not 'controlled' by M$

Nor is C#. Both C# and CLI are internationally standardized. It's not Microsoft's fault that nobody has yet written an implementation that rivals .NET and Visual C#, is it? ;)

they have - its called Mono and SharpDevelop

they have - its called Mono and SharpDevelop

I haven't used SharpDevelop in ages, and I've only read about Mono. So take my opinion from that perspective, but the last time I checked, they weren't even close to being considered rivals. If they are now, that's great! Choice is a good thing. :)

If you don't want to be bogged down with M$, go with C or C++. They are more general and not 'controlled' by M$

Nor is C#. Both C# and CLI are internationally standardized. It's not Microsoft's fault that nobody has yet written an implementation that rivals .NET and Visual C#, is it? ;)

If M$ has no rivals yet, isn't M$ still in control? I stand by my statement. ;)

If M$ has no rivals yet, isn't M$ still in control? I stand by my statement. ;)

I'm just being pedantic. :) Controlling a language suggests that rivals aren't allowed or can be broken by the dominant vendor making changes. That's a significant difference from being the only vendor of a language standardized by an objective third party.

SharpDevelop is actually on a par with VS.NET 2002 in terms of functionality

I'll have to give it a try again, if only to save myself from making another conversational faux pas. ;) Thank you. :)

Holy crap, this thread took off!

Who cares which company made it? If you really hate Microsoft that much, you may as well just go out and use Linux. If you insist on using Windows, suck it up.

I have nothing against MS. Like i said before, i don't like being held down by chains. If linux catches on (it has a long ways to go...), then the stuff that i know will be pretty worthless. I don't want the same thing to happen with C# as it did for me with qbasic (dos died...)

>I don't want the same thing to happen with C# as it did for me with qbasic (dos died...)

I don't see why QBasic dying would be so bad. BASIC is still alive, and QBasic dying doesn't mean you can't program with BASIC anymore. Likewise you can learn C#/.NET if you want, and if you do want to switch to Linux, you can simply switch to Mono.

I don't want the same thing to happen with C# as it did for me with qbasic (dos died...)

Change is the only constant in the programming field. :cheesy: Nobody can predict the future, so all we can do is pick what we think is best at the time and adjust as needed.

yeah, its unlikely c++ wll be around for another 20 off years

yeah, its unlikely c++ wll be around for another 20 off years

Really? Basic, Cobol, and ForTran are still around. And C++ is only 30-40 years younger. So don't bet on it...

Fortran is showing its age. Today its only really used in mainframes

yeah, its unlikely c++ wll be around for another 20 off years

Actually, I kind of doubt it. Perhaps C will be fading in popularity in 20 or 30 years, but the impact it made on programming languages most likely will not fade. Look at everything that's been derived from C: Objective-C, C++ (and from that Java), D, C#, and .NET's OOP framework has many C++ workings.

More likely we'll just see the usage of the derivatives change, especially as more C libraries are ported to other languages such as C++, which then add to the power of the C subsets.

Fortran is showing its age. Today its only really used in mainframes

Why do people that don't know what they are talking about insist on saying it anyway?
http://inventors.about.com/library/weekly/aa072198.htm
http://archive.adaic.com/docs/reports/lawlis/n.htm
http://www.thocp.net/software/languages/fortran.htm

Key phrase: "still widely used today." And if that's not enough, here's up-to-date info about a language that's "past it's prime" ;)

Well, since C# isn't that old, it should have some life to it, eh?

if c# is so good then how come ti hasnt caught on eh?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.