SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

SET 15

65498 visitas

Lo hice por todos vosotros...

      2129

Autor: Traduccion
-[ 0x11 ]--------------------------------------------------------------------
-[ ENTREVISTA A BJARNE STROUSTRUP ]------------------------------------------
-[ Traduccion ]-------------------------------------------------------SET-15-

El 1 de Enero de 1998, Bjarne Stroustrup dio una entrevista a la revista
de informatica del IEEE.

Naturalmente, los editores pensaron que el estaba dando una vision
restrospectiva de los siete a€os de dise€o orientado a objetos, usando el
lenguaje que el mismo habia creado.

Al finalizar la entrevista, el entrevistador consiguio mas de lo que habia
pactado en un principio, y consecuentemente, el editor decidio suprimir
los contenidos 'por el bien de la industria'. Pero como suele suceder,
la informacion se filtro...

Aqui esta una completa trancripcion de lo que se dijo, no editado, no
ensayado, es decir que no es como las entrevistas planeadas...

Lo encontrareis interesante...


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.