views:

125

answers:

3

Certain programming languages tend to give you a lot of liberty (C/C++) while others seem to have certain restrictions (C# and Java). Is it better to let programmers have liberty (pointers, destructors, multiple inheritance etc.) or to limit them (garbage collector, etc.)?

A: 

It depends on what you are looking for.

Many languages have gc and no pointers in an attempt to prevent programmers from shooting their feet. On the other hand, languages such as C permits very low level programming, and reaches areas that Java and C# can't and can perform much better. On the other hand, programming in Java o C# might be more productive money wise.

Everything needs a context. Some tasks are better done in X language, in some other you can choose. There will always be a choice to be made, based on people skills, requirements etc.

Tom
Or, in some cases, blowing your entire leg off :)
HappyCodeMonkey
+2  A: 

It totally depends on the project. If you need the performance (for example, for a high-load server or a 3D video game) then you need as much control as you can get. However, if you don't necessarily need the speed (web applications), then having the language implementation take care of things like garbage collection and memory management, etc., is great because the developer doesn't need to worry about these things.

musicfreak
A: 

In my opinion, managed code has been a godsend. Besides, unmanaged is always there if you need it, so it's really a false choice. :)

JP Alioto