View Single Post
Old Jan 2nd, 2007, 3:33 PM   #5
Arevos
Programming Guru
 
Arevos's Avatar
 
Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5 Arevos is on a distinguished road
Quote:
Originally Posted by Tim View Post
It abstracts the programmer away from the complexities of low level programming that C++ allows. This is its main advantage and disadvantage. It is nearly impossible to cause a buffer overrun or to have a memory leak in a .net app.
Not quite true. You can define a block of code or a method as "unsafe", allowing you to use pointers and play around with memory in the VM, allowing the unwary to unintentionally make their applications vulnerable to the buffer overflows you see in C. However, I've never found a need to use the unsafe keyword, and I suspect most other programmers don't, either.

Quote:
Originally Posted by Tim View Post
Also there is the fact that C# was designed by Anders Hejlsberg, the same person that wrote Turbo Pascal and designed Delphi. c# is a very easy to learn language that is very expressive. I personally prefer C# over Java or VB.net for RAD programming.
It's not bad, especially if you're using the later versions where you get to play around with anonymous delegates (AKA higher level functions) and generic typing. Unfortunately, at work I'm still stuck with .NET 1.1, so C# seems a little less rosy to me.

That said, C# still has some legacy cruft it's dragged from C++, and its type system is rather primitive. All static languages lack some flexibility when one compares them to dynamically typed languages, but this can be mitigated with a sufficiently advanced type system, which C# rather lacks.
Arevos is offline   Reply With Quote