Why is there a demand for C# programmers?
Miscellaneous Forums/General Discussion/Why is there a demand for C# programmers?
I am interested to know why there is a demand for C# programmers.
And I would also like to know, what are the advantages to learning C# over something like C++.
I was always of the opinion the C++ was useful because programs written using it, could easily be ported to other systems.(Like Linux and Mac)
Thanks everyone,
The Mighty WERDNA(Lord Of Darkness)
C# is suported in a wide range of platforms due to the mono framework. And the applications written in C# requiere a lot less time of development, and a lot less time of maintenance (so they're cheaper in costs terms). Additionally, it is a managed language.
c# is taking over the vb space.
Forget the illusion that C++ programs can easily be ported; that might be true for console (text-only) applications, but certainly not for GUI apps - unless you use a working cross-platform framework.
Also, cross-platform capabilities are not nearly as important in real life as certain marketing departments claim it is. If you want to truly take advantage of a platform, you write natively for it - end of story.
Since Microsoft still owns over 90% of the desktop market, portability, especially in the business world, simply is non-issue on the client, since those clients run on... well, it's usually not GNU/Linux.
C# and the .NET platform make developers more productive, especially when you write GUI applications for the Windows platform. Because .NET is a "managed" platform (unless you intentionally use it differently) with garbage collection and safe memory usage, you won't create 'buffer overflow' security holes anymore.
Why else is there a demand for C# developers? Well, Microsoft puts a lot of marketing money into pushing its .NET platform, which supposedly is the future of Windows development, and the .NET platform was designed with the C# language in mind. In translation: The company owning the market for the computer desktop markets C# and .NET as the development platform of choice for their desktop systems for years to come.
We're talking about a market of one billion PCs, and according to the market share, more than 900 million(!) of them use Microsoft operating systems. And that's not going to change any time soon. (Which does not mean you cannot make a good living with the remaining 10% of the market.)
I think in the corporate world it's an extremely safe bet to use a 'blue chip' platform, and that explains the increasing demand for C# developers. C++ is entering the COBOL phase of languages; it still has a long, long life ahead of it, but it's losing its importance.
Because great programming languages like B3D & BMax allow people to cut their teeth coding without too much pain, which eventually leads them to (possibly) code in the market leaders (well, MSoft do have one of the bigger marketing departments....) C# blah.
Not so sure C# is taking over the VB space though, I've done VB6 & VB.NET more recently and correct me if I'm wrong but I'd imagine c# takes a little more application than VB6, VB.net ?
I still work in good ole 'C' at work. Not for much longer though, hopefully I'll be moving to a 'CM' role shortly, which should relight my fire for coding at home again. Potentially even in something more up to date like c#.... But hey, I'll probable stick with BMax & B3D (;-)
I am interested to know why there is a demand for C# programmers.
Because there is a demand for business applications, and C# happens to be one of the mayor languages for developing said applications.
And I would also like to know, what are the advantages to learning C# over something like C++.
It takes considerably less time to learn C# (well) and C++ is an obsolete language.
I was always of the opinion the C++ was useful because programs written using it, could easily be ported to other systems.
LOL!
Because it's the "in" thing ;-)
Nah not an "in" thing at all. C# is the natural replacement for C++ for the mainstream game devs. Plus, they hire programmers that have gone to college to learn a C derivative so it's a natural choice.
C# does not use pointers
Why does C/C++ make a so extensive use of them ?
Any advantage ?
C and C++ are systems programming language, and pointers are essential in that domain. You need them for direct/manual memory management.
Besides, C# --has-- pointers in unsafe mode. It's Java that's so picky about them. ;-)
I was going to agree with Gray that there is a factor of it being the new coolest thing, after all, gone is the + and the ++ and now we have the #. Wow!
Any advantage ?
Memory leaks, unchecked buffer overflows, rogue pointers. Whether it's an advantage is really a matter of your perspective I guess. If you're the kind of guy who uses your programming skills to pick up "chicks", and is frustrated that Assembly simply doesn't have the street cred it used to, then yes.
Additionally, when C first arrived, it did not have basic things like arrays, strings and function parameters you could write to, so pointers were necessary in order to do those things. As is often the case with C++, it's all about legacy, and outdated reasons for things you no longer need most of the time.
yep, I'm back to getting BMax running within Linux in VMWare, and it is going well. C# seems like less of a possibility all of a sudden. C is enuf of a ball ache (;-)
If only BRL had a slice of MSaft's marketing blah....
The reason I'm making such progress is BRL's latest Linux release of BMax, works well, even within a VMWare version of Linux.
Major Thanks everyone for your input.
I will definetly learn C#.
And I will still learn C++ as well, but I won't spend too much time on it.
When I have my first C# game written(It will probably take me a while),
I'll go ahead and post it in the BlitzShowCase so you guys can see what
you think.
Thanks again everyone,
The Mighty WERDNA(Soon To Be Lord Of C#)
How is C# compared to Java at the moment.
I mean surely there should be something for the official support that Java supports cross platform, I mean mono is all well and good but it's only supports .net 2.0....
I switched from VB.Net to C# about 3.5 years ago, and I've never looked back. As a contractor, I found that C# jobs paid considerably better than equivalent VB.Net jobs.
C# is, for the most part, a more elegant language than VB.Net imho.
> How is C# compared to Java at the moment.
Plenty of jobs for either language. So they are both just fine. VB.NET has plenty too.
@Milky Joe, that interesting to hear. I've 3 years left of my current contract, might start some sharp izm after all. Now to find a sharp course.....
Does anyone know of any good books on learning C#?
I have one, but it really sucks.
Also would the Blitz3D SDK be a good purchase for C#?
The Mighty WERDNA(Lord Of Darkness)
> Also would the Blitz3D SDK be a good purchase for C#?
I think it is a great combination! (I use VB and the SDK, but either language works great)
And I will still learn C++ as well, but I won't spend too much time on it.
Then I wouldn't count on learning C++ well enough to do anything useful. I'm sure most of us here have bought that $50 "learn C++" book, perused it for a day or two, then put it up on the bookshelf and resumed coding in blitz. C++ takes a level of dedication that goes beyond being a "hobbyist" programmer (which is what most of us here are considering <10% actually release games). Reality check.
If "Head First C#" (which I don't know) is as good as the legendary "Head First Java" (which I do know), then go for that book - the Head First series is awesome.
Visual C#.NET Step by Step was the book that I used to learn C#; it was good enough.
I really, really like "Mono: A Developer's Notebook".
Programming Windows in C# by Charles Petzold probably is also a great book; at least his "traditional" Programming Windows books are excellent and must-reads/must-haves.
How is C# compared to Java at the moment.
You can't really compare the two, unless you know what you want to do. They each have their strengths and weaknesses.
Thanks for the books Winni, I'll check them out.
And LOL, Thanks for the reality check Chroma.
Thank you everyone else as well, your help has been extremely useful.
I will definetly forget about C++, and stick with C# and the Blitz3D SDK.
Thanks again,
The Mighty WALNUT(Lord Of Nuts)
You can't really compare the two, unless you know what you want to do. They each have their strengths and weaknesses.
I didn't mean the capabilities of the language, I meant the demand for the programmers for each said language.
Yes The head first book is pretty special guys - check it out!
IPete2.
The first question when considering another language is what do you want to create with it. Also, what limitation have you hit in Blitz that is stopping you from using it as your preferred solution?
I didn't mean the capabilities of the language, I meant the demand for the programmers for each said language.
I think it largely depends on what type of applications you want to work with. Web applications (J2EE) and applications for mobile devices (J2ME) are usually Java and Web services and regular windows applications are usually .Net. In my experience.
Also, what limitation have you hit in Blitz that is stopping you from using it as your preferred solution?
Were you paid to say that?!? hehe
basic Games and basic apps, sure blitz can cut it (depending on the flavor of blitz); however in the 'real' world of applications, blitz will probably never be a contender....
C# is worth learning, it's very good. You waste a bit of performance in the managed objects however you gain so much for that small trade off.
I didn't mean the capabilities of the language, I meant the demand for the programmers for each said language.
C# is good for application development, and obviously as long as there are applications to develop, there will be a demand for C# programmers.
I see C# as possibly becoming a standard for Windows application development, but unlike FlameDuck, I don't think it will be fully replacing C++ any time soon. C++ is still way ahead of C# in performance (especially in mass memory manipulation and processing), so there's no way video editing software, high performance game engines, etc. will start using C# exclusively. Not for several years at least.
If you believe
some reports C# .NET/Mono programs may sometimes be faster than their native C/C++ counterparts, so I see no reason it couldn't replace C++ - especially after more advances in JIT compilers.
If you believe some reports C# .NET/Mono programs may sometimes be faster than their native C/C++ counterparts, so I see no reason it couldn't replace C++ - especially after more advances in JIT compilers.
Sorry, I made a common mistake when I said "C++" is faster than "C#". No language is faster than another. But compilers are.
I should have said Microsoft Visual C++ 2005 is 2 - 10x faster (sometimes more) than Microsoft Visual C# 2005 in most benchmark test. And it's true that Microsoft Visual C# 2005 is faster than GCC C++ in some cases. That doesn't surprise me, because GCC C++ is slow.
It all depends on the compiler. For example, contrary to popular belief, Microsoft Visual C++ 2005 is actually considerably faster than pretty much any C compiler. This is because:
A. Microsoft makes really good compilers.
B. C++ has more potential for compiler optimizations than C.
But that's getting off-topic. Anyway, I'd be very happy if C# ever does really exceed C++'s performance (and the potential is definitely there, with JIT), but unfortunately this is currently not the case. Maybe in a few more years, I don't know.
A part from these consideration , do you think that the programming language can really have a serious impact on the frame rate ?
I mean, Let's assume that the game engine has been written in C\C++
Does it make that difference, generally speaking, if the game logic is written in Phyton (not to mention C#) rather than in C++ ?
There are so many bottlenecks in a game
A part from these consideration , do you think that the programming language can really have a serious impact on the frame rate ?
I mean, Let's assume that the game engine has been written in C\C++
Does it make that difference, generally speaking, if the game logic is written in Phyton (not to mention C#) rather than in C++ ?
There are so many bottlenecks in a game
It depends. For performance-critical code like rendering, pathfinding, physics, collision, etc., it's best to go with C++. For low-volume, high-level code, like high level AI decision making and overall game logic, Python is a very good choice.
however in the 'real' world of applications, blitz will probably never be a contender....
True, but there's no reason from purely a syntax perspective why it shouldn't. I asked about the limitation of Blitz to get a better idea what he's after. I'm not receiving a cheque from BRL, although I will consider any offers of bribery :)
> True, but there's no reason from purely a syntax perspective why it shouldn't.
Max's lack of multithreading pretty much knocks it out of contention immediately. The lack of professional libraries is another major limitation. Although it has great graphics libraries the ones for handling business functions are very lacking. (not a knock on Max, it's a one man product where C# and Java have major teams working on them)