miércoles, 24 de enero de 2007

Análisis sobre la revolución de la tecnología en la informática

Hubo un tiempo en el que unos compañeros y yo bromeábamos sobre tener un HD de 1 Terabyte, nos preguntábamos qué se podía hacer con tanto espacio y comenzábamos a bromear alucinando fantasías casi sexuales con él:

"¡¿Cómo llenar tanto espacio?!"

"Le metería todas las series que me gusten y descargaría películas y le pondría juegos"

"Lo particionaría a todo lo que da con letras de la A hasta la Z y le metería muchas cosas"

y entre sugestiones como esas se me ocurre decir: "¡Órale, ya va el 1%, sigan diciendo más!".

Y es que para nuestra mente de 40 GB, 1 Tera era algo de otro mundo, algo que, si bien existe, no tendríamos el dinero suficiente para conseguir uno. Al final quedaron 3 bromas oficiales sobre lo que cada uno haría con su HD de un TB, aunque nunca se acordó quién haría qué. Más bien, eran las versiones oficiales de lo ideal en información para un Terabyte:

"¡A esa cosa le cabría la Matrix!"

"¡Imagínate llenarlo todo de películas XXX!... Tener tu terabyte de pornografía!"

"Ya me imagino cuando le entre un virus y el disco esté en blanco: el virus va a comenzar a expandirse, a autoreplicarse y autoreplicarse hasta el cansancio creando carpetas y ejecutándose varias veces y copiándose a cada instante; pero, por más rápido y recio que vaya, siempre va a ver puro contenido blanco al rededor". Y yo me imaginaba al disco perdido en un desierto en blanco, como haberse extraviado en la habitación del tiempo del templo de Kamisama. "Entonces como siempre va a ver bastante espacio en blanco por donde quiera que mire va a decir '¡Bah... yo me largo!' y luego se va a autodestruir".

Son cosas que nos daban mucha risa.

Eso, junto con el crecimiento en potencia de los procesadores y la capacidad de las memorias RAM me decía "¡Wow! Apuesto a que viviré para ver a todas nuestras computadoras optimizadas".

Con semejantes avances, la expansión de las pantallas de plasma, los CPUs chicos y sin disqueteras, me imaginé a las computadoras de un futuro no muy lejano bien rápidas y cuyos procesadores y memorias RAM quizá hasta lograrían hacer innecesario el cursor del relojito.

Y fue entonces cuando dije: "Algo anda mal aquí..." y cavilé sobre aquellos argumentos que al decirlos sentía cómo la falacia se expandía haciendo eco en mi cerebro. Después de todo, las cosas no son color de rosa en ninguna parte, algo andaba mal en lo que indagaba.

Prioricé en mi mente un factor que me hizo reaccionar hacia aquellos engaños: Windows Vista.

Windows Vista es el Sistema Operativo ideal para comprobar lo que digo: su nuevo entorno gráfico, funciones, eventos, objetos y software programado con tecnología .NET, prácticamente diciendo "apuren a diseñas mejores PCs que ya me cansé de bloquear estas, necesito retos nuevos".

Antes las computadoras tenían algunos cuantos megas como capacidad en el disco duro, procesadores realmente pobres y memorias RAM de 32MB y con eso se bastaban, pero como contraste tenían ASM, Cobol y Fortran, lenguajes que por ser estrechamente detallados y amigos del sistema adaptaban el software a la tecnología disponible.

Y aquí es donde viene mi cuestión: ¿Es el software el que se adapta a la tecnología, o la tecnología la que se adapta al software?

Entiéndase por 'software' al lenguaje de programación, pues es de él de quien parten los programas.

En caso de ser la primera entonces las cosas están algo justificadas y es el lenguaje de programación el que se amplía en base a las innovaciones tecnológicas. Antes había computadoras con 16 MB de RAM, pero así también había lenguajes de programación en los que las mejores aplicaciones no necesitaban más de 16 MB para ejecutarse: no fue necesaria nunca una RAM que soportara OpenGL... porque no había OpenGL. Es tal que, cuando se crearon discos duros y RAM con más capacidad, los códigos pudieron explayarse sin escatimar en insumos, lo que permitiría, por ejemplo, hacer compiladores y nuevos lenguajes de programación que "se tomaran su tiempo" pero dando mejores resultados que los viejos, lo que daría origen a una metodología de software que tuviera como filosofía: "deja de preocuparte por la RAM y el procesador y haz mejores cosas".

