Antecedentes de C++

sábado, 21 de diciembre de 2013



"Cualquiera  puede escribir código que la PC entienda. Los buenos programadores escriben código que los humanos pueden entender." -
 Martin Fowler . 
A principios de la década de los ochenta, Bjarne Stroustrup desarrolló una extensión de C en los laboratorios Bell: C++. Este lenguaje proporciona un conjunto de características que “pulen” al lenguaje C, pero lo más importante es que proporciona la capacidad de una programación orientada a objetos.
Una revolución se está gestando en la comunidad del software. Escribir software rápida, correcta y económicamente es aún una meta escurridiza, en una época en que la demanda de nuevo y más poderoso software se encuentra a la alza. Los objetos son en esencia componentes reutilizables de software, que modelan elementos del mundo real. Los
desarrolladores de software están descubriendo que el uso de una metodología de diseño e implementación modular y orientada a objetos puede hacerlos más productivos que mediante las populares técnicas de programación anteriores. Los programas orientados a objetos son más fáciles de entender, corregir y modificar.

Historia de C++


El lenguaje de programación C++, desarrollado en AT&T por Bjarne Stroustrup a principios de la década de los ochenta, se basa en dos lenguajes (C, que se desarrolló inicialmente en AT&T para implementar el sistema operativo UNIX a principios de la década de 1970, y Simula 67, un lenguaje de programación de simulación, desarrollado en Europa y puesto en circulación en 1967). C++ absorbió las características de C y agregó las herramientas de Simula para crear y manipular objetos.
Ninguno de los lenguajes C o C++ estaba diseñado originalmente para usarse ampliamente, más allá de los laboratorios de investigación de AT&T. Pero el soporte básico se desarrolló rápidamente para cada uno de ellos.

Características de C++


Lenguaje  Orientado a objetos.
A mediados de los años 60 se empezó a vislumbrar el uso de las computadoras para la  simulación de problemas del mundo real. Pero el mundo real está lleno de objetos, en la  mayoría de los casos complejos, los cuales difícilmente se traducen a los tipos de datos  primitivos de los lenguajes imperativos. Así es que a dos noruegos, Dahl y Nygaard , se  les ocurrió el concepto de objeto y sus colecciones, llamadas clases de objetos, que  permitieron introducir abstracciones de datos a los lenguajes de programación. La  posibilidad de reutilización del código y sus indispensables modificaciones, se reflejaron en  la idea de las jerarquías de herencia de clases. A ellos también les debemos el concepto de  polimorfismo introducido vía procedimientos virtuales. Todos estos conceptos fueron  presentados en el lenguaje Simula 67, desde el año 1967. Aunque pensado como lenguaje  de propósito general, Simula tuvo su mayor éxito en las aplicaciones de simulación  discreta, gracias a la clase SIMULATION que facilitaba considerablemente la  programación.


Ventajas

  • En c++,  la unidad de programación es la clase , aparit de la cual los objetos son producidos. Se trata de una programación orientada a objetos.
  • Las bibliotecas estándar de c++ proporcionan un conjunto extenso de capacidades de entrada y salida de tipo seguro. No podrá introducirse datos equivocados dentro del sistema.  
  • Lenguaje muy didáctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
    Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
  • Permite elaborar aplicaciones sencillas , hasta sistemas operativos y mucho más, todo eso dependiendo del manejo del lenguaje.
    Actualmente, puede compilar y ejecutar código de C, ya viene con librerías para realizar esta labor.
  • Es un lenguaje muy empleado, existen muchos tutoriales en línea, libros, códigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho más con este lenguaje.
  • Existen muchos algoritmos cuyo pseudocódigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solución (porque el que veas un fragmento de código no asegura que sea correcto al 100%).

Desventajas

  • Uso de DLLs (librerías dinámicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas librerías, y correr los riesgos por el manejo de esta memoria.
  • Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
  • Manejo de punteros y memoria respecto a ello. Claro, esta también es una gran ventaja porque permite un mejor control de la memoria y una buena administración de recursos de computadora, pero la inexperiencia de los desarrolladores o la pérdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
    No es recomendable para desarrollo de páginas Web.
  • Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows.

0 comentarios :

Publicar un comentario

 
Taller de desarrollo c++ © 2013 | Designed by Alexander C.P , in collaboration with cienciaeducacion100 , Ciencias y Sistemas and cienciaeducacion100@gmail.com