Resultados 1 al 7 de 7

La verdadera historia de C++

  1. #1 La verdadera historia de C++ 
    Avanzado
    Fecha de ingreso
    Jun 2006
    Mensajes
    1.462
    Descargas
    15
    Uploads
    0
    Todos conocemos o deberíamos conocer c++. Es una extensión del lenguaje c, hecha específicamente para manejar objetos. Según la wiki:
    Cita Iniciado por Wikipedia
    El C++ (pronunciado "ce más más" o "ce plus plus") es un lenguaje de programación, diseñado a mediados de los años 1980, por Bjarne Stroustrup, como extensión del lenguaje de programación C.

    Se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: la programación estructurada, la programación genérica y la programación orientada a objetos.
    Pero, ¿fue creado c++ realmente para mejorar la vida de los programadores? ¿o es una estafa?

    Esta es una entrevista que hizo Bjarne Stroustrup, a la revista de informática del IEEE. Os vais a reir un poco, y vais a llorar un poco también.

    Por cierto, no es nada moderno. Este 1 de enero la entrevista cumplió 10 años.

    Código:
    Int: Bien, hace unos pocos años que cambio el mundo del diseño de
         software, como se siente mirando atras?
    BS:  En este momento estaba pensando en aquellos dias, justo antes de que
         llegases. Los recuerdas? Todo el mundo escribia en C y el problema
         era que eran demasiado buenos... Las Universidades eran demasiado
         buenas enseñandolo tambien. Se estaban graduando programadores
         competentes a una velocidad de vertigo. Esa era la causa del problema.
    Int: Problema?
    BS:  Si, problema. Recuerdas cuando todos programaban en Cobol?
    Int: Desde luego. Yo tambien lo hice.
    BS:  Bien, al principio, esos tipos eran como semidioses. Sus salarios
         eran altos, y eran tratados como la realeza...
    Int: Aquellos fueron buenos tiempos, eh?
    BS:  Exacto. Pero, que paso? IBM se canso de ello, e invirtio millones en
         entrenar a programadores, hasta el punto que podias comprar una docena 
         por medio dolar...
    Int: Eso es por lo que me fui. Los salarios bajaron en un año hasta el
         punto de que el trabajo de periodista esta mejor pagado.
    BS:  Exactamente. Bien, lo mismo paso con los programadores de C...
    Int: Ya veo, pero adonde quiere llegar?
    BS:  Bien, un dia, mientras estaba sentado en la oficina, pensaba en este
         pequeño esquema, que podria inclinar la balanza un poquito. Pense
         'Que ocurriria si existiese un lenguaje tan complicado, tan dificil
         de aprender, que nadie fuese capaz de inundar el mercado de
         programadores?' Empece cogiendo varias ideas del X10, ya sabes,
         X windows. Es una autentica pesadilla de sistemas graficos, que solo
         se ejecutaba en aquellas cosas Sun 3/60... tenia todos los ingredientes
         que yo buscaba. Una sintaxis ridiculamente compleja, funciones oscuras
         y estructuras pseudo-OO. Incluso ahora nadie escribe en codigo nativo
         para las X-Windows. Motif es el unico camino a seguir si quieres
         mantener la cordura.
    Int: Esta bromeando?
    BS:  Ni un pelo. De hecho, existe otro problema... Unix esta escrito en C,
         Lo que significa que un programador en C puede convertirse facilmente
         en un programador de sistemas. Recuerdas el dinero que un
         programador de sistemas solia conseguir?
    Int: Puede apostar por ello. Es lo que solia hacer yo...
    BS:  Ok, por lo tanto, este nuevo lenguaje tenia que divorciarse por si
         mismo de Unix, ocultando las llamadas al sistema. Esto podria permitir
         a tipos que solo conocian el DOS ganarse la vida decentemente...
    Int: No me puedo creer que haya dicho eso...
    BS:  Bueno, ha llovido mucho desde entonces. Ahora creo que la mayoria de la
         gente se habra figurado que C++ es una perdida de tiempo, pero
         debo decir que han tardado mas en darse cuenta de lo que pensaba.
    Int: Entonces, que hizo exactamente?
    BS:  Se suponia que tenia que ser una broma, nunca pense que la gente se
         tomase el libro en serio. Cualquiera con dos dedos de frente puede
         ver que la programacion orientada a objetos es anti intuitiva, ilogica
         e ineficiente...
    Int: Que?!?!
    BS:  Y como el codigo reutilizable... cuando has oido de una compañia que
         reutilice su codigo?
    Int: Bien, nunca, pero...
    BS:  Entonces estas de acuerdo. Recuerda, algunos lo intentaron al principio.
         Habia esa compañia de Oregon, creo que se llamaba Mentor Graphics, que
         revento intentando reescribir todo en C++ en el 90 o 91. Lo siento
         realmente por ellos, pero pense que los demas aprenderian de sus errores.
    Int: Obviamente no lo hicieron, verdad?
    BS:  Ni lo mas minimo. El problema es que la mayoria de las empresas se 
         callaron sus mayores disparates, y explicar 30 millones de dolares de
         perdidas a los accionistas podria haber sido dificil... Demosles el
         reconocimiento que merecen, finalmente consiguieron hacer que funcionase
    Int: Lo hicieron? Bien eso demuestra que la OO funciona...
    BS:  Casi. El ejecutable era tan gigantesco que tardaba unos cinco
         minutos en cargar en una estacion de trabajo de HP con 128 MB de
         RAM. Iba tan rapido como un triciclo. Crei que seria un escollo 
         insalvable pero nadie se preocupo. SUN y HP estaban demasiado alegres de
         vender enormes y poderosas maquinas con gigantescos recursos para
         ejecutar programas triviales. Ya sabes, cuando hicimos nuestro primer
         compilador de C++, en AT&T, compile el clasico 'Hello World', y no me
         podia creer el tamaño del ejecutable. 2.1 MB.
    Int: Que ?!?!. Bueno, los compiladores han mejorado mucho desde entonces...
    BS:  Lo han hecho? Intentalo en la ultima verision de g++, la diferencia
         no sera mayor que medio mega. Ademas existen multitud de ejemplos
         actuales en todo el mundo. British Telecom tuvo un desastre mayor en
         sus manos, pero, afortunadamente, se deshicieron de ello y comenzaron
         de nuevo. Tuvieron mas suerte que Australian Telecom. Ahora he oido
         que Siemens esta construyendo un dinosaurio y se empiezan a preocupar
         porque los recursos hardware no hacen mas que crecer para hacer
         funcionar ejecutables tipicos. No es una delicia la herencia multiple?
    Int: Bien, pero C++ es un lenguaje avanzado ...
    BS:  Realmente crees eso ?!?!?! Te has sentado alguna vez y te has puesto a
         trabajar en un proyecto C++? Esto es lo que sucede: Primero he puesto
         las suficientes trampas para asegurarme de que solo los proyectos mas
         triviales funcionen a la primera. Coge la sobrecarga de operadores. Al
         final del proyecto casi todos los modulos lo tienen, normalmente los
         programadores sienten que deberian hacerlo asi porque es como les
         enseñaron en sus cursos de aprendizaje. El mismo operador entoces
         significa cosas diferentes en cada modulo. Intenta poner unos cuantos
         juntos, cuando tengas unos cientos de modulos. Y para la ocultacion de
         datos. Dios, a veces no puedo parar de reirme cuando oigo los problemas
         que algunas empresas han tenido al hacer a sus modulos comunicarse entre
         si. Creo que el termino 'sinergetico' fue especialmente creado para
         retorcer un cuchillo en las costillas del director de proyecto...
    Int: Tengo que decir que me siento bastante pasmado por todo esto. Dice
         que consiguio subir el salario de los programadores? Eso es inmoral.
    BS:  No del todo. Cada uno tiene su opcion. Yo no esperaba que la cosa se
         me fuese tanto de las manos. De cualquier forma acerte. C++ se esta
         muriendo ahora, pero los programadores todavia conservan sus sueldos
         altos. Especialmente esos pobres diablos que tienen que mantener toda
         esta majaderia. Comprendes que es imposible mantener un gran modulo en
         C++ si no lo has escrito tu mismo?
    Int: Como?
    BS:  Estas fuera de juego, verdad? Recuerdas 'typedef'?
    Int: Si, desde luego.
    BS:  Recuerdas cuanto tiempo se perdia buscando a tientas en las cabeceras
         sola para darse cuenta de que 'RoofRaised' era un numero de doble
         precision? Bien, imagina el tiempo que te puedes tirar para encontrar
         todos los typedefs implicitos en todas las clases en un gran proyecto.
    Int: En que se basa para creer que ha tenido exito?
    BS:  Te acuerdas de la duracion media de un proyecto en C?. Unos 6 meses.
         No mucho para que un tipo con una mujer e hijos pueda conseguir un
         nivel de vida decente. Coge el mismo proyecto, realizalo en
         C++ y que obtienes? Te lo dire. Uno o dos años. No es grandioso?
         Mucha mas seguridad laboral solo por un error de juicio. Y una
         cosa mas. Las universidades no han estado enseñando C desde hace
         mucho tiempo, lo que produce un descenso del numero de buenos
         programadores en C. Especialmente de los que saben acerca de la
         programacion en sistemas Unix. Cuantos tipos sabrian que hacer con
         un 'malloc', cuando han estado usando 'new' durante estos años y
         nunca se han preocupado de de chequear el codigo de retorno?. De hecho
         la mayoria de los programadores en C++ pasan de los codigos que les
         devuelven las funciones. Que paso con el '-1'? Al menos sabias
         que tenias un error, sin enredarte con 'throw', 'catch', 'try'...
    Int: Pero seguramente la herencia salve un monton de tiempo?
    BS:  Lo hace? Te has fijado en la diferencia entre un proyecto en C y el
         mismo en C++? La etapa en la que se desarrolla un plan en un
         proyecto en C++ es tres veces superior. Precisamente para asegurarse
         de que todo lo que deba heredarse, lo hace, lo que no, no. Y aun asi
         sigue dando fallos. Quien ha oido hablar de la perdida de memoria en un
         programa en C? Ahora se ha creado una autentica industria especializada
         en encontrarlas. Muchas empresas se rinden y sacan el producto,
         sabiendo que pierde como un colador, simplemente para reducir el gasto
         de buscar todas esas fugas de memoria.
    Int: Hay herramientas...
    BS:  La mayoria escritas en C++.
    Int: Si publicamos esto, probablemente le lincharan. Se da cuenta?
    BS:  Lo dudo. Como dije, C++ esta en su fase descendente ahora y ninguna
         compañia en su sano juicio comenzaria un proyecto en C++ sin una prueba
         piloto. Eso deberia convencerles de que es un camino al desastre.
         Si no lo hace, entonces se merecen todo lo que les pase.
         Ya sabes?, yo intente convencer a Dennis Ritchie a reescribir Unix en
         C++...
    Int: Oh Dios. Que dijo?
    BS:  Afortunadamente tiene un buen sentido del humor. Creo que tanto
         el como Brian se figuraban lo que estaba haciendo en aquellos dias,
         y nunca empezaron el proyecto. Me dijo que me ayudaria a escribir 
         una version en C++ de DOS, si estaba interesado...
    Int: Lo estaba?
    BS:  De hecho ya he escrito DOS en C++, te pasare una demo cuando pueda.
         Lo tengo ejecutandose en una Sparc 20 en la sala de ordenadores.
         Va como un cohete en 4 CPUs, y solo ocupa 70 megas de disco...
    Int: Como se comporta en un PC?
    BS:  Ahora estas bromeando. No has visto Windows '95? Creo que es mi
         mayor exito. Casi acaba con la partida antes de que estuviese preparado
    Int: Ya sabes, la idea de Unix++ me ha hecho pensar. Quizas haya
         alguien ahi fuera intentandolo.
    BS:  No despues de leer esta entrevista.
    Int: Lo siento, pero no nos veo capaces de publicar esto.
    BS:  Pero es la historia del siglo. Solo quiero ser recordado por mis
         compañeros programadores, por lo que he hecho por ellos. Sabes
         cuanto puede conseguir un programador de C++ hoy dia?
    Int: Lo ultimo que oi fue algo como unos $70 - $80 la hora para uno
         realmente bueno...
    BS:  Lo ves? Y se los gana a pulso. Seguir la pista de todo lo que he
         puesto en C++ no es facil. Y como dije anteriormente, todo
         programador en C++ se siente impulsado por alguna promesa mistica
         a usar todos los elementos del lenguaje en cada proyecto. Eso
         ciertamente me molesta a veces, aunque sirva a mi proposito
         original. Casi me ha acabado gustando el lenguaje tras todo este tiempo.
    Int: Quiere decir que no era asi antes?
    BS:  Lo odiaba. Parece extraño, no estas de acuerdo? Pero cuando los
         beneficios del libro empezaron a llegar... bien, te haces una idea...
    Int: Solo un minuto. Que hay de las referencias?. Debe admitir que
         mejoro los punteros de C...
    BS:  Hmm. Siempre me he preguntado por eso. Originalmente crei que lo
         habia hecho. Entonces, un dia estaba discutiendo esto con un tipo que
         escibe en C++ desde el principio. Dijo que no podia recordar cuales
         de sus variables estaban o no referenciadas, por lo que siempre
         usaba punteros. Dijo que el pequeño asterisco se lo recordaba.
    Int: Bien, llegados a este punto suelo decir 'muchas gracias' pero hoy
         no parece muy adecuado.
    BS:  Prometeme que publicaras esto. Mi conciencia esta dando lo mejor
         de mi mismo estos dias.
    Int: Se lo hare saber, pero creo que se lo que dira mi editor...
    BS:  Quien se lo creeria de todas formas?... De todos modos, puedes
         enviarme una copia de la cinta.?
    Int: Descuide, lo hare.
    Jojojo, sorprendidos, ¿eh? Aunque claro, algunos de esos problemas todavía existen

    Saludos.

    [FUENTE: Set15, de www.set-ezine.org]
    Citar  
     

  2. #2  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.451
    Descargas
    11
    Uploads
    0
    joder, es verdad esto ?
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  3. #3  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.156
    Descargas
    4
    Uploads
    0
    Sorprendente

    De cualquier forma, es verdad que algunas cosas en java y c++ parecen un poco absurdas, a simple vista algunas parecen malas bromas. Y es curioso que los programas actuales de linux sigan escribiendose en C y no en c++.

    Saludos
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  4. #4  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.451
    Descargas
    11
    Uploads
    0
    El mismo Linux está escrito en C, y recuerdo un post que puse, sobre una mail list de desarrolladores de linux, en el cual Linus, decia que C++ es una mier**

    Saludos
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  5. #5  
    Avanzado
    Fecha de ingreso
    Aug 2004
    Mensajes
    201
    Descargas
    0
    Uploads
    0
    No entiendo nada de C++, pero si de C y de Java. De este úlitimo, lo que nunca he llegado a tragar es lo del polimorfismo. Encuentro absurdo que un mismo método se use de manera distinta según que datos de entrada se le envien, eso solo sirve para liar a la gente.
    From mind to code
    Citar  
     

  6. #6  
    Iniciado
    Fecha de ingreso
    Nov 2006
    Mensajes
    10
    Descargas
    0
    Uploads
    0
    Realmente no creo que la entrevista sea real, pero tengo que admitir (con la poca experiencia que tengo) que C++ me resulto mas complicado que C. Y tampoco entiendo cual es la necesidad de la herencia y el polimorfismo, pero esas cosas son fáciles de corregir. No se usan y listo.

    ¿Todavia esta disponible el post con la mail list de Linus diciendo que c++ es un desastre?
    Citar  
     

  7. #7  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    Yo tampoco se si el texto es real o no, pero lo que comenta es todo real, desde que los sueldos de los programadores cayeron en picado a finales de los 70 (lo que origino la mayor parte de las empresas de software y hardware actuales, includias muchas absorvidas por otras, entre ellas: MS, Apple, Lotus, Corel, Adobe, Borlad, Macromedia, Compac, Dell...), hasta lo problematica que resulta el desarrollo de aplicaciones llamando a las primitivas de XWindow (quien lo haya echo alguna vez me dara la razón), pasando por que jamás se reutiliza código, especialmente si está escrito en C++, siendo muy común ver que tal o cual software fue reescrito totalmente en tal versión (vas a ver el lenguaje y que casualidad que suele estar C++ por detras) aun esta semana se presento la versión final de KDE 4 (4 versiones y ya se reescribio KDE 2 veces)...

    En cuanto a que el código C++ es muy dificil de leer, que solo el propio programador puede, pues no estaria yo tan seguro ni de que el propio programador puede si vuelve al código muchos meses después... El C ya era vastante ilegible, pero es que el C++ es imposible, especialmente cierto resulta lo anterior cuando te encuentras con un fichero de más de unos cuantos cientos de lineas (ya no digo miles)... Que diferencia con Modula 2, que tiene casi todo lo que tiene C++ (sus caracteristicas modulares permitir implementar una forma simple de herencia y por supuesto encapsulación) que tu puedes cogerte una aplicación de 20 mil lineas en 4 módulos y te encuentras que la única dificiltad para entender que es cada cosa y que hace es el tamaño del los ficheros, no el código... precisamente por ello Modula 2 es el mejor lenguaje para aprender a programar, junto con ADA, y en cambio C++ y Java se consideran (segun el IEEE) que son lenguajes desaconsejables para aprender a programar... el problema de C como primer lenguaje de aprendizaje de programación solo tiene 2 handicaps, que la mayor parte de los programadores no siguen las tecnicas de desarrollo estructuradas (que indican donde deven declararse las variables, como deben nombrarse...) y el problema de que está debilmente tipado (tu puedes pasar a int a un char y no generar ningún error, o peor un float a un int y tampoco te genera error, aunque una vez que ejecutas el programa puede hacer cosas "imprevistas"...

    Y lo cierto es que los actuales compiladores son lo vastante inteligentes y buenos para que los ejecutables no pesen cientos de megas, pero lo que describe el texto (en menor medida eso si) es cierto, yo tengo provado compiladores de C++ para DOS de los primeros tiempos de C++ y era simpático, el compilador cabía en un disquete flexible (los grandes) que vendia Oregon de poco más de 500 KB y en cambio un ejecutable de mierda que lanzara un par de mensajes y hiciera un par de cálculos pues te ocupaba un mega, el mismo programa en C te ocupaa 50KB... era algo que yo no comprendi durante mucho tiempo, como el mismo código podía dar un ejecutable más de 20 veces más grande que otro ejecutable realizado en otro compilador, el motivo era simple, cuando compilabas el código como C++, aunque no utilizaran ninguna característica de este, pues como mínimo incluia una seríe de librerias, el código era tratado como si fuesen clases...

    Pero hay algo muy simpático con C++, desde finales de los 80 (cuando empezo a popularizarse C++) se intento crear un estandar de C++, en cambio no pudo hasta agosto de 1998 (casi 10 años después) por un detalle muy simple, no había una forma de definir ciertas cosas, hasta que aparecio el estandar UML (noviembre de 1997) no hubo forma de especificar algunas características de C++, al final se pudieron especificar con UML (igual que Java, que no hay otra forma)...

    Lo que es mentira es lo de Windows 95, lo cierto es que en Windows 95 no hay ni una sola linea en C++, buena parte aun esta en ensamblador y lo demás en C... y lo cierto es que los requisitos que pide el Windows 95 para funcionar son muy bajos, en la realidad con un 486 DX, 8MBs de RAM y 100MB de HD sobran para que tire bien, y con eses recursos era capaz de ejecutar aplicaciones como las de office97 de forma correcta... Realmente los requisitos mínimos para que funcione el Windows 95 son muy inferiores, pero con menos recursos va más lento y ejecutar cualquier aplicación un poco exigente puede llevar años por ello yo considero que los verdaderos mínimos son esos, os dejo el link de los requisitos mínimos del W95 según MS:
    http://support.microsoft.com/default.aspx?kbid=138349 (por cierto, funciona con estos requisitos, en el instituto de la Xunqueira 2 tenian uno PC con los requisitos mínimos y W95 instaldo y funcionaba, aunque fuese de forma un poco lenta...
    Si muchisimos menos que Linux con XWindow, incluidos primeras versiones, que para ejecutar Linux con XWindows como mínimo requerias 8MB de RAM... y para ejecutar solo Linux (el kernel con un shell) necesitas 4MB de RAM...
    Hay mucha mentira interesada con respecto a Windows 95, pero lo cierto es que MS acabo con los competidores que le quedaban porque ninguno de ellos pudo presentar un producto superior (salvo Apple, pero incluso en esa época estaba en su peor momento de la hisotoria)...
    Yo tuve Windows 95 en un 486 de los flojos, con 8 MB de RAM y un HD de 200MB y aquello iva muy bien, podía jugar (juegos como Duke Nukem 3D, Quake...), trabajar... Me quede muy desilusionado cuando intente instalar un Linux SlackWare del 96 que venia un libro de Linux de esa época... Y si bien pude instalarlo e iva bien en modo texto, cuando arrancaba XWindows aquello se ralentizaba tanto que era inutilizable, solo con el gestor twm iva relativamente aceptablemente...
    Precisamente esto cuando en el texto se refieren a este tema es cuando creo que se paso y se descubre que es un texto falso...

    En cuanto a un punto comentado por los compañeros, desde hace muchos años Linus Torvals viene atacando a C++, y es que es una persona que no se calla las cosas, por ejemplo algo menos comentado es que llego a decir (en una tradución por significado no literal) que Gnome le parecia la mayor mierda que había y que le daba asco que se ejecutase sobre Linux... que es simpático, porque siempre mostro sus preferencias hacía KDE y en cambio KDE esta desarrollada en C++ y Gnome en C, pero no es por eso por lo que critica a Gnome, sino porque según él, Gnome es muy rigido, poco personalizable, muy feo, muy lento para lo que hace...

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

Temas similares

  1. La verdadera 'inseguridad' de Windows
    Por LUK en el foro NOTICIAS
    Respuestas: 0
    Último mensaje: 07-07-2010, 11:11
  2. Historia real..
    Por trosky en el foro OFF-TOPIC
    Respuestas: 5
    Último mensaje: 28-07-2009, 01:32
  3. Mágia verdadera o solo un truco barato??
    Por aerial25 en el foro OFF-TOPIC
    Respuestas: 37
    Último mensaje: 25-09-2007, 02:11
  4. Historia D+ y apagones
    Por alorent2007 en el foro DIGITAL+
    Respuestas: 3
    Último mensaje: 04-05-2007, 21:47
  5. La Historia Interminable
    Por SanLeviaThan en el foro OFF-TOPIC
    Respuestas: 142
    Último mensaje: 14-12-2006, 23:13

Marcadores

Marcadores