30 junio 2009

Historia del C y C++

Hace poco leí un artículo donde enfatizaba la importancia de conocer la historia de una ciencia para poder entenderla mejor y no cometer los mismos errores del pasado o bien aprovechar lo que se hizo y que no quede en el olvido.  (El que quiera leer el texto, es parte del libro “La piedra de Toque” de Jean-Marc Lévy-Leblond [aquí está un resumen del libro, por si te interesa]).  En parte por esta razón voy a narrar una breve historia del lenguaje de programación C++ (lo cual, forzosamente, tiene que pasar por el lenguaje C).
Tal vez debería hacer una historia de todos los lenguajes de programación, sin embargo, creo que es una tarea demasiado extenso para este post de mi blog (que no es tan breve).  Sin embargo, para aquellos interesados pueden encontrar este dibujo que resume la historia de la programación (de forma muy esquemática y sin los chismes pertinentes, pero en fin).
Lenguaje C: comenzando bien
ktdr El lenguaje C cambió la historia de la programación.  Todo comenzó en los laboratorios Bell (luego convertido en AT&T) en los 1960s.  Tenían una computadora PDP-7 (con sus tremendos 8K de memoria y sin ningún software, porque no existía).  Se necesitaba software y como te podrás imagina, el software más importante es el sistema operativo.  Sin embargo, el problema es que el único lenguaje de programación que tenían era el ensamblador y pensar en crear un programa sencillo en este lenguaje, deja un sistema operativo completo, es una tarea hercúlea.  Por lo tanto lo primero que se hizo necesario fue hacer un lenguaje de programación lo suficientemente potente como para crear un proyecto de esta envergaduraKen Thompson estaba a cargo de crear este sistema operativo, que luego se llamó Unix.  Un cuate suyo que trabajaba con él, Dennis Ritchie diseñó un lenguaje, llamado C porque tenía influencia de un lenguaje anterior llamado B, hecho por Thompson, la cual es una versión simplificada de un lenguaje más viejo llamado BCPL.  Ritchie trabajó en un servidor PDP-11 (más moderno que el anterior) durante los 1970s.
Antes de C, los lenguajes de programación generalmente se creaban con fines académicos o por comités burocráticos (como el COBOL que está hecho por administradores de negocios donde tienes que escribir chorrocientos mil líneas de código para hacer una simple suma).  C fue diseñado, implementado y desarrollado por programadores que trabajaban en problemas reales, lo cual lo hizo muy usado por programadores en todos lados y durante los 1980s y parte de los 90s.
Un gran avance de C era debido a que es un lenguaje estructurado (al igual que el Pascal), lo cual permite hacer programas grandes (cosa casi imposible con ensamblador u otros) y en su tiempo, era una innovación tremenda.
Lenguaje C++: la evolución
Saliendo del ámbito computacional, la teoría de la evolución de Darwin, pese a la que piensan algunos radicales religiosos, rifa y explica muchas cosas que el creacionismo no puede.  Básicamente nos dice que la especies sufren modificaciones aleatorias en sus genes (bueno, lo de los genes fue aportación de Dobzhansky porque la genética no existía en tiempos de Darwin) y solo subsisten los que mejor se adaptan a su medio ambiente.
¿Y para qué les digo esto?  Uno, para ampliar un poco la cultura de algunos lectores en materia de biología, pero principalmente porque con el C sucedió algo similar.  Los sistemas se iban haciendo cada vez más complejos y hacerlos en C implicaba mucho trabajo, así que C++ es el siguiente paso de la “evolución” que va desde BCPL hasta C++.
¿Pero en qué consistía esta “evolución”?  Principalmente en encontrar otra manera de hacer las cosas.  Algunos llaman a esto “paradigmas” de programación (nota cultura: el término paradigma fue acuñada por Thomas Kuhn en su libro La estructura de las revoluciones científicas.  En el texto usa la palabra paradigma para significar cosas diferentes, o sea que nadie realmente sabe lo que significa esa palabra, jeje).  Escribí algo sobre paradigmas de programación en mi post Paradigmas de Programación y muchos objetos en C++.  Como dije antes, el C es programación estructurada.  Básicamente en este tipo de programación, se ejecuta un programa línea por línea en orden.  El programa se ejecuta de principio a fin.  Sin embargo, en la programación orientada a objetos la idea es solucionar problemas de forma similar a como resolvemos problemas en el mundo “real”, es decir, contamos con muchos objetos, cada uno con sus características y acciones que puede realizar (por ejemplo, mi mano tiene ciertas características: número de dedos, tamaño, color, etc., y cosas que puede hacer: cerrar dedos, agarrar algo, etc.).  Resolvemos problemas al tomar objetos y ponerlos a funcionar (siguiendo con el ejemplo de mi mano, si mi problema consiste en escribir, puedo usar mi objeto mano y ejecutar acciones que me permiten agarrar un objeto lápiz y colocarlo sobre un objeto papel y moverlo de tal manera que escriba).  Este paradigma ayuda a reducir la complejidad de sistemas grandes
Realmente no existen lenguajes 100% orientados a objetos (el único que conozco es SmallTalk), pero lenguajes como C++ o Java combinan lo orientado a objetos con un poco de programación estructurada.
bs2
C++ fue inventada por Bjarne Stroustrup en 1979.  Al inicio lo llamó C con clases, pero en el 83 lo cambió a C++.  Lo hizo basándose en C, incluyendo todas sus características, atributos y beneficios.  Lo que agregó fue el soporte a programación orientada a objetos.  Esto hacía que la transición hacia la programación orientada a objetos (o OOP por sus siglas en inglés, o POO por su acrónimo en castellano) sea fácil y sencilla.
Pero aquí no termina nuestra historia feliz.  C++ fue sujeta a revisiones y en 1994 un comité de ANSI e ISO desarrollaron el C++ “estándar” que es el que se usa en todos los compiladores.  Algunas compañías agregan librerías y funciones, pero todos deben respetar el C++ como fue definida por el comité ANSI/ISO (por esta razón no me gusta el Dev-Cpp porque tiene muchas cosas que no son estándares y no funciona en otros compiladores).
Una nota final.  El C++ no hizo que el C cayera en desuso.  Todavía hay muchas aplicaciones donde se usa el C, por ejemplo en el campo de la robótica y otros usos en la industria manufacturera.
Por esta vez, aquí le dejamos.  Espero que les haya parecido interesante o por lo menos útil.  ¡Saludos!

