-
El lenguaje C fue desarrollado por Dennis Ritchie y Ken Thompson entre 1962 y 1972 en los Laboratorios Bell. Surgió como una evolución del lenguaje B, que a su vez se basaba en BCPL (Basic Combined Programming Language).
-
-
Este lenguaje procede del Lenguaje B, con el propósito de proporcionar una herramienta más potente y flexible que B para el desarrollo de UNIX -
Siendo el lenguaje C++ una extensión del lenguaje C tienen diferencias claves como:
1.- Sintaxis: C utiliza una sintaxis más simple y C++ incorpora conceptos adiciones como programación orientada a objetos
2.- Bibliotecas estándar: C tiene una biblioteca estándar limitada en comparación con C++
3.- Compatibilidad: El código en C generalmente es compatible en C++, pero no de C++ a C.
C es ampliamente utilizado para desarrollar sistemas operativos, etc. Y C++ agrega las clases, polimorfismo, etc. -
A lo largo de su historia, el lenguaje C a presentado varias versiones con sus propias mejoras y características siendo las más conocidas las: C89, C99 y C11. -
El lenguaje C siendo uno de los más utilizados y versátiles en la industria se usa en: Sistemas operativos, Programación de sistemas, Videojuegos, Investigación y Educación -
La popularidad de los lenguajes va cambiando dependiendo el uso que se le da, según el ranking de PYPL (se actualiza cada mes) el lenguaje C se encuentra en el puesto #5 junto con el C++ y según la Stack Overflow se encuentra en el puesto #10. -
1.- Alto Rendimiento: C es un lenguaje compilado lo que permite que los programas se ejecuten rápidamente
2.- Control sobre Hardware: Proporciona acceso directo a la memoria y permite manipular punteros
3.- Portabilidad: Puede ser fácilmente portado a diferentes plataformas y sistemas operativos.
4.- Base para otros lenguajes: Aprender el lenguaje C facilita la transición a lenguajes como C++, Java -
1.- Gestión manual de memoria: Requiere que los programadores gestionen la memoria manualmente lo que puede llevar a errores como fugas de memoria y corrupción de datos.
2.-Falta de características modernas: Carece de características modernas como el manejo de excepciones y una sintaxis más intuitiva.
3.- Menor seguridad: La proximidad al hardware y la gestión manual de la memoria pueden resultar en vulnerabilidades de seguridad si no se manejan adecuadamente.