Why the C++ modules feature is very important for the C++ future?

C++ was stagnated for many years, and many developers was confident that the language will have the same destiny as  Cobol, Fortran and VB6. No new projects will be developed with it  and  C++ developers will do just the maintenance of the existing projects. But against all odds C++ reborn from its ashes and the new standards changes a lot how the language is used. Continue reading “Why the C++ modules feature is very important for the C++ future?”

Elevate your C programming skills by exploring the SQLite codebase.

16 years after its first checkin, SQLite is the most widely deployed database engine in the world. such open source project is a good candidate to learn how to make your code easy to understand and to maintain.

Let’s discover some facts about the SQLite code base, for that let’s begin with the following code snippet: Continue reading “Elevate your C programming skills by exploring the SQLite codebase.”

Lessons to learn from the old well implemented projects: Prince of Persia && Doom3.

Currently many mature libraries and frameworks exist for each programming language and many advanced features were added to the languages. But what about the old projects where the language features were not advanced as now and no many mature libraries existed yet?

Let’s explore some old well implemented projects and discover how they are implemented. Continue reading “Lessons to learn from the old well implemented projects: Prince of Persia && Doom3.”

The refactoring overhead costs of the C++ mechanisms over C

Few years ago when Linus Trovalds criticized C++ and told:

inefficient abstracted programming models where two years down the road you notice that some abstraction wasn’t very efficient, but now all your code depends on all the nice object models around it, and you cannot fix it without rewriting your app.

Many C++ developers does not appreciate this opinion. However we must admit that each language facility comes with a price and it’s better to know it than to think that my best programming language is perfect. Continue reading “The refactoring overhead costs of the C++ mechanisms over C”

The rise of the new language MC++

During  the last few years we talk about the “C++ Renaissance”. We have to admit that Microsoft was a major actor of this movement, I remember this video where Craig Symonds and Mohsen Agsen talked about it.

In 2011 Microsoft announced in many articles the come back of C++, and Microsoft C++ experts like Herb Sutter did many conferences to explain why C++ is back and mostly recommend the use of Modern C++. In the same time the standard C++11 was approved and we begin to talk about  C++ as new  language. Continue reading “The rise of the new language MC++”

What Clang can tell you about your Visual C++ projects?

Each compiler could report after the build many warnings. These warnings won’t keep your code from compiling except if you decide to treat them as errors. Don’t hesitate to take a look as these warnings instead of ignoring them. Indeed compiler warnings are often indicators of future bugs that you would see only at runtime.

Clang is a C/C++/Objective C compiler with many interesting features, here are some major end user features:

  • Fast compiles and low memory usage.
  • Expressive diagnostics.
  • GCC compatibility.

Continue reading “What Clang can tell you about your Visual C++ projects?”

Doom3 is the proof that “keep it simple” works.

If you search on the web for the best C++ source code. The Doom3 source code is mentioned many times, with testimonials  like this one.

I spent a bit of time going through the Doom3 source code. It’s probably the cleanest and nicest looking code I’ve ever seen.

Doom 3 is a video game developed by id Software and published by Activision.The game was a  commercial success for id Software; with more than 3.5 million copies of the game were sold. Continue reading “Doom3 is the proof that “keep it simple” works.”

How it was the C source code 25 years ago?

C is one of the most popular language around all the world, it was initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. Many thousands of projects was developed using C since then. It’s used for all kinds of needs, we can enumerate OS, embedded applications, gaming development, image processing, word processing and database engines.

It’s interesting to discover the evolution of a language, and how it evolved over years of feedbacks from developers and end users. We will go back 25 years ago to discover how some C projects were implemented. Continue reading “How it was the C source code 25 years ago?”

After 17 years of active development, does the Boost C++ library meet its original vision?

In 1998 a proposal for  a C++ Library Repository Web Site was posted by Beman G. Dawes. The original vision aims to satisfy two major goals:

  • A world-wide web site containing a repository of free C++ class libraries would be of great benefit to the C++ community. Although other sites supply specific libraries or provide links to libraries, there is currently no well-known web site that acts as a general repository for C++ libraries. The vision is of a site where programmers can find libraries they need, post libraries they would like to share, and act as a focal point to encourage innovative C++ library development. An online peer review process is envisioned to ensure library quality with a minimum of bureaucracy.
  • Secondary goals include encouraging effective programming techniques and providing a focal point for C++ programmers to participate in a wider community. Additionally, such a site might foster C++ standards activity by helping to establish existing practice.

Continue reading “After 17 years of active development, does the Boost C++ library meet its original vision?”

Easy way to detect where the C++11/C++14/C++17 features are used in a C++ project : WinObjC case study.

In a previous post we talked about the clang-modernize tool to detect where you can use some new C++11 features to modernize your C++ source code.  But how we can easilly detect where the new C++ features are used in a project?

Facebook and Google use intensively C++11 in their source code. Folly from Facebook as we discovered in a previos post use almost all the C++11 features and I was curious to know if Microsoft also use the new  C++11 standards in their open sourced code. Continue reading “Easy way to detect where the C++11/C++14/C++17 features are used in a C++ project : WinObjC case study.”