Por otro lado, en caso de ser la tecnología quien se adapte al software, tendríamos que recurrir al efecto mariposa: remontémonos a aquellos tiempos de Cobol y Fortran en una habitación donde está un programador dibujando códigos (ya te imaginarás a ti mismo, no lo niegues :p) y viendo lo complicado que es hacer casi nada y que dice "Nel, man, debe haber una forma de producir más cosas con menos código" y creó sus funciones universales, librerías y sólo se dedicó a llamar procedimientos. Con ese código más corto tendría tiempo de hacer muchas más cosas y no dejar escapar tan fácil sus (tus) tan fugaces ideas, entre las que se situaban: otro lenguaje de programación que no diera tanta batalla, así que, usando sus librerías universales, escribió su nuevo compilador y le puso más librerías.¶

Teniendo su nuevo lenguaje creó cosas nuevas y mejores, y con el paso del tiempo cayó en lo mismo: se vio en la necesidad de crear más librerías y funciones que le exigían sus nuevos programas, lo que le llevó a la idea de crear otro lenguaje más humano.¶

Así se irían creando docenas de lenguajes de programación cada vez más y más "haz esto, no me interesa cómo", teniendo ahora que reparar en nuevos recursos que soportaran al nuevo lenguaje.

Es decir, los nuevos lenguajes que se crean con el fin de combatir la reinvención de la rueda necesitan más capacidad en los procesadores, y se les concede ya que después de todo están invirtiendo en descubrimientos e innovaciones (ergo avances), pero cada vez más alejados del ASM (no del binario porque al fin y al cabo todo es binario, pero ellos pasan a ser "binario lento").

Es ahora que nos encontramos en esta situación de los lenguajes de altísimo nivel (más aún que el VB), los cuáles son sofisticados y lentos (a comparación de los de antaño). Se echa a andar un programa hecho en un lenguaje de nivel casi-humano y comienza a correr, pero no hay peligro porque tenemos ya procesadores de doble núcleo que gestionan mejor el flujo de corriente que transcurre por la CPU, discos duros capaces de almacenar todo el ejecutable que se genera y RAM optimizadas para que ni se sientan las hordas de códigos invadiendo los recursos.

Todo esto congeniando en diversas capas de abstracción que hacen todas sus hexadecenas de miles de instrucciones totalmente transparentes al usuario.

Me pregunto entonces, ¿dónde está aquella tierra prometida que ilusamente me supuse?

Tal parece que no va a haber un cielo en el que aprovechar de forma excelente los recursos: Windows Vista programado seguramente con lenguajes lejanos al Assembler (obviamente incluyeron parte de él y de C++ para programarlo), pero ni siquiera me fío de sus algoritmos; y es que ¿cómo es posible que AERO requiera de media tonelada de RAM para ejecutarse mientras que Beryl corre perfectamente con menos de 512 MB?

Ya me leí hace tiempo los recursos de que se debe valer vista para correr como lo presume y no me pareció nada; excluyendo a esto las bases monetarias necesarias para complementarse.

¿Y para qué tanta RAM y tanta energía del inocente procesador?, ¿para correr un rootkit que vigile que no copie mis CDs de Slipknot?, ¿para tener a un proceso privado que esté cada nanosegundo checando que no haya nada que corra paralelo a la reproducción de un vídeo?

Las computadoras del futuro vendrán equipadas con 8 GB de RAM, 16 Terabytes de disco duro y un procesador que le pisa los talones a los PetaHertzios, pero con software programado en lenguaje humano:

Cuando el usuario me arranque voy a cargar las librerías de NT/Tux que tengan solamente las funciones que ocupa el usuario, después dibujaré un botón más o menos grande y azul para que combine con la combinación de colores que tiene el SO.

Espero que mi user se vuelva a quedar dormido y deje descargando cosas del eMule, así tengo más tiempo para descansar.

Pienso que el futuro tecnológico-informático no es tan vil como me lo pienso, después de todo habrá gente que siga programando en C/C++, en Java, ASM y buenos programadores capaces de implementar algoritmos eficaces que hagan de nuestra estadía frente a un monitor LCD toda una experiencia.

Hilsener.

No hay comentarios.:

Publicar un comentario