21 comentarios:

alan gonzalez dijo...

Duda. ¿Por que SmallTalk es 100% POO y Java no? ¿Que haria que Java fuera 100% POO?

René Michel dijo...

Que no se supone que Ken y Dennis hicieron el primer unix en ensamblador? Después ellos mismo hicieron C y reescribieron unix en C? bueno solo me quedo esa duda.

Tony Valderrama dijo...

Alan:
Lo que pasa es que Java o C++ tienes que escribir código estructurado dentro de las clases y funciones, lo cual no lo hace, desde mi humilde punto de vista, 100% orientado a objetos. En SmallTalk, aunque vi solo una breve introducción, TODO es objeto, sea un número, la pantalla, teclado, un caracter, etc.

René:
En efecto, la primera versión si fue en ensamblador, pero la siguiente fue en C. Gracias por la aclaración.

Anónimo dijo...

Hola que tal tony buen pues al parecer antes los lenjuajes eran solamente para "contadores" aunque supongo k era un tanto difici hacer todo el codigo para suma aunque nunca eh usado ese tipo de lenguaje como el que menciona.
Los paradigmas k mencionas pues no me kedo muy claro habra k leer para ver a k es lo k usted se refiere.
me parece k C++ es un tanto mas podria decirse "facil".
Los objetos nos podrian ayudar dado k es lo k hace la accion y le podria dar un toke d realidad al asunto.
una cosa k no me kedo claro es por k Dennis Ritchie no puso lo k es derechos de autor para cuando crearan C++ por k entoncs se robaron la idea de Dennis Ritchie y la recreo este otro tipo Bjarne Stroustrup bueno espero y lo veamos en clase algo haci rapido por ya lo vimos

