quote:Original post by dmikesell
Strike two. Still waiting for a serious refutation of what I wrote...
C++ requires discipline or you''ll write code rife with memory errors and leaks. I''d rather not maintain that kind of code, so I''d prefer that undisciplined programmers uses something else. And in most cases I think they do in fact make the switch to something that will help mask their lack of discipline.
I''ll bite
Ever heard of dangling references? In a Java application of any significant size these can easily lead to OutOfMemoryExceptions, are difficult to track down, and very easy to create. A very common mistake made by those with little Java experience.
Ever used Java ByteBuffers? People always forget to flip/rewind, or set them to native order. A very common mistake when writing net code or using a library that makes heavy use of NIO buffers such as LWJGL, and hard to track down for someone who doesn''t know what to look for.
I could go on, but my point is that *programming* requires discipline. A language will never take that away. They can give us safety nets, they can help reduce development time/costs, but there will always be a way for us to shoot ourselves in the foot. Besides, there are plenty of language-agnostic things that require constant attention on a team (coding conventions, CVS merges, etc...), any one of which could cause a stall in the project.
Don''t make the mistake of thinking that programming with Java is easy. I''ll argue that programming with C++ is just as easy. What''s difficult in both languages is programming *well*. And that requires time, experience, and discipline.