En este artículo vamos a ver el resurgimiento de la importancia del lenguaje nativo C++ y cómo este ha evolucionado recientemente hacia un lenguaje moderno. Esperamos que esto proporcione el contexto para explicar por qué algunos desarrolladores de software de aplicación (third party developers) están considerando el uso de este lenguaje de programación multiparadigma en detrimento de otros, a menudo clasificados como productivos lenguajes de programación gestionados. Con lenguajes nativos nos referimos a aquellos en los que un compilador genera código de máquina ejecutable, y con lenguajes gestionados a aquellos en los que un compilador genera instrucciones de bytecode, destinadas a ser interpretadas y ejecutadas por una máquina virtual, que en este caso es un requisito para ejecutar bytecode. Java es un ejemplo de un lenguaje gestionado. Este artículo da por hecho que el lector tiene un conocimiento básico o familiaridad con lenguajes basados en Algol, incluyendo C, C++, Java y C#.
In this article, we will make a case for the resurgence and importance of the C++ native language and an overview of how it has recently evolved into a modern language. We hope that this provides context to why many more developers are considering using this multi-paradigm programming language in detriment of other, often classified as productive, managed programming languages. We refer to native languages as those where a compiler generates native executable machine code, and managed languages as those where a compiler generates byte compiled instructions, intended to be interpreted and executed by a virtual machine, which is in that case a requirement to execute byte compiled code. Java is an example of such a language. This article assumes that the reader has a basic knowledge of, or familiarity with Algol based languages, including C, C++, Java and C#.