Page 1 of 5

[SOLVED] .NET vs C languages

Posted: Sun Mar 06, 2011 4:24 pm
by GroundUpEngine
i) A friend and I had a discussion about this topic, I told him how I practice programming (in C/C++) for multiplatform and graphics/games.
ii) He told me he used to do programming too (wanting to make software for accounting) and that he went to study the accounting side of things but then couldn't get into the industry properly because his knowledge of programming languages was old or aged.
He also told me that for programmers these days you want to keep up-to-date with the languages (so that this doesn't happen to me), e.g. for windows platform you need to be able to make your software blend in with the OS and also interface with it's software (examples.. Microsoft excel or database).

I do agree to some extent, but could you anyone give any input on this.

Thanks,
HebronS

EDIT: He did say C# was ok.

Re: .NET vs C languages

Posted: Sun Mar 06, 2011 4:48 pm
by Aleios
Having more than 1 language under your belt is a good idea, but usually C++ is used the most, although i have noticed quite a lot of companies using C# to program their GUI based interfaces. This is probably because they use Windows for everything. But old/aged knowledge? I don't really understand, was he using C++ as well? Very strange, but if you are going to work for some kind of accounting business then you should gain knowledge for C#, the reason companies like to use Microsoft products is mainly due to the support. Linux, the support comes from the community, which i don't think businesses like too much.

sorry if my writing is not understandable, im not the best at English :)

Re: .NET vs C languages

Posted: Sun Mar 06, 2011 9:42 pm
by TheBuzzSaw
This might be a bit of a tangent, but it kills me that anyone ever rips on a technology just because it is old. Yes, if something is old, it is probably time to review it and check to see why it is still in use. However, oftentimes, things are still in use because they are tried and true. A superior alternative simply has not arrived yet. If everyone knew how old TCP/IP was, they'd shout blasphemy and demand a new protocol for absolutely no reason.

I like C# for building Windows-based business applications. I use it every day at work, and it is a joy to work with. However, so far, I am not a fan of games written in XNA. They tend to perform much worse than their C/C++ counterparts. You have to pick the right language for the right job. So sure, it's good to stay up to date on languages, but C# is not some modern successor to C++. It uses many C++ conventions that developers are familiar with, but it focuses on a radically different set of problems and strips away low level control. Frankly, I would love to see a modern upgrade for C++, but there are no new languages in the works that I know of. C++0x is an incremental boost but doesn't really fundamentally change the way anyone does low level programming.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 2:56 am
by MrDeathNote
Aleios wrote:but usually C++ is used the most
This just isn't true anymore. I'll agree that c++ is still a widely used and popular language(and my favorite), but c# and java are probably the most sought after skills at the minute. At the company I work at Java programmers are particularly in demand right now.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 6:20 am
by Aleios
dammit, i forgot about java :O and, yea i kinda (contradicted?) myself saying C++ is most used then saying C# is better in companies eyes, and of course so is java. Although it really depends on business type, i know C# is used for toolset development in game industry, and C++ for the main engine. Sorry if my facts suck, have been in uni and quit woking for software comapny to study for 3-4 years.... stupid double degree.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 7:25 am
by GroundUpEngine
Aleios wrote:sorry if my writing is not understandable, im not the best at English :)
Nah that's fine, I totally understand what you mean. ;) Also I'm not sure what languages he used, but he was just giving an example I guess.
TheBuzzSaw wrote:I like C# for building Windows-based business applications. I use it every day at work, and it is a joy to work with.
Yeah that sounds about right thanks! Also I agree, a true upgrade for C++ would be pretty sweet.
MrDeathNote wrote:but c# and java are probably the most sought after skills at the minute. At the company I work at Java programmers are particularly in demand right now.
Good point man, this definitely clears things up! Also I remember falco using C# for his job. 8-)

Cheers guys! :cheers:

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 7:49 am
by avansc
yeah C# is coming up quick, but java is still by a decent amount ahead. That being said, knowing either of those languages are not really making you that competitive.

I would sugest you know..

