Hamletic doubt

v71 105 Dec 20, 2012 at 18:06

Good day to everybody , i want to jump straight into the argument i see around that the industry jobs shifted from mainly focused in c++ to c# , not being very convinced about c# performance i left it as a curiosity in my mind , for a considerable amount of time.
Now i see that everyone is searching for c# coders, probably because of Unity and such, my problem is that i don’t want to learn c# and loose the fluency i have in c/c++.
I have heard that c# is very similar to java, a language i don’t conside very efficient.
How do you manage your inner troubles ? should i learn c# and if so , will i forget the good practice fine tuned in years in c++ programming ????
Sorry for any grammar mistake
i dont’ want to start a flame war, and i dont’ want to insult any c# or java supporters
To moderators , why is showing always a warn status ?? have i been bad with anyone ???

7 Replies

Please log in or register to post a reply.

Reedbeta 168 Dec 20, 2012 at 18:22


To moderators , why is showing always a warn status ?? have i been bad with anyone ???

No, everyone on the forum has a warn status, but yours is at zero. (It is a sort of progress bar that fills up as people get warned.)

Albertone 101 Dec 20, 2012 at 18:36

@v71: it’s (almost) always good to learn another language - personally, I’d try C#.
However, I’ve been reading of a C++ renaissance for over a year - e.g. Microsoft expressed renewed interest in the language, etc.
There’s also a site of the committee now: isocpp.org
Whether this renaissance is really happening or not, it’s a good idea to learn other languages.

v71 105 Dec 20, 2012 at 19:18

Thanks for the reply, but talking about renaissence is a bit too late in my opinion, adding new syntactic sugar won’t make people confortable with c# and java to jump over c++, new engeneering courses start already with java , and they left c++ completely out since many years now.
What i’d like to see is a renaisseance of tools built around and explicitly ( sp ??) for c++ ( gui editors, web programming , parsers , wpf compatibility and the list goes on ).People skipped c++ in favour of c# or java becasue of productivity not becasue the syntax is sexy , when i had to write my thesis i had to create a browser in java , that took me a week i don’t want to think how much time i would have spent if i had to do that in c++.

Albertone 101 Dec 20, 2012 at 19:55

Speaking of languages - did you take a look at D?
It’s obviously not as useful as C#/Java on the job market, yet I think it’s very interesting.

fireside 141 Dec 20, 2012 at 20:09

I think you have to do multiple projects of different languages if you want to stay fluent in them. Alternate or whatever. It’s kind of hard to do because it’s easier to stick with just one project and it’s easier to specialize in one language. C# is very much like Java. I think there are only 7 different keywords or something. I consider it a clone, myself, but a lot of c# people get offended and make a big deal out of the small differences.

TheNut 179 Dec 20, 2012 at 23:51

I know several languages and don’t particularly find it difficult to work with them. I would consider it somewhat mandatory to know a few languages (and APIs) these days because you get a sense for what works really well and it will improve your skills. I loved the .NET BCL so much that I ended up porting most of it over to C++ (with some additions, like RB trees). My productivity has jumped through the roof and I code similar to how I would if I were using C#. I ended up doing the same for JavaScript as well. C++ is an old language that’s difficult to get up to speed. C# and Java took large leaps to get the industry moving forward, so when you work with these languages you’re really seeing what coding for the future is like. C++ is a capable language with a good set of frameworks, but it will always be a couple steps behind.

The other thing is to find commonality between all the languages you work with and maximize on that. For instance, C/C++ coders can use unportable pointer arithmetic iterator++ instead of just using language independent indexers array. Simple things like that can help you maintain a common ground to work with and make switching between languages much easier.

I wouldn’t say Java as a language is inefficient. I would put it on par with C++ with the only negative being the auto GC. Same goes for C#. Java has bigger problems that I feel is usually related to the way products are built with it. Due to Java’s nature, it much easier to write plugins than using languages like C++. As a result, you have this software that loads hundreds of plugins, which is time consuming and each module has it’s own memory and processing requirements. You end up swallowing gigabytes of memory before the process has even started. From an architect point of view, the software is well organized and structured, but the hardware costs are quite high as a result. The second problem to Java is Oracle :)

Stainless 151 Dec 21, 2012 at 08:10

I hate java with a passion, it was a nice idea which failed. The whole point of java was portability, then they threw that out of the window when they started creating pJava, midp, j2me, (pick any four letters and add a j). On top of that the basic VM has a poor design. Hell the garbage collector has a known bug that means it is expected to crash every ten hours.

Having said that, I can code in Java.

I love C#, it has a garbage collection issue as well, but as long as you know about it and allow for it it’s not a major issue. However I only use it for tool creation now. Never for serious game coding. I don’t use Unity, probably never will. We met with the developers of Unity asking to port their stuff to our platform and they got all precious and said no. XNA is dead to me, the arrival of windows 8 and xna 4 killed it as far as I am concerned.

I work in c++ more than anything. It’s what all the games coders I work with use, so I use it. It can be agony at times trying to work out what some little guy in a programming farm in China did in this block of code, then realising he’s overridden + to do something else. You also have compiler compatability issues, things that are legal in visual studio but not in any other c++ compiler.

My favorite language to work in is Forth. Love it. Not a lot of cause for it though.

I also loved VP, but Elate/Intent is dead. I am probably the only person in the world who still has a working dev system.

The future is c#…. absolutely not. For one thing more and more cpu’s are heading towards parallelism. Not something c# is good at. Hell one cpu that I have just been sent has 16 cores each with it’s own block of memory and a very fast link to all other cores.

Write something meaningful on that in c#