Soy Hector ontiveros 5TPO

PD: el video del avion esta bueno ehhh hahaha sobretdo la aeromosa k paso haha hasta luego.

Anónimo dijo...

La historia comenzó en los laboratorios Bell luego convertido en AT&T en los 1960s.Tenían una computadora PDP-7.Se necesitaba software , el software más importante es el sistema operativo.
el unico programa de programacion era el ensamblador, despues se creo el sistema operativo UNIx y se
diseño el lenguaje C que era una continuacion del lenguaje B
el cobol era un lenguaje en el que escribias mucho para una simple operacion.
Los sistemas se iban haciendo cada vez más complejos y hacerlos en C implicaba mucho trabajo, así que C++ es el siguiente paso de la que va desde BCPL hasta C++.
C++ fue inventada por Bjarne Stroustrup en 1979. Al inicio lo llamó C con clases, pero en el 83 lo cambió a C++.
pero despues crearon uno estandar para utilizarlo en todos los compiladores

tony soy
Gerardo Maciel Medina de 5TPO

5°TPO Edgar Leonel Peña Rodriguez dijo...

Edgar Leonel Peña Rodríguez
5°TPO

Todo este tema es relacionado a los lenguajes de programación C y C++ los cuales son de lo mas comunes que podemos encontrar en cualquier empresa, sobretodo C++ ya que paso por un proceso de estandarización de ANSI (American National Standards Institute) e ISO (International Organization for Standardization).

El lenguaje C comenzó en los laboratorios Bell gracias a Ken Thompson que creó un software (sistema operativo) que posterior mente lo llamaría UNIX. Y un compa suyo (Dennis Ritchie) creo el lenguaje C, que era la versión mejorada de B, que fue creada por Ken Thompson.

Lo que hizo que C fuera un gran avance para los lenguajes de computadora fue que era un leguaje estructurado, lo cual permite hacer programas grandes.

Con el paso del tiempo los programas se iban haciendo más complejos en C, por lo cual fue creado el lenguaje C++ que es la combinación de la programación orientada a objetos y la programación estructurada (C). C++ fue creado por Bjarne Stroustrup en 1979. Al inicio lo llamó C con clases, pero en el 83 lo cambió a C++.

Como nota, C no quedo en el olvido y se sigue usando en el campo de la robótica y en otros usos en las industrias manufactureras.

Cesar Peraza 5 TPO dijo...

LA HISTORIA DE C Y C++:

El lenguaje c cambio la historia de la programación. Comenzo en los Laboratorios Bell en los 60s, con una computadora PDP – 7 con el fin de tener el poder para crear un nuevo Sistema Operativo.
Un gran avance de C era debido a que es un Lenguaje Estructurado lo cual permite hacer programas grandes.
C++ fue la Evolucion de C porque como los sistemas se hiban haciendo mas complejos, hacerlos era un trabajo hercúleo. (jaja)
La idea de C era solucionar problemas de manera real haciendo uso de objetos, muchos objetos. C++ fue inventado por Bjarne Stroustrup en el 79, el cual fue llamado C con clases pero en el 83 lo cambio a C++.
El c++ no hizo que se olvidara el C…todavía los programadores de robots lo usan .

Anónimo dijo...

