Learn from the C++ POCO libraries how to write a clean code.

The POCO C++ Libraries are a collection of open source class libraries for developing network-centric, portable applications in C++.

POCO stands for POrtable COmponents. The libraries cover functionality such as threads, thread synchronization, file system access, streams, shared libraries and class loading, sockets and network protocols (HTTP, FTP, SMTP, etc.), and include an HTTP server, as well as an XML parser with SAX2 and DOM interfaces and SQL database access.

The modular and efficient design and implementation makes the POCO C++ Libraries well suited for embedded development. Continue reading “Learn from the C++ POCO libraries how to write a clean code.”

Try to understand the Linus Torvalds C++ opinion.

Linux, Php, and Git are a popular projects developed with C, in the other side OpenOffice, firefox, Clang, Photoshop are developed with C++, so it’s proven that each one is a good candidate to develop complex applications. Try to prove that a language is better than the other is maybe not the good debate. However we can discuss the motivations behind choosing one of them.

When I discovered the opinion of Linus Trovalds about C++, and as a C++ developer I totally disagree with his point of view. But it’s a point of view from the lead developer of the Linux kernel and git and he can’t be totally wrong. Continue reading “Try to understand the Linus Torvalds C++ opinion.”

Master C++ Concurrency with ‘Concurrency with Modern C++

C++11 and beyond introduced a new thread library. This library includes utilities for starting and managing threads. It also contains utilities for synchronization like mutexes and other locks, atomic variables and other utilities.

It’s a good news to have a standard way to manage the concurrency in C++, indeed before the introduced features in the new standards, many libraries and ways existed to manage the concurrency in the C++ projects. Continue reading “Master C++ Concurrency with ‘Concurrency with Modern C++”

Easy steps to modernize your C++ code.

Recently the C++ community  promotes the use of the new standards to modernize the existing code base.  However even before the release of the C++11 standard some known C++ experts like Andrei Alexandrescu, Scott Meyers and Herb Sutter promotes the uses of the generic programming and they qualify it as Modern C++ Design. Here’s what say Andrei Alexandrescu about the Modern C++ design:

Modern C++ Design defines and systematically uses generic components – highly flexible design artifacts that are mixable and matchable to obtain rich behaviors with a small, orthogonal body of code.

Three assertions are interesting in his point of view: Continue reading “Easy steps to modernize your C++ code.”

Some C++ good practices from the OpenCV source code

OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision, developed by Intel Russia research center in Nizhny Novgorod. The library is cross-platform. It focuses mainly on real-time image processing.

OpenCV is widely used, Adopted all around the world, for end users, it’s very mature and powerful, for developers it’s well implemented and designed. The OpenCV developers used very basic principles which makes it very simple to understand and maintain.

Let’s discover some OpenCV design choices: Continue reading “Some C++ good practices from the OpenCV source code”

Comparing Quake3 Original and Kenny Edition Codebases

Quake III Arena is a multiplayer-focused first-person shooter video game released in December 1999. The game was developed by id Software. Quake III was a very popular game and even now it’s still popular and many gamers enjoy with it.

The original source code of Quake3 can be found here .

Artem Kharytoniuk decide to create it’s own version  and his goal is described in it’s repo:

This repository contains updated version of the original Q3 codebase with reorganized code structure, compatibility fixes, build setup for the latest Visual Studio and modifications that update the core tech but preserve original gameplay, look and feel. Continue reading “Comparing Quake3 Original and Kenny Edition Codebases”

Why C Remains Popular After 50 Years?

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.

Almost all the other languages have evolved over years, it’s not really the case of the C language, for example the C11 standatd does not bring many new features to C, only few modifications are introduced. Continue reading “Why C Remains Popular After 50 Years?”

Quick overview of how Clang works internally

It’s proven that Clang is a mature compiler For C and C++ as GCC and Microsoft compilers, but what makes it so special is the fact that it’s not just a compiler. It’s also an infrastructure to build tools. Thanks to its library based architecture which makes the reuse and integration of new features more flexible and easier to integrate into other projects.
Continue reading “Quick overview of how Clang works internally”

7 Common reasons of using the namespaces in a C++ project.

Namespaces were introduced to the C++ Standard in 1995 and usually they are defined like this:

A namespace defines a new scope. They provide a way to avoid name collisions.

Although namespaces are used extensively in recent C++ code, most older code does not use this facility. 

After exploring the source code of many C++ projects, here are some common reasons of using the namespaces in these projects. Continue reading “7 Common reasons of using the namespaces in a C++ project.”

Inside the Unreal Engine 4.5 source code

The Unreal Engine is a game engine developed by Epic Games, first showcased in the 1998 first-person shooter game Unreal. Although primarily developed for first-person shooters, it has been successfully used in a variety of other genres, including stealthMMORPGs, and other RPGs.

Its code is written in C++ and  it’s used by many game developers today. Its source code is available from GitHub and it’s free for students. Many amazing games were developed using this engine, it permits to produce very realistic rendering like this one. Continue reading “Inside the Unreal Engine 4.5 source code”