As Bjarne Stroustrup points out, “C++ is a multi-paradigmed language.” It supports many different styles of programs, or paradigms, and object-oriented programming is only one of these. Some of the others are structured programming and generic programming.
And as Thomas Becker explains in this interesting article, there’s a tension between the generic programming and OOP. And here’s from the article the opinion of Alexander Stepanov and elder statesman about OOP: Continue reading “OOP vs Generics : “Is” vs “Has” approach.”
MemCache++ is a light-weight, type-safe, simple to use and full-featured Memcache client. It was developed by Dean Michael Berris who is a C++ fanatic and currently works at Google Australia. He also is part of the Google delegation to the ISO C++ Committee.
Studying the well-designed libraries is recommended to elevate your C++ design and implementation skills, and the goal of this article is to discover some memcache++ design choices that make it easy to understand and use. Continue reading “Explore the design of a modern C++ library : MemCache++ case study.”
Back to 2005 when I worked in a company where most of the code was developed in C++, in 2006 the managers decide to develop the new projects with C# and also migrate some C++ projects to C#, here were their arguments against C++:
- C++ is too complex.
- The C++ build system is too difficult to manage and maintain.
- C++ is stagnated for many years and it’s on its way to dying.
- It becomes very difficult to recruit a C++ developer.
Continue reading “Don’t touch to my C++ code.”
It is sometimes necessary for the C++ compiler to create temporary objects.They are used during:
- Reference initialization.
- Evaluation of expressions including standard type conversions.
- Argument passing.
- Function returns.
- Evaluation of the throw expression.
Continue reading “Hacking on Clang to demystify the temporary objects”
As developer, How many times during a day you need to ask google for something related to your work? How to use a library? Is there a fix for an encountered problem?
Maybe the answer is at least once a day.
Currently and as developers, the internet saves us a lot of time. Whatever the problem you have, just search the right keywords in google and instantly and in many cases you have a result that matches your need. Continue reading “What if the internet connection is down. Do you still productive as C++ developer?”
“A picture is worth a thousand words” is an English idiom. It refers to the notion that a complex idea can be conveyed with just a single still image or that an image of a subject conveys its meaning or essence more effectively than a description does.
This idiom could also be applied in software programming. Indeed you can easilly understand a mini project when exploring its source code. However a big project become complex and not easy to understand. In such cases it’s better to visualize the source code using graphs and diagrams to assist the developers understanding the source code. Continue reading “A picture is worth a thousand words: Visualize your C/C++ Projects”
The refactoring is defined as the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure.
We can enumerate three decisions made by the managers concerning the code refactoring: Continue reading “Want to modernize your C++ codebase, check first the banned C++11/C++14 features from the Google style guide.”
Before the initial standardization in 1998, C++ was developed by Bjarne Stroustrup at Bell Labs since 1979, as an extension of the C language as he wanted an efficient and flexible language similar to C
In 1983, “C with Classes” was renamed to “C++” , adding new features that included virtual functions, function name and operator overloading, references, constants, type-safe free-store memory allocation (new/delete), improved type checking. Continue reading “Flashback to explore the C++ algorithms implementations over years.”
It’s known that the presence of duplicate code has negative impacts on software development and maintenance. Indeed a major drawback is when an instance of duplicate code is changed for fixing bugs or adding new features, its correspondents have to be changed simultaneously.
The most popular reason of duplicate code is the Copy/Paste operations, and in this case the source code is exactly similar in two or more places , this practice is discouraged in many articles, books, and web sites.However, sometimes it’s not easy to practice the recommendations, and the developer chose the easy solution: the Copy/Paste method. Continue reading “Tracking the hidden duplicate code in a C++ code base.”