en el año 1960 en los laboratorios bell , con una computadora PDP – 7 con el fin de tener el poder para crear un nuevo Sistema Operativo.
Un gran avance de C era debido a que es un Lenguaje Estructurado lo cual permite hacer programas grandes.
C++ fue la Evolucion de C porque como los sistemas se hiban haciendo mas complejos, hacerlos era un trabajo duro.
La idea de C era solucionar problemas de manera real haciendo uso de objetos, muchos objetos. C++ fue inventado por Bjarne Stroustrup en el 79, el cual fue llamado C con clases pero en el 83 lo cambio a C++.
El c++ no hizo que se olvidara el C…todavía los programadores de robots lo usan . bueno tony yo creo que esto de la hisotria se repetira bastante so yo dejare un poco mas en pocas palbras el c++ vino a revolucionar el lenguje c pero ahi que dejar en claro que no lo quiere sustituir que por mi parte los 2 se me hacen muy sencillos a por cierto soy christian de 5tpo XD

Anónimo dijo...

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. esto viene en wikipedia tony pero alo que pude captar en este articulo esque cada programador vaya va tener ventajas o desventajas en la hora de el diseño el software si mal no estoy vaya es la creatividad de cada programador pero si en estoy en lo incorrecto porfavor hagamelo saber a y otra vez soy yo christian de 5tpo

Anónimo dijo...

Hola tony
NO pues esta historia comenzo en los laboratorios bell en los años 60´s , con una computadora PDP-7 y sin ningun software y pues en mi punto d evista lo vi ilogico por que el software es el mas importante ya que es el sistema operativo , el unico programa k habia era el ensamblador , poco tiempo despues se creo UNIX

poco despues se creo el lengiuaje c procedente del b ,

el cobol era como complicarte la vida al hacer un tollote de codigo para hacer una simple operacion


conforme paso el tiempo el tiempo los sistemas se hacian mas practico , y con c se requeria un poco de esfuerzo y trabajo

C++ era la sigueinte fasepara hacer las operaciones mas faciles se podria decir y fue avanzando desde BCPL hasta C++.

C++ fue inventada por Bjarne Stroustrup en 1979.,
al inicio le llamaban c con clases mas con el tiempo se formo c++.

poco tiempo despues se creo los estandar para utilizarlo en los copiladores ,

isaac monroy 5tpo

Anónimo dijo...

En los laboratorios bell (AT&T) en los 60s teniendo como computadora una PDP-7.

Crearon un sistema operativo "UNIX" y con la ayuda de dennis nació C version mas completa que B creada por ken thompson.


Los programas cada ves empezaban a ser mas complejos y empezaban los problemas con C, asi fue como nacio C++ inventado por por Bjarne en 1979 asi fue la relacion entre los 20.


A pesar que C++ creo un standar importante siguieron trabajando con C hasta la fecha siendo importante en la rama de la programación

5TPO CARLOS ESPINOSA --saludos--

Anónimo dijo...

Historia de los Lenguajes C y C++
(La cronica Valderrama)

Corrían los años 60s, mientras la revuelta hippie se apoderaba del corazón de muchos, la ambición de crear un sistema operativo para domeñar el mercado (y de paso el mundo) era el móvil y el latir de la compañía informática “Laboratorios Bell”.

En aquellos tiempos el único lenguaje de programación capaz de realizar actos tan quiméricos como ese era el “ensamblador”, con dos importantes obstáculos que imposibilitaban la realización del su objetivo:

1)A todos les daba gueva hacer un código en ese lenguaje tan tedioso y vasto.
2)Gilberto Castro Cruz, el único capaz de realizarlo, aun no había puesto su mira en los cerebros electrónicos.

Tomando en cuenta estos problemas, Ken Thompson y Dennis Ritchie, deciden acrecentar y embellecer el viejo lenguaje “B” para convertirlo en el lenguaje “C” (La trascendencia del nombre lo dice todo).

El lenguaje “C” era tremendamente innovador debido a su simpleza (comparándolo con ensamblador) y que no se necesitaban un millón de líneas de código para realizar una simple acción, abreviando así sus lapsos de trabajo y dejándoles mucho más tiempo libre para cumplir sus sueños utópicos.

Pero para muchos la programación estructura de “C” no era suficientemente accesible, así que innegablemente surgiría un lenguaje ulterior “C ++”. Inventado por Bjarne Stroustrup en 1979, C++ tiene su base en “C” con la adición de la programación orientada a objetos, permitiendo así la resolución de un mismo problema a través de infinitos caminos distintos.

