Programming Techniques Overview
|
First, we introduce one of the most important parts of programming: data types. Afterwards, we overview several programming techniques:
![]() | Imperative
|
![]() | Object-oriented
|
![]() | Functional
|
![]() | Generic |
The next techniques will be explained in the near future:
![]() | Metaprogramming |
Based on these programming paradigms, we explain how to use them in a modern way to build applications or solutions to given problems. The language of choice is C++.
Language of Choice
Why do we use C++ for our own development and for the tutorials and techniques?
C++ is known for its complexity due to the fact that there are often several different mechanisms for accomplishing a task. We do not want to hide this fact. The problem is the result of the long evolutionary development of the language. Features are inherited from the C language, enriched with the object-orientation "hype", and some are dead ends. The most important mechanisms of C++ are, of course, inheritance and templates, which provide two different ways to produce abstract, generalized software components. Other languages are definitively superior in subparts.
We summarize the drawbacks of C++ briefly:
![]() | Long compilation times, multiple symbols created many times
|
![]() | Error messages can be very long and a lot of internal code can be exposed
|
![]() | Problems with templates and virtual functions
|
![]() | No overall mechanism for pre-compiled headers |
But up to now, it is the only programming language which offers the usage of all different programming paradigms together. With proper implementation techniques the execution speed is superior to most of the other languages, even Fortran.

