Wednesday, January 20, 2010

Half way through

Today I've reached page 300 of the great "C++ from the ground up" book. What can I say? Maybe "Java makes programmer's life easy, C++ does not!" would be a good summary sentence.

The concept of passing objects as parameters, returning or initializing them is much, much simpler in Java. Everything is passed by reference. C++, gives more flexibility on this subject, but it all comes with an enormous price - complex and bug-prone code! It feels like an overkill to implement a custom copy constructor everywhere the memory is dynamically allocated for the class members. It is however necessary, otherwise a serious errors may (and probably will) occur. Errors which are both, hard to find and not obvious for the beginners.

So what happens if you work in a team? Some guys are good, the other just regular. There is only one thing that come to my mind - buggy and ugly code full of memory leaks made by incompetent developers. Oh.. there is a second thing that comes to my mind now. Outsourcing your C++ project to India or somewhere else may be a really bad decision.

Also, all this makes me think that people at the university should not start with C++ as their primary language. It's far too complex. To be able to build a bug free apps with it is nearly impossible. How can you become a programmer if you never build a good and working app? Even a teacher may have problems with detecting those little bugs which may not scream "here I am" during every execution of the program.

Moreover, an average, professional programmer is typically a lazy, not-really-responsible human being. (Since a human is not a machine and may make mistakes, she will probably do that.) No, no, C++ is not a toy, it is a heavy weapon for which reading the manual is simply a must... which is actually good for me :-) I have some time to do that now. (Which probably won't stop me from writing a shitty, bug code in the future... just like all the other do.)

Oh my.

No comments: