A principios de los años 90 Windows parecía no tener rival, pero internamente varias amenazas planteaban cambios radicales. Una era Borland y su prodidigioso entorno de programación Turbo C++
La otra, NeXT, la empresa que Steve Jobs creó en 1985 y con la que sentó las bases de una plataforma de desarrollo de aplicaciones gráficas que acabaría llegando a los Mac y los iPhone. Microsoft no estaba preocupada por los Mac, pero sí por esa idea que revolucionaba el mundo del desarrollo.
Disrupciones y el dilema del innovador
Lo comentaba Steven Sinofsky, que durante años fue máximo responsable de Office y acabaría liderando el desarrollo de Windows 7 en Microsoft. Este ingeniero está publicando una fantástica newsletter autobiográfica titulada 'Hardcore Software' en la que habla de todos aquellos años en Microsoft y en la que repasa diversos momentos cruciales para la compañía.

Uno de ellos se produjo a principios de los años 90, cuando Microsoft, que ya comenzaba a dominar de forma aplastante el mercado de los ordenadores personales, se dio cuenta de cómo BASIC ya no atraía a los desarrolladores, que comenzaban a interesarse por los lenguajes de programación orientados a objetos y por lenguajes mucho más potentes como C++ que permitían programar aplicaciones con una interfaz gráfica de usuario (GUI) notable.
Borland y su Turbo C++ Professional dejó a las herramientas de Microsoft en evidencia: era mucho más rápido en todo, e integraba editor, compilador y depurador. Pronto se convirtió en la suite que todo desarrollador quería usar.
Microsoft, que se dio cuenta de que la revolución estaba en las aplicaciones con su GUI, trató de crear un SDK (Software Development Kit) para facilitar esa tarea, pero seguían sin llegar al nivel de la suite de Borland. "Esa fue mi primera experiencia con la disrupción", destacaba Sinofsky, que comentaba que aunque esa palabra aún no formaba parte del vocabulario tradicional dejaba claro que "pequeños" actores podían plantar cara a corporaciones de la talla de Microsoft en ciertos nichos de mercado.
Jobs y NeXT le muestran el futuro a Microsoft
En Microsoft iban claramente por detrás en cuanto a herramientas de desarrollo. De hecho, confesaba Sinofsky, seguían usando Xenix (un UNIX comercial) y OS/2 para desarrollar software para MS-DOS y Windows, y envidiaban a plataformas como Apple, que durante años invirtió en una serie de herramientas para desarrollo de aplicaciones con GUI para los Macintosh.

Por aquella época, por cierto, Apple tenía una cuota de mercado insignificante si la comparábamos con la de Microsoft en cuanto a sistemas operativos. Hacía años que Steve Jobs había sido despedido, pero no se había quedado quieto y en 1985 había fundado NeXT, una empresa que no era especialmente conocida por el gran público pero que era seguida muy de cerca por Bill Gates (BillG, como le denomina Sinofsky constantemente por su dirección de correo original de Microsoft) y por toda la industria.
Cuando Jobs presentó nuevos ordenadores de NeXT y herramientas para esta plataforma en San Francisco en 1990, dio paso a Jim Manzi, CEO de Lotus. El directivo presentó una nueva y revolucionaria hoja de cálculo llamada Improv, y al hablar de ella indicó que "no podríamos haber creado este nuevo y revolucionario producto en ninguna otra plataforma".
La referencia era clara: no hubieran podido hacerlo en Windows. "Microsoft tenía que hacer algo", destacaba Sinofsky. "Algo con Borland y NeXT". El directivo dejaba claro así cómo aunque Microsoft había logrado dominar el mercado en muchos ámbitos, su posición de privilegio estaba amenazada.
No en el ámbito de los sistemas operativos, sino en el del software. Atraer a los desarrolladores y que trabajaran en tu plataforma podía no estar tan de moda en aquella época —el desarrollo independiente era mucho menos visible y las grandes empresas software dominaban el mercado—, pero contar con una plataforma notable para desarrollar era clave.
De hecho los éxitos de NeXT eran claros: en 1989, un año después de que la empresa anunciara su primer ordenador, Sir Tim Berners-Lee usó una de esas máquinas para crear la World Wide Web.
Jobs no solo copió Mac OS del Xerox PARC
Mucho se ha hablado de cómo Steve Jobs "se inspiró" en los proyectos del Xerox PARC y entendió que la interfaz gráfica era el futuro de la computación, pero en aquella visita también pudo ver cómo funcionaba Smalltalk, un lenguaje de programación que planteaba un nuevo paradigma: el de la programación orientada a objetos.

El entorno de desarrollo de Smalltalk era gráfico, y crear una interfaz gráfica para una aplicación era algo directo en este entorno. Jobs comprendió que aquello era otra revolución, pero curiosamente no la aplicó a los Macintosh, en los que programar una aplicación gráfica era mucho más complejo que lo que se lograba con Smalltalk.
El propio Jobs lo reconoció en su lanzamiento de los ordenadores NeXT en 1988. Allí explicó cómo "Macintosh fue una revolución que lograba hacer la computación más sencilla para el usuario final. Pero el desarrollador software pagó el precio... Es muy complicado desarrollar software para el Macintosh. Si observas el tiempo que lleva desarrollar una aplicación con GUI, la interfaz de usuario se lleva el 90% del tiempo".
Con NeXT, Jobs quiso solucionar el problema, y en su sistema operativo NeXTSTEP integró herramientas de desarrollo con el lenguaje de programación Objective-C —licenciándolo— como protagonista para reducir el tiempo que un desarrollador dedicaba a la interfaz gráfica: pasaba del 90 al 10%, según aquella presentación de Jobs.
Entre los componentes clave desarrollador por Steve Naroff, responsable de la adaptación del lenguaje a NeXT, está la llamada AppKit (curioso cómo los nombres actuales de plataformas de desarrollo de Apple siguen ese mismo esquema) que se conjugaba con la llamada 'Interface Builder' para "conectar" objetos de sus aplicaciones de forma gráfica.
Aquella propuesta fue todo un acierto: NeXTSTEP acabaría siendo la base de Mac OS X una década después, y Objective-C seguiría siendo lenguaje de referencia para los programadores no ya de Mac OS X, sino incluso de iOS cuando apareció en el mercado. Solo en 2014 Apple acabó cediendo el testigo para convertir a Swift en su nuevo lenguaje de programación de referencia, aunque Objective-C sigue usándose hoy en día.
Microsoft, mientras tanto, seguía anclada en el pasado, y tanto Borland como NeXT estaban ganando una batalla que la empresa de Redmond tardó mucho tiempo en lograr igualar.
Ver 21 comentarios
21 comentarios
jubete
Bueno, es un poquito incompleto el artículo, porque da la sensación de que ObjectiveC lo conocían fuera del Mac o que MS andaba siempre detrás de Borland, o incluso que la conexión esa entre objetos del programa y la GUI la inventó Jobs.... y no.
Borland era la pera, y además los muy descarados hasta se inventaron Delphi para comerle la tostada al VisualBasic, que era lo que usaban los que querían programar sin saber programar del todo, pero por otra parte, los de MS se sacaron el VisualC++ para pegarse con el BorlandC++, y la pelea era muy dura y, desde mi punto de vista, perfecta, porque si Borland sacaba un asistente (no he vuelto a leer la palabra "wizard" desde entonces) para algo, MS lo mejoraba, y viceversa. Y Watcom detrás con un compilador más rápido. E Intel, para el que sabía lo que quería.
Yo era feliz.
Y en cuanto al modo de programar, se paso de los callbacks de Motif al cojo-switch del PresentationManager importado en Windows para volver a los callbacks de TurboVision o las MFC, que escondían los callbacks en las clases bases, pero eran callbacks al fin y al cabo. Y con eso seguimos, aunque ahora lo llamemos eventos. ¿En esta historia alguien a visto a los de Mac? No, ellos no han liderado nada en el desarrollo, porque es difícil liderar algo e imponer algún paradigma de programación cuando los Mac apenas salían en alguna película, el ObjectiveC era y es una mierda que solo se usa porque te obligan para el iPhone (y ahora, ni eso) y NeXT se ha visto más en un gestor de ventanas de Linux que en el mismo NeXT.
Que no olvidemos que el TurboPascal y el Turbo C++ venian con TurboVision de serie, que era un framework orientado a objetos... De la época de MS-DOS...
black_ice
Super super interesante entrada!
Esta es la razón principal por la que en los primeros años de iOS vs Android, la calidad de las aplicaciones era tan notablemente superior en la plataforma de Apple: la calidad de las herramientas. Desarrollar para Android con Eclipse + Plugin + todos los problemas que había en la plataforma era un auténtico infierno.
Sin embargo Google apretó fuerte el acelerador y logró:
- Usar un IDE dedicado (Basado en IntelliJ Idea, en mi opinión el mejor IDE del mercado).
- Herramientas WYSIWYG similares al interface builder de Xcode.
- Introdujo un sinfín de librerías de soporte que ayudaron a disminuir la complejidad de las aplicaciones, mejorando el rendimiento (RecycleView etc etc), simplificando tareas, simplificando código etc
- Un lenguaje mucho mas moderno que Java (Kotlin)
- ... por mencionar solo lo que considero mas relevante porque la lista es larga...
Y eso se nota muchísimo. Hoy en día ya no es tan común ver engendros de apps en Android, y su calidad en cuanto a visuals y rendimiento a la par o mas que en iOS.
frangar
Este articulo me recuerda la encendida defensa de los comunistas (todavia existen) de los primeros años de la astronautica, en los que los sovieticos iban a la cabeza. Para ellos, la URSS gano la carrera espacial, que termino en 1965. El resto de la historia no existe. Lo mismo les pasa a los fans de Apple. No se como se puede hablar de la "victoria" de Apple siendo que siempre fueron una parte minoritaria del mercado. Lo unico que les queda es agarrarse del cuento de la "calidad".
A ver si con su nuevo M1 Apple levanta un poco la cabeza.
spino
Leo en el titular “[...] un exdirectivo lo cuenta desde dentroo“ ...dentroO ... me alegra ver que no soy el único con un teclado de mariposa de miel·”$%a en el MacBook Pro... ;)
Chic1010
Que descanse en paz el hombre, pero no lo dejan.
patogarza
Appleeeeeeeeee Grandeeeeeeee!!!!!! 🙌🏿