13 years after the Herb Sutter prediction. does the free lunch really over?

Back in March 2005 when herb Sutter published its famous article “The free lunch is over”  and predicted a Concurrent Programming Revolution as big as Object-Oriented Revolution. And here’s a short explanation from the article about the prediction motivation  : Continue reading “13 years after the Herb Sutter prediction. does the free lunch really over?”

C++ is maybe low level but not over complicated. It’s up to you to make the most of its richness.

How many times do you read a reflexion  concerning C++ like this one:

C++ is a difficult language even for experienced C++ developers. Even for the simplest algorithms you have to explain many of the language subtleties. Consider a Hello World example: Continue reading “C++ is maybe low level but not over complicated. It’s up to you to make the most of its richness.”

What made John Carmack a legend in C++ programming? And which lessons to learn from him when adopting the new standards?

Have you already seen a basketball or a soccer player plays a simple yet effective game to such a point that you say: Why couldn’t everybody play like him, he uses only easy techniques?

And as C++ programmer I had the same remark when exploring the John Carmack source code. It’s so simple, we wonder why we can ‘t develop like him.

Let’s explore some Doom3 source code choices and try to understand why the code even if it’s simple, it’s very efficient.

On November 23, 2011 id Software maintained the tradition and it released the source code of their previous engine. This source code was reviewed by many developers, here’s as an example of Doom3 feedback from fabien (orginal source): Continue reading “What made John Carmack a legend in C++ programming? And which lessons to learn from him when adopting the new standards?”

Is the thrashing decrease the performance of your C++ application? Take a look at Doxygen source code.

When the processes running on your machine attempt to allocate more memory than your system has available, the kernel begins to swap memory pages to and from the disk. This is done in order to free up sufficient physical memory to meet the RAM allocation requirements of the requestor.

Excessive use of swapping is called thrashing and is undesirable because it lowers overall system performance, mainly because hard drives are far slower than RAM. Continue reading “Is the thrashing decrease the performance of your C++ application? Take a look at Doxygen source code.”

OOP vs Generics : “Is” vs “Has” approach.

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.”

Some design choices boost the performance : V8 javascript engine case study.

The V8 engine is Google’s open source, high-performance JavaScript engine written in C++. Alongside Google Chrome, it can also be found in MongoDb , Node.js, and many other popular applications.

It’s very interesting to discover what makes V8 so fast and which solutions were used to achieve this goal. Continue reading “Some design choices boost the performance : V8 javascript engine case study.”

Explore the design of a modern C++ library : MemCache++ case study.

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.”

Don’t touch to my C++ code.

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.”

What if the internet connection is down. Do you still productive as C++ developer?

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?”