procedural, C
OO, Java (read next line)
functional, Clojure (http://clojure.org/)

and probably most left out, know a "glue" language very well.(Scripting)

Perl, Python, Ruby, REXX, what have you. I think perl is a good choice, its ugly as hell but very powerful, and its used like you cannot believe.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 9:07 am
by MrDeathNote
avansc wrote:That being said, knowing either of those languages are not really making you that competitive.
That's a good point, normally you'll see a lot of technologies coming together and just being profficient in a certain language doesn't make you employable. For example, the project i'm working on in my day job all the heavy lifting is done by java server code but there's also a lot of strut's, jsp, javascript(jquery) etc. stuff going on to create the front end application. And also junit and watir for testing purposes. I think avasc has the right idea, you could be an incredible c++ programmer but if you have no experience in anything but c++ your options are fairly limited.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 11:53 am
by GroundUpEngine
MrDeathNote wrote:
avansc wrote:That being said, knowing either of those languages are not really making you that competitive.
That's a good point
I agree, thanks avansc ;)

EDIT: Lua is a 'glue language' I believe, I've been using it quite a bit recently.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 1:16 pm
by short
Honestly, it doesn't take long to pick up the newer languages coming from procedural c. It took me about 2 months to say "I know C#" working about 15 hours a week while full-time student. It's so much more important to know whatever you've learned as a programmer generically.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 1:32 pm
by GroundUpEngine
short wrote:Honestly, it doesn't take long to pick up the newer languages coming from procedural c. It took me about 2 months to say "I know C#" working about 15 hours a week while full-time student. It's so much more important to know whatever you've learned as a programmer generically.
Awesome ;) Great point!

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 1:40 pm
by thejahooli
Out of interest, what would you consider 'knowing' a language. I've completed many beginner books (Sam's Teach Yourself, etc.) in languages such as C# and Java, but I don't really consider myself as 'knowing' them.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 2:07 pm
by TheBuzzSaw
Yeah, I wanna emphasize: be careful claiming you "know" a language. It's one thing being able to know the syntax, libraries, etc. It's a whole different beast using the language correctly. My team here at work is all very bitter at the previous generation of programmers. Despite coding in C#, the old programmers ported over almost all of their C programming habits. So, instead of a nicely designed layout of communicating objects, we have a globally controlled state machine. Needless to say, we're in the middle of redesigning it.

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 3:27 pm
by Falco Girgis
It depends on what you do. The majority of you (and the majority of this forum) are very computer-science/software-engineering oriented. There is no denying that both Java and C# are far more widely used than C/++ for higher-level, multiplatform desktop applications (which is 90% of the job market for "programmers" these days). I have seen quite a few jobs using things like C++ with QT in place of the JIT languages for software development (because of speed and performance requirements). However, as somebody marketing yourself as a "programmer" in today's marketplace, you really must be acquainted with either Java or C#.

Before you freak out:
If you are at ANY level of competence with C or C++, Java and C# are literally a joke. They are C-based languages (at least syntactically). They also automatically handle lots of the low-level details that you were forced to do manually in statically compiled C/++. You Java/C# fans may want to punch me for this, but I don't care: the two languages are essentially C/++ with training wheels. There is absolutely no reason that a competent C/++ developer cannot pick either of these up with a few simple Google searches and a few days of dicking around with JIT compilers/interpreters. And honestly--I recommend you do.

On the flip side:
I like to emphasize the fact that the "mainstream" software development world of "average" computer scientists/software engineers does not reflect the entire market. Yes, trends in the industry have always leaned towards additional layers of abstractions and higher-level languages. With C# and Java, lower level C and C++ just aren't as important in the desktop application world which is where 90% of you will be working.

However, these languages aren't going anywhere. You will ALWAYS have computer engineers, embedded system developers, kernel developers, driver developers, real-time systems developers, game developers, and other kinds of programmers who WILL be developing at a lower level. Statically compiled C and C++ are not likely ever going to fade away from these areas. They are as relevant today as ever before. With the ever-growing embedded systems market (handheld gaming platforms, smartphones, GPSs, etc), even MORE jobs are being created for C/++ programmers. Calling C or C++ "outdated" is downright ignorant--maybe for your particular field of computer science, but they are still very relevant and necessary for other fields.

Just don't forget that it all depends on the job you are looking for. If you are planning to be a higher-level desktop applications developer, goddamn straight you're going to need to know C# and Java. However, just because these are the norm (or "industry standard") in that particular area does not mean that there is not a market for lower level C/++ developers. In many cases, I see the lower-level, software/hardware engineers writing these embedded applications making far more than your average Java/.NET developer...

Re: .NET vs C languages

Posted: Mon Mar 07, 2011 4:40 pm
by GroundUpEngine
Wow, that was very insightful and at the same time reassuring! Thanks sir :bow: