I hate how people complain about managed languages. Sure the syntax in BASIC .Net is horrible(and it is), and it's performance isn't amazing. However more respectable languages such as Managed C++ and C# have several advantages over C and C++. They have a large mass of libraries backing them up, and theoretically they are cross-platform(and some open-sourced linux organizations have been taking advantage of this). Though it isn't supported directly by Microsoft, it is 100% legal. With managed languages, the JIT can, and does, compile the code to native code specifically for the host machine. (I.e it can make critical optimization decisions based on the hardware when it's compiling the CIL to native code). Where as with c\c++ it's compiled for one specific set of hardware.
.Net languages are clearly not what you'd use to write kernel-level software(though they have been used to do so, there are compact versions of the .Net framework that have been brought to the kernel-level). But I mean, come on people, most of you here are just writing hacks that won't even in the most remote effect depend on performance, so ultimately it doesn't matter at all.
Obviously if you want to write game engines professionally you need to understand C\C++ but that's the easiest part. You can inherit your OOP skills from .Net(not all of it without some hackery in C\C++), your AI knowledge from .Net, and your understanding of DirectX or any other graphics API. For example, XNA gives you the ability to access and interface with it in the same way you would DirectX.
In the end, it doesn't matter. It's easy to learn C++, but it's hard to understand and make design decisions, and understand the theory behind graphics interfaces and AI. If you ever want to perform hardware hacking though, you're going to need to take a much deeper step then C anyway.
Once you've learned C#, C++ is easy. You just need to learn how to manage memory allocation and use pointers & references. Ofc you will need to understand how to use the standard C libraries, but again this isn't too difficult after working with the .Net framework.
If you're too afraid to step into managed C++ then you're too afraid to keep up with technology, because I guarantee companies are going to start using it(I hate the new syntax too though :/).
Also, this whole argument is based upon the assumption that when we regard C++, we regard both it and the common compilers used with it, as theoretically it can be compiled the same way C# is.
.Net languages are clearly not what you'd use to write kernel-level software(though they have been used to do so, there are compact versions of the .Net framework that have been brought to the kernel-level). But I mean, come on people, most of you here are just writing hacks that won't even in the most remote effect depend on performance, so ultimately it doesn't matter at all.
Obviously if you want to write game engines professionally you need to understand C\C++ but that's the easiest part. You can inherit your OOP skills from .Net(not all of it without some hackery in C\C++), your AI knowledge from .Net, and your understanding of DirectX or any other graphics API. For example, XNA gives you the ability to access and interface with it in the same way you would DirectX.
In the end, it doesn't matter. It's easy to learn C++, but it's hard to understand and make design decisions, and understand the theory behind graphics interfaces and AI. If you ever want to perform hardware hacking though, you're going to need to take a much deeper step then C anyway.
Once you've learned C#, C++ is easy. You just need to learn how to manage memory allocation and use pointers & references. Ofc you will need to understand how to use the standard C libraries, but again this isn't too difficult after working with the .Net framework.
If you're too afraid to step into managed C++ then you're too afraid to keep up with technology, because I guarantee companies are going to start using it(I hate the new syntax too though :/).
Also, this whole argument is based upon the assumption that when we regard C++, we regard both it and the common compilers used with it, as theoretically it can be compiled the same way C# is.


