By using this site, you agree to our Privacy Policy and our Terms of Use. Close
Andir said:
This is my last post in this thread, but I highly suggest overlooking C# as a learner language. Yes, it's incredibly easy to do stuff in it, but you get that at a cost of:

1. ) Being pretty much dependent on Microsoft. Yes, there is Mono, but when Microsoft releases version 4.x of .NET it will likely include features that Mono does not. Mono will always be one step behind in that manner. Also, what happens when Microsoft pulls out of the "no lawsuit promise?" (...and they will)

2. ) Losing code longevity. I use VS2005 at work and I have to tell you it's a pain in the ass (and really stupid, IMHO) to have to upgrade an existing C# solution in order to work with the latest version of .NET. In fact, keeping multiple, non-compatible versions of .NET is a crux of the language, wherein C++ is pretty much compatible with every old C program ever made. C/C++ are essentially turn-key languages. You're not going to have to live on blogs to keep up with the latest shortcuts and language features (which points out that C/C++ are still very powerful and very simple languages as opposed to the ever growing complexity of .NET with each new version.) What happens when your program written in .NET 1.1 stops working because Microsoft decides that they no longer need to include it with Windows 7 (I have no reference, just stating a probably situation) and have stopped distributing the 1.1 VM? Hell, even Java, with the latest Virtual Machine was able to run even the oldest Java bytecode without having to dig up a version 1 VM.

3. ) Not learning about proper memory management. Yes, using() {} blocks are nice and all for disposing objects, but it doesn't do anything that a deconstructor function in C++ doesn't. I'd even argue that the deconstructor is more efficient and reliable since it doesn't require a specialized block surrounding the scope of the object. You just place it in your object class file and update it with needed code.

I would also suggest to steer clear of Visual Studio if you plan on continuing this path. Every project you will make in Visual studio will try to push you to Microsoft methodologies and they push it in every document on MSDN as well. If you plan on going with C/C++ check out Code::Blocks or DevC++. I've personally used both. They both have good and bad features and it boils down to personal preference. There is Eclipse as well, but in my experience, Eclipse can be a little too bulky to work with.

Lastly, I'm not a fan of Microsoft. It's not blind fanboyism, nor blind hate that I follow. It's corporate history, and current corporate practice that make me this way. They clearly are not out for the common good of the world, you or the gamers but are strictly a corporate entity looking for every way possible to keep your money flowing into their pockets. Only true, open, and free standards can be free of this type of greedy influence.

thanks. i'll remember that, and i think you finalized my decison....