When the languages like Java or C# has been used by companies, a language like C++ became for many developers and mangers a complex and a bad language to avoid.
History of computer engineering can maybe explain this C++ vision:
Before internet explosion in 1990s, developing with C++ was very difficult due to the inexistence of technical documentation and feedback to resolve easily technical problems, so the team focused on technical layer.
We can understand why in this period the managers follow the technical approach and we looked for a C++ Guru to join the development Team.
After internet explosion we can found a many C++ documentation and feedback for technical layer but unfortunately the vision was not changed, and new developers spend lot of time searching for technical tricks.
The good way is to focus more time in the business layer which is the added value of a project and a technical layer must be just an infrastructure and we don’t have to spend a lot of time in it.
Imagine that we have to begin an application using COM Components, let’s see how two managers will realize this project.
C++ manager focused on technical layer
The first manager will first try to search for developers that master COM components it will take more time and energy but it’s obligatory for him to implement a project as he expect .
He will begin with a COM implementation and since the beginning of the project he add a complexity to it and also add useless dependency , even if the team contains just COM Gurus an overhead time will be spend in the COM Layer.
So finally this kind of manager will participate in an unpopularity of C++, every basic C++ developer will say “C++ is very complex”.
"Keep it simple" manager
"Keep it simple" manager
The second manager named “Keep it Simple” try to look for just one developer who master COM technology and the rest of the team are just a basic C++ developers.
This manager tell to his team to forget COM and just implement POCO objects ,simple classes that use a simple types to implement a business layer.
And just one developer who master COM technology develop a wrappers around the POCO objects.
So finally the “Keep it Simple” manager win a lot of time to look for developers and to implement the project and aproximatively the whole project is developed with a basic C++ concept, and isolate the COM technology complexity and limit dependency of a project .
With this approach every developer will say “WOW developing project that use COM technology is very simple”.
So try to avoid useless dependency; it can multiply the development time of a project, and a tool like cppdepend can help you to detect unecessary dependency .