Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

El expediente X que nadie pidió
eNigma
La cuadratura del píxel
Portando desde Spectrum
Inexorable

Últimos comentarios

Habi
NoSupoResolverLaFuncion
Edu
Habi
EnriqueGG

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Habi dice: Mi piso parece un punto limpio

:6

Habi - 18/01/2007 23:01:19 - Tecnoesoterismo

Volvamos atrás unos cuantos años. Uno podía encontrarse con un montón de plataformas distintas; CPCs, PCWs, Spectrums, Commodores, MSXs y algunos otros casi desconocidos por estas latitudes, como los BBC Micro, Apple II, Altair, IMSAI 8080, …

Un gran número de plataformas, sí. Cada una diferente de la otra, sí. Con sus características incompatibles, sí. Cada una con una versión de BASIC (o algo peor) distinta, sí.

Como no tenían demasiada potencia, el portar un juego a varias plataformas era un trabajo de chinos, pues se debía optimizar para cada plataforma, y eso lo sabían los Programadores (sí, con mayúsculas). Pero también es cierto que para ciertas aplicaciones no hacía falta más que un modo de texto, o con gráficos llamados desde de una interfaz común. ¿Por qué no hacer algo común para todos?

Y así fue como que en medio de ese caos surgió el CP/M. Un sistema operativo para gobernarlos a todos, un sistema operativo para encontrarlos, un sistema operativo para atraerlos a todos y atarlos en las tinieblas.

Los únicos requisitos: 80 columnas (o apaño equivalente), unidad de disco (idem) y tener un Z80 (8080) para ejecutar código. Commodore creó el Commodore 128 con un Z80 como coprocesador sólo para poder ejecutar el CP/M, y de igual manera se crearon extensiones para el Apple II y similares que tenían arquitectura Motorola (650x). Incluso el Spectrum +3, con unidad de disco, tuvo su versión.

Un mismo programa, una vez optimizado se ejecutaba en todos los ordenadores. Pues todos tenían el mismo sistema operativo, el mismo formato de ejecutable y un procesador compatible. Y todos se regocijaron.

Además, traía el Mallard BASIC, que era un intérprete de BASIC igual para todo el mundo. Un gran adelanto, sin duda. Aplicaciones como WordStar o dBase surgieron para CP/M. Hubo incluso compiladores de Pascal de Borland. Después todos ellos se portaron a DOS, pero eso es otra historia.

El fin de los 8 bits fue rápido y silencioso.


Hoy en día la situación es justo la inversa. Se tiende a una sola plataforma, el PC (bastante chapucera, el contar sus miserias se merece otro post). Sin embargo, nos encontramos que hay una infinitud de sistemas operativos.

Desde la humilde familia DOS (basado en CP/M) y sus variantes, la familia Windows y OS/2, la infinitud de distribuciones de Linux y núcleos BSD hasta cosas más exóticas como TriOS, DragonFly BSD, ReactOS, Plan 9, MenuetOS, y antiguallas como Xenix, Amiga OS o HP-UX. Incluso ahora se tiene el Mac OS, pues la arquitectura PPC ha caído (impío Apple despiadado; adios 6502, adios 680x0, adios PPC, ...). Aunque que se usen, el Windows, Linux (y sus 12.000 manejadores de ventanas incompatibles entre sí), Mac OS, FreeBSD / OpenBSD y poco más.

Una sola plataforma, multitud de sistemas operativos, multitud al cuadrado por lo tanto de formatos binarios y linkados dinámicos cuando el hardware que subyace es el mismo. Hacer hoy en día un programa realmente portable implica que ha de ser intrínsecamente lento. Por las tremendas capas de emulación necesarias para proporcionar un entorno lo más abstracto posible (y la gran cantidad de recursos que consumen), por el mínimo común múltiplo de los puntos fuertes de cada sistema operativo y por el máximo común divisor de los débiles. Es independiente de lo que optimice el compilador.

Tener competencia en el hardware haría bajar los precios del mismo (sobre todo en marcas), lo que beneficia a los usuarios. El que haya un sólo sistema operativo hace no sólo que todo esté más optimizado, sino más accesible, pues se da el caso actualmente de aplicaciones y juegos existentes para algunos siestemas operativos  y no para otros. Esta unicidad también beneficiaría al usuario.

Dejando eso a un lado, lo peor es el desarrollo. Donde antes había un Programador, ahora hay 10 infraseres que no valen apenas 1/10 del Programador y les cuestan a la empresa 1/10 del mismo (¡en conjunto!); o aunque no sean infraseres, se les obliga a serlo, quitándoles el diseño, la iniciativa y el sueldo. Y se autoengañan creyendo que metiendo más gente se desarrollará mejor y antes. Es como pretender ganar una carrera a un coche de fórmula 1 con un Smart, y al ver que no se puede, poner más Smarts a correr; al final se consigue, pero trivialmente porque hay tantos coches en el circuito que ninguno puede moverse.

Knuth se quejaba del gran daño que produjo el BASIC a los futuros programadores. Yo creo que es más profundo, que el arte de programar se jodió en cuanto se convirtió en un puto marketing, como todo.

Hoy cambiaré mi sesión de Prukogi por otro mantra igualmente poderoso, del maestro Nicklaus Wirth: “Software gets slower faster than hardware gets faster”. Repeat with me, please...

Qué gran verdad. Y qué triste.


Z de InfraZer - 19/01/2007 14:07:54

"Donde antes había un Programador, ahora hay 10 infraseres." 
 
¡¡¡¡¡No sabes cuánta razón tienes!!!!! 
 
O lo que es peor: Sí lo sabes :D




Post cerrado