Para muchos C++ fue el verdugo de C, para Tony Valderrama simplemente no lo fue :)

Alejandro Fabregas Tejeda
5 TPO

Anónimo dijo...

Historia de C y C++

Bueno todo comenzo en los 60´s, en los laboratorios qe antes de ser AT&T, eran laboratorios Bell. Antes tenian una computadora que se llamaba PDP-7 la cual no tenia software, y no tenia por que no existia. Antes su lenguaje eran los "ENSAMBLADORES".

Ken Thompson fue el encargado de crear un nuevo proyecto el cual lo llamo "UNIX". Thompson contaba con la compañia de Dennus Ritchie, que fue el creador del lenguaje "C" pero lo creo gracias al lenguaje que ya habia crado Thompson, el lenguaje "B" Obviamente.

Antes existia el lenguaje "COBOL" este ayudaba como a los contadores y asi, pero la unica desventaja es que tenian que escribir un graaaaaaaaaan codigo para una simple suma ya que era de los primeros.

Debido a que "C" es un leguaje realmente estructurado era muy util para crar programas grandes.

El lenguaje "C++" es la evolucion del "C" y este fue creado por Bjarne Stroustrup (un nombre realmnete complicado de pronunciar en 1979 y le decia "C con clase" hasta que en el 89 lo decidio cambiar por "C++"

En 1994 ANSI e ISO crearon "C++ Estandar" el cual es el que se usa en todos los compiladores.

Saludos tonyy!! :D
Zeydi Martinez 5°TPO

Unknown dijo...

En si todo comenzo pork se necesitaba un software y krear un sistema operativo y por lo tanto komo en esos tiempos solo existia el lenguaje ensamblador la neta iba a ser una mentada de madre crear un sistema operativo kompleto kon esa mamada de lengueje ensamblador asi k Dennis kreo C (llamado asi por la influencia en otro lengueje llamado B) para poder hacer el S.O. de una manera mas sencilla y la ventaja kon C es k es un lenguaje estructurado.
El hombre (como siempre) llego un momento en k lo k tenia ya no era suficiente y programar en C era algo extremadamente kansado, asi k de ahi digievoluciono de C data lenguagemon a C++ data lenguagemon y su ventaja es k era un lengueje estructurado a objetos y esto hacia muchomas facil el poder programar en muchos casos. C++ en 1994 se kreo el c++ estandar k es el k usa en todos los kopiladores.

PAKO(Francisco Javier Ramirez Ornelas 5° TPO

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Carlos 2 5ºTPO(me siento chingon al poner 5º jajajaja)

todo empezo cuando en el mundo de las computadoras no existia un sistema operativo y tampoco el lenguaje adecuado para hacerlo entonces a ken thompson se le ocurrio empezar a crear uno y lo llamo unix pero despues su amigo creo el c que era el que le seguia al b jjaja

luego de esto basandose en c se creo c++ con mismas caracteristicas lo que fue extra fue la orientaciona objetos y despues de mucho tiempo ansi e iso decidieron hacer de c++ un lenguaje estandar.

listo tony
espero le guste jajajja

Anónimo dijo...

Hola tony, soy Brito 5 TPO

Bueno, entre los puntos mas importantes que podemos sacar de la historia q acabo de leer estan la fecha y el lugar en el q comenzo el lenguaje C q son 1960 y los laboratorios bell respectivamente.

Ademas de lo q entendi, la razon por la cual se crea el lenguaje es debido a la necesidad de crear software mas facilmente.

El lenguaje C tenia influencia de una version simplificada de BCPL llamada B.

Y bueno, posteriormente evoluciono para convertirse en C con clases posteriormente llamado C++, en el cual como principales novedades estan el soporte a programacion orientada a objetos.

Anónimo dijo...

emilio cendejas rios 5 tpo legitimo consejal y maestro de la musica

HISTORIA DE C Y C++
El lenguaje de c comenzó en los laboratorios bell en 1960, había una computadora PDP-7 que necesitaba un sistema operativo pero el único lenguaje que había
en ese entonces era el ensamblador, pero para hacer un sistema operativo estaba difícil (cabron), entonces para poder hacerlo decidieron crear un lenguaje
tan potente que creara fácilmente algo de esa magnitud, entonces ken Thompson creo el sistema operativo unix, y en ese entonces uno de sus compañeros dennis
ritchie diseño el lenguaje c el lenguaje c tubo un gran éxito ya que era un
lenguaje estructurado como el pascal.
C++ fue inventada por bjarne stroustrup en 1979, que en realidad el nombre principal era c con clases pero en el 83 lo cambio por c++, lo hizo basándose
en c pero lo que agrego fue el soporte de programación orientada a objetos, haciendo de la programación orientada a objetos fuera mas sencilla.

c evoluciono en mejores programas para poder tener acceso mas facil a mejores softwares con menos codigo con entorno visual y mejores funciones amigables con el usuario

Anónimo dijo...

hola tony!xD
creo que el lenguaje c ayudo mucho a quitarse varios problemas a los programadores, algo así como un regalo para ellos por ser un lenguaje diría hecho a medida ya que les ahorro tiempo y podían hacer las cosas mas sencillitas.

El cambio del lenguaje C al C++ creo que sirve como cualquier otro avance que haga el ser humano para "facilitarse la vida".

A lo de los objetos creo que no capto muy bien la idea; por lo que entendí diría que es para entender o darle un mejor uso a las cosas y solucionar los problemas con mayor facilidad.

Yo diría que el lenguaje c como el c++ ayuda tanto a programadores como a los que usan los programas que estos usan(siempre y cuando estén bien hechos:))

no se si esto cuente como resumen
( a mi no me pareció xd) pero del tema eso fue lo que mejor comprendí
(y lo que me fue más fácil expresar en palabras) ojala y lo encuentres bien jiji... y sino ps... lo volvere a hacer!

feliz fin de semana tony!!!!

att: Stephany 5tpo xD!

Anónimo dijo...

Quibole tony aquí le dejo la tarea ya un poco tarde pero si alcance jaja sale profe luego nos vemos cuidese.

C y C++
El lenguaje C cambió la historia de la programación. Todo comenzó en los laboratorios Bell (luego convertido en AT&T) en los 1960s.
Dennis Ritchie diseñó un lenguaje, llamado C porque tenía influencia de un lenguaje anterior llamado B, hecho por Thompson, la cual es una versión simplificada de un lenguaje más viejo llamado BCPL. Ritchie trabajó en un servidor PDP-11 durante los 1970s.
C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.
Los Tipos de Paradigmas de programacion
•El paradigma imperativo es considerado el más común y está representado, por ejemplo, por el C o por BASIC. Aquí los programas se ejecutan de manera lineal, una instrucción a la vez, línea por línea, siempre en el mismo orden.
•El paradigma funcional está representado por la familia de lenguajes LISP. Aquí todos los programas son un montón de funciones anidadas.
•El paradigma lógico, un ejemplo es PROLOG.

Jesus Ruben Villarreal Favela
5TPO

Anónimo dijo...

Q onda profe
soy Luis Felipe Sanchez de 5tpo (Fitux)

aqui le dejo mi resumen

Por lo q yo lei el lenguaje C nacio de otro lenguaje llamado B (=O jaja)
y este nacio en la empresa AT&T antes llamada laboratorios Bell

Se dice q fue un gran avanze ya que fue un lenguaje estructurado ya q en ese tiempo no se usaban mucho ese tipo de lenguaje y ademas de que era de programadores para facilitarle el uso a los programadores

De nacio el otro lenguaje C++ el gran cambio q implemento este fue que agrego la programacion orientada a objetos y aunq este fue muy inovador y diferente de C no hizo que el C se dejara de usar

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...