tiempo resumen primera linea las historia generaciones generacion evolucion computadoras computadora computacion innovation

innovation - resumen - primera computadora



Importantes nuevos inventos en computación desde 1980. (30)

Esta pregunta surgió de los comments acerca de los diferentes tipos de progreso en la informática en los últimos 50 años aproximadamente.

Algunos de los otros participantes me pidieron que lo planteara como una pregunta para todo el foro.

La idea básica aquí no es golpear el estado actual de las cosas, sino tratar de entender algo sobre el progreso de generar nuevas ideas y principios fundamentales.

Afirmo que necesitamos ideas realmente nuevas en la mayoría de las áreas de la informática, y me gustaría conocer algunas de las más importantes y poderosas que se han hecho recientemente. Si realmente no podemos encontrarlos, entonces deberíamos preguntar "¿Por qué?" y "¿Qué deberíamos estar haciendo?"


¿Qué pasa con las cámaras digitales?

Según Wikipedia, la primera cámara digital verdadera apareció en 1988, y las cámaras digitales de mercado masivo se hicieron asequibles a fines de los años noventa.


Creo que es justo decir que en 1980, si usabas una computadora, o te pagaban por ello o eras un geek ... ¿qué ha cambiado?

  • Impresoras y autoedición a nivel de consumidor. Suponía que no necesitaba una imprenta para producir material impreso de gran volumen y alta calidad. Eso fue grande , por supuesto, hoy en día lo damos por sentado, y en su mayoría ni siquiera nos molestamos con la parte de impresión porque todos estamos en línea de todos modos.

  • Color Seriamente. Las pantallas a color hicieron una gran diferencia en la percepción de los juegos y las aplicaciones de los no geeks. De repente, los juegos parecían menos trabajo duro y más como mirar televisión, lo que abrió las puertas para que Sega, Nintendo, Atari y otros trajeran juegos de consumo a la casa.

  • Compresión de medios (archivos MP3 y video). Y un montón de cosas, como TiVO y iPods, que realmente ya no consideramos como computadoras porque son tan ubicuas y tan fáciles de usar. Pero son.

El hilo común aquí, creo, es algo que antes era imposible (hacer documentos impresos, reproducir imágenes en color con precisión, enviar mensajes a todo el mundo en tiempo real, distribuir material de audio y video), y luego era caro debido al equipo y la logística. involucrado, y ahora es de nivel de consumidor. Entonces, ¿qué están haciendo las grandes empresas ahora que solían ser imposibles pero podrían ser geniales si pudiéramos descubrir cómo hacerlo pequeño y barato?

Cualquier cosa que aún involucre transporte físico es interesante de ver. La videoconferencia no ha reemplazado a las reuniones reales (todavía), pero con la tecnología adecuada, todavía podría hacerlo. Algunos viajes recreativos podrían ser eliminados por un entorno inmersivo sensorial completo: el cine en casa es un ejemplo trivial; otro es el "campo de golf virtual" en un edificio de oficinas en Soho, donde juegas 18 hoyos de golf real en un campo simulado.

Para mí, sin embargo, la próxima gran cosa será la fabricación. Haciendo cosas. Cucharas y guitarras y sillas y ropa y automóviles y azulejos y esas cosas. Cosas que aún dependen de una infraestructura de fabricación y distribución. Ya no tengo que ir a una tienda para comprar una película o un álbum. ¿Cuánto tiempo hasta que no tenga que ir a la tienda para comprar ropa y utensilios de cocina?

Claro, hay desarrollos interesantes en las pantallas OLED, GPS, banda ancha móvil, contenedores IoC y scripting y "la nube", pero aún así son formas totalmente nuevas de poner imágenes en una pantalla. Puedo imprimir mis propias fotos y escribir mis propias páginas web, pero quiero poder fabricar una cesta de lino que encaje exactamente en ese rincón junto a mi escritorio, y un soporte de montaje para pegar mi unidad de efectos de guitarra en mi escritorio, y algo más. Para sujetar mi celular a los manillares de mi bicicleta.

¿No está relacionado con la programación? No ... pero en 1980, tampoco hubo producción de sonido. O la distribución de vídeo. O enviando mensajes a sus familiares en Zambia. Piensa en grande, gente ... :)


Creo que estamos viendo esto de manera incorrecta y sacando conclusiones erróneas. Si lo hago bien, el ciclo va:

Idea -> primera implementación -> adopción minoritaria -> masa crítica -> producto básico

Desde la primera idea hasta la mercancía, a menudo tienes siglos, asumiendo que la idea alguna vez llegue a esa etapa. Da Vinci pudo haber tomado algún tipo de helicóptero en 1493, pero tardó unos 400 años en conseguir una máquina real capaz de levantarse del suelo.

Desde la primera descripción de William Bourne de un submarino en 1580 hasta la primera implementación en 1800, tiene 220 años y los submarinos actuales todavía se encuentran en una etapa de infancia: casi no sabemos nada de viajes bajo el agua (con la tercera parte del planeta bajo el mar, piense en El potencial inmobiliario;).

Y no se puede decir que no hubo ideas anteriores, mucho más antiguas, de las que nunca hemos oído hablar. Basado en algunas leyendas, parece que Alejandro Magno usó algún tipo de campana de buceo en 332 AC (que es la idea básica de un submarino: un dispositivo para transportar personas y suministro de aire debajo del mar). Teniendo esto en cuenta, estamos viendo 2000 años desde la idea (incluso con un prototipo básico) hasta el producto.

Lo que estoy diciendo es que buscar implementaciones hoy, y mucho menos productos, que ni siquiera eran ideas antes de 1980 es ... Apuesto a que el "algoritmo de clasificación rápida" fue usado por un empleado de archivo sin nombre en la antigua China. ¿Y qué?

Había computadoras conectadas en red hace 40 años, claro, pero eso no se compara con la Internet de hoy. La idea / tecnología básica estaba allí, pero a pesar de que no podías jugar un juego de Warcraft en línea.

Afirmo que necesitamos ideas realmente nuevas en la mayoría de las áreas de la informática, y me gustaría conocer algunas de las más importantes y poderosas que se han hecho recientemente. Si realmente no podemos encontrarlos, entonces deberíamos preguntar "¿Por qué?" y "¿Qué deberíamos estar haciendo?"

Históricamente, nunca hemos sido capaces de "encontrarlos" tan cerca de la idea, tan rápido. Creo que el ciclo se está haciendo más rápido, pero la informática todavía es muy joven.

Actualmente, estoy tratando de averiguar cómo hacer un holograma (el tipo de Star Wars, sin ningún tipo de apoyo físico). Creo que sé cómo hacer que funcione. Ni siquiera he reunido las herramientas, los materiales, la financiación y, sin embargo, incluso si tuviera éxito en algún grado, la idea real ya tendría varias décadas, como mínimo, y las implementaciones / tecnologías relacionadas se han utilizado durante el mismo tiempo. .

Tan pronto como comience a listar productos reales, puede estar bastante seguro de que los conceptos y las primeras implementaciones existieron hace un tiempo. No importa

Podría argumentar con alguna razón que nada es nuevo, nunca, o que todo es nuevo, siempre. Eso es filosofía y ambos puntos de vista pueden ser defendidos.

Desde un punto de vista práctico, la verdad se encuentra en algún punto intermedio. La verdad no es un concepto binario, maldita sea la lógica booleana.

Es posible que los chinos hayan creado la imprenta hace un tiempo, pero solo han pasado unos 10 años que la mayoría de las personas pueden imprimir fotos en color decentes en el hogar por un precio razonable.

La invención no está en ninguna parte y en todas partes, según sus criterios y el marco de referencia.


DNS, 1983, y avances dependientes, como la resolución del host de correo electrónico a través de registros MX en lugar de bang-paths. *estremecimiento*

Zeroconf trabajando sobre DNS, 2000. Conecto mi impresora a la red y mi computadora portátil la ve. Comienzo un servidor web en la red y mi navegador lo ve. (Suponiendo que transmiten su disponibilidad).

NTP (1985) basado en el algoritmo de Marzullo (1984). Tiempo exacto sobre redes nerviosas.

La rueda de desplazamiento del ratón, 1995. Usar ratones sin ella se siente tan primitivo. Y no, no es algo que el equipo de Engelbart haya pensado y se haya olvidado de mencionar. Al menos no cuando le pregunté a alguien que estaba en el equipo en ese momento. (Fue en algún evento de Engelbart en 1998 o así. Pude manejar uno de los primeros ratones).

Unicode, 1987, y sus avances dependientes para diferentes tipos de codificación, normalización, texto bidireccional, etc.

Sí, es bastante común que las personas usen los 5 de estos todos los días.

¿Son estas "ideas realmente nuevas?" Después de todo, había ratones, había codificaciones de caracteres, había tiempos de red. Dígame cómo puedo distinguir entre "nuevo" y "realmente nuevo" y responderé a eso por usted. Mi intuición dice que estos son lo suficientemente nuevos.

En dominios más pequeños hay avances más recientes fácilmente. En bioinformática, por ejemplo, Smith-Waterman (1981) y más especialmente BLAST (1990) hacen que el campo sea efectivamente posible. Pero parece que estás pidiendo ideas que son muy amplias en todo el campo de la computación, y que la fruta de bajo rendimiento se recoge primero. Así es siempre con un nuevo campo.


El algoritmo de Page Rank de Google. Si bien podría verse como un refinamiento de los motores de búsqueda de rastreo web, me gustaría señalar que también se desarrollaron después de 1980.


El redescubrimiento de la mónada por investigadores de programación funcional. La mónada fue fundamental para permitir que un lenguaje puro y perezoso (Haskell) se convirtiera en una herramienta práctica; También ha influido en el diseño de bibliotecas de combinadores (los combinadores de analizadores monádicos incluso han encontrado su camino en Python).

La "cuenta teórica de categoría de los módulos de programa" (1989) de Moggi se acredita generalmente con traer las mónadas a la vista para un cálculo efectivo; El trabajo de Wadler (por ejemplo, "Programación funcional imperativa" (1993)) presentó las mónadas como una herramienta práctica.


Este es un complemento para la reducción de mapas de Google , no solo para sí mismo, sino como un proxy para el logro de Google de ejecutar servicios rápidos y confiables en la parte superior de granjas de máquinas de productos básicos no confiables. Definitivamente, un invento importante y totalmente diferente de los enfoques de mainframe de gran tamaño para computación de peso pesado que gobernaron el roost en 1980.


Fuera de las innovaciones de hardware, tiendo a encontrar que hay poco o nada nuevo bajo el sol. La mayoría de las ideas realmente grandes se remontan a personas como von Neumann y Alan Turing.

Muchas de las cosas que están etiquetadas como ''tecnología'' en estos días son en realidad solo un programa o una biblioteca que alguien escribió, o una reconsideración de una idea antigua con una nueva metáfora, acrónimo o marca.


Gestión de paquetes y control de revisión distribuida.

Estos patrones en la forma en que se desarrolla y distribuye el software son bastante recientes y apenas están comenzando a tener un impacto.

Ian Murdock ha llamado a la gestión de paquetes "el mayor avance que Linux ha traído a la industria". Bueno, lo haría, pero tiene un punto. La forma en que se instala el software ha cambiado significativamente desde 1980, pero la mayoría de los usuarios de computadoras aún no han experimentado este cambio.

Joel y Jeff han estado hablando sobre el control de revisión (o control de versión o control de fuente) con Eric Sink en Podcast # 36 . Parece que la mayoría de los desarrolladores aún no se han puesto al día con los sistemas centralizados , y DVCS es visto como algo misterioso e innecesario.

De la transcripción del podcast 36 :

0:06:37

Atwood: ... Si usted asume, y esto es un supuesto importante, que la mayoría de los desarrolladores han dominado un poco el control de fuente fundamental, lo que no es cierto, francamente ...

Spolsky: No. La mayoría de ellos, incluso si lo han hecho, es el check-in, el check-out que entienden, pero la ramificación y la fusión, lo que los confunde.


La compilación de JIT se inventó a finales de los años ochenta.


La inferencia de tipo Damas-Milner (a menudo llamada inferencia de tipo Hindley-Milner) se publicó en 1983 y ha sido la base de todo sistema de tipo estático sofisticado desde entonces. Fue una idea realmente nueva en los lenguajes de programación (admitida en base a ideas publicadas en la década de 1970, pero que no se hizo práctica hasta después de 1980). En términos de importancia, lo comparo con el Sí mismo y las técnicas utilizadas para implementar el Yo; En términos de influencia no tiene par. (El resto del mundo OO todavía está haciendo variaciones en Smalltalk o Simula).

Las variaciones en la inferencia de tipos todavía están en juego; La variación que más destacaría es el mecanismo de clase de tipos de Wadler y Blott para resolver la sobrecarga, que luego se descubrió que ofrecía mecanismos muy poderosos para la programación a nivel de tipo. El final de esta historia todavía se está escribiendo.


La propia Internet es anterior a 1980, pero la World Wide Web ("hipertexto distribuido a través de mecanismos simples") como lo propuso e implementó Tim Berners-Lee comenzó en 1989/90.

Si bien la idea de hipertexto había existido antes ( el Xanadu de Nelson había intentado implementar un esquema distribuido), el WWW era un nuevo enfoque para implementar un sistema de hipertexto distribuido. Berners-Lee combinó un protocolo simple de cliente-servidor, lenguaje de marcado y esquema de direccionamiento de una manera que era potente y fácil de implementar.

Creo que la mayoría de las innovaciones se crean al volver a combinar piezas existentes de una manera original. Cada una de las piezas de la WWW había existido de alguna forma antes, pero la combinación era obvia solo en retrospectiva.

Y estoy seguro de que lo estás usando ahora mismo.


Nada.

Creo que es porque la gente ha cambiado sus actitudes. La gente solía creer que si solo encontraban esa "gran idea", se harían ricos. Hoy en día, las personas creen que es la ejecución y no el descubrimiento el que más paga. Tienes mantras como "las ideas son una moneda de diez centavos por docena" y "el segundo ratón consigue el queso". Así que las personas están enfocadas en explotar las ideas existentes en lugar de encontrar nuevas.


Para abordar las dos preguntas sobre "¿Por qué la muerte de nuevas ideas" y "¿Qué hacer al respecto"?

Sospecho que gran parte de la falta de progreso se debe a la afluencia masiva de capital y la riqueza arraigada en la industria. Suena contraintuitivo, pero creo que se ha convertido en una sabiduría convencional que cualquier idea nueva tiene una oportunidad; Si no lo logra en el primer intento, no puede volver. Es comprado por alguien con intereses arraigados, o simplemente FALLAS, y la energía se ha ido. Un par de ejemplos son las tabletas y el software de oficina integrado. Newton y varios otros tenían un potencial real, pero terminaron (a través de la deserción competitiva y el mal juicio) despillando sus derechos de nacimiento, matando a categorías enteras. (Me gustaba especialmente el Marco de Ashton Tate; pero todavía estoy atascado con Word y Excel).

¿Qué hacer? Lo primero que viene a la mente es Wm. El consejo de Shakespeare: "Vamos a matar a todos los abogados". Pero ahora están demasiado bien armados, me temo. De hecho, creo que la mejor alternativa es encontrar una iniciativa de código abierto de algún tipo. Parecen mantener la accesibilidad y la mejora incremental mejor que las alternativas. Pero la industria se ha vuelto lo suficientemente grande como para que se necesite algún tipo de mecanismo de colaboración orgánica para obtener tracción.

También creo que hay una dinámica que dice que los intereses arraigados (especialmente las plataformas) requieren una cantidad sustancial de cambio (abandono) para justificar el flujo continuo de ingresos; y esto absorbe una gran cantidad de energía creativa que podría haberse gastado de mejores maneras. Mire cuánto tiempo pasamos pisando agua con la última versión de Microsoft o Sun o Linux o Firefox, realizando cambios en los sistemas que en su mayor parte ya funcionan bien. No es porque sean malvados, simplemente está integrado en la industria. No existe tal cosa como el equilibrio estable; Todos los mecanismos de retroalimentación son positivos, favoreciendo el cambio sobre la estabilidad. (¿Alguna vez vio que se retiraba una característica, o se retiró un cambio?)

La otra pista que se ha discutido en SO es el síndrome de Skunkworks (ref: Geoffrey Moore): la innovación real en las grandes organizaciones casi siempre (90% +) aparece en proyectos no autorizados que surgen espontáneamente, impulsados ​​exclusivamente por iniciativa individual o de grupos pequeños ( y la mayoría de las veces se opone a las jerarquías de gestión formal). Entonces: Cuestionando la autoridad, rompe el sistema


Software:

  • Virtualización y emulación.

  • Transferencias de datos P2P

  • Proyectos impulsados ​​por la comunidad como Wikipedia, SETI @ home ...

  • Rastreo web y motores de búsqueda web, es decir, información de indexación que se distribuye por todo el mundo.

Hardware:

  • la PC modular

  • Papel electronico


Una cosa que me sorprende es la humilde hoja de cálculo. La gente que no es programadora construye soluciones salvajes y maravillosas para los problemas del mundo real con una simple cuadrícula de fórmula. Replicar sus esfuerzos en la aplicación de escritorio a menudo toma de 10 a 100 veces más tiempo de lo necesario para escribir la hoja de cálculo y la aplicación resultante es a menudo más difícil de usar y está llena de errores.

Creo que la clave del éxito de la hoja de cálculo es el análisis de dependencia automático. Si el usuario de la hoja de cálculo se viera obligado a usar el patrón de observador, no tendría ninguna posibilidad de hacerlo bien.

Entonces, el gran avance es el análisis de dependencia automático. Ahora, ¿por qué ninguna plataforma moderna (Java, .Net, servicios web) lo ha incorporado al núcleo del sistema? Especialmente en un día y una edad de escalado a través de la paralelización, un gráfico de dependencias conduce trivialmente al recálculo paralelo.

Edición: Dang - acaba de comprobar. VisiCalc se lanzó en 1979; simulemos que es un invento posterior a 1980.

Edit2: Parece que la hoja de cálculo ya está anotada por Alan de todos modos, ¡si la pregunta que lo llevó a este foro es correcta!


BitTorrent . Cambia por completo lo que antes parecía una regla obviamente inmutable: el tiempo que tarda una sola persona en descargar un archivo a través de Internet crece en proporción al número de personas que lo descargan. También aborda las fallas de soluciones anteriores de igual a igual, en particular en torno a la ''sanguijuela'', de una manera que es orgánica para la solución en sí.

BitTorrent convierte elegantemente lo que normalmente es una desventaja, muchos usuarios que intentan descargar un solo archivo simultáneamente, en una ventaja, distribuyendo geográficamente el archivo como parte natural del proceso de descarga. Su estrategia para optimizar el uso del ancho de banda entre dos pares desalienta la sanguijuela como un efecto secundario: lo mejor para todos los participantes es imponer la regulación.

Es una de esas ideas que, una vez que alguien la inventa, parece simple, si no obvia.


Fundación de software libre (establecida en 1985)

Incluso si no eres un partidario incondicional de su filosofía, las ideas que han estado promoviendo, del software libre y el código abierto, han tenido una influencia increíble en la industria del software y en el contenido en general (por ejemplo, Wikipedia).


Lenguas modernas de sombreado y la prevalencia de las GPU modernas.

La GPU también es una supercomputadora paralela de bajo costo con herramientas como CUDA y OpenCL para un código paralelo de alto nivel . Gracias a todos los jugadores que bajan los precios de estas maravillas de hardware cada vez más impresionantes. En los próximos cinco años, espero que cada computadora nueva que se venda (y también los iPhones) tenga la capacidad de ejecutar código paralelo masivo como una suposición básica, como el modo de color de 24 bits o el modo de protección de 32 bits.


Etiquetado , la forma en que se clasifica la información. Sí, los pequeños cuadros de texto debajo de cada pregunta.

Es sorprendente que se hayan tardado unos 30 años en inventar el etiquetado. Utilizamos listas y tablas de contenidos; Utilizamos cosas que están optimizadas para libros impresos.

Sin embargo, 30 años es mucho más corto que el tiempo que necesitan las personas para darse cuenta de que los libros impresos pueden estar en formato más pequeño. La gente puede tener libros en las manos.

Creo que el concepto de etiquetado está subestimado entre los tipos de CS principales. Toda la investigación se centra en el procesamiento del lenguaje natural (enfoque de arriba hacia abajo). Pero el etiquetado es el primer idioma en el que tanto las computadoras como las personas pueden entender bien. Es un enfoque de abajo hacia arriba que hace que las computadoras usen lenguajes naturales.


Los gusanos informáticos se investigaron a principios de los años ochenta del siglo pasado en el Centro de Investigación de Xerox Palo Alto.

De los programas "Gusano" de John Shoch y Jon Hupp - Experiencia temprana con una computación distribuida "(Comunicaciones de la ACM, marzo de 1982, volumen 25, número 3, páginas 1772 a 180, marzo de 1982):

En The Shockwave Rider , J. Brunner desarrolló la idea de un programa omnipotente de "tenia" que se desarrolla a través de una red de computadoras, una idea que puede parecer bastante perturbadora, pero que también está bastante más allá de nuestras capacidades actuales. El modelo básico, sin embargo, sigue siendo muy provocativo: un programa o una computación que puede moverse de una máquina a otra, aprovechando los recursos según sea necesario y replicándose cuando sea necesario.

En una vena similar, una vez describimos un modelo computacional basado en la película clásica de ciencia ficción, The Blob : un programa que comenzó a ejecutarse en una máquina, pero a medida que crecía su apetito por los ciclos de computación, podía alcanzar y encontrar máquinas no utilizadas , y crecer para abarcar esos recursos. En medio de la noche, tal programa podría movilizar cientos de máquinas en un edificio; Por la mañana, cuando los usuarios reclamaban sus máquinas, el "blob" tendría que retirarse de manera ordenada, recogiendo los resultados intermedios de su cálculo. Ocultado en una o dos máquinas durante el día, el programa podría volver a surgir más tarde a medida que los recursos estuvieran disponibles, expandiendo nuevamente el cómputo. (Esta afinidad por la exploración nocturna llevó a un investigador a describirlos como "programas de vampiros").

Citando a Alan Kay: "La mejor manera de predecir el futuro es inventarlo".


Mejores interfaces de usuario.

Las interfaces de usuario de hoy todavía apestan. Y no me refiero a formas pequeñas sino a formas grandes y fundamentales. No puedo dejar de notar que incluso los mejores programas todavía tienen interfaces que son extremadamente complejas o que requieren una gran cantidad de pensamiento abstracto de otras maneras, y que simplemente no se acercan a la facilidad de las herramientas convencionales que no son de software.

Por supuesto, esto se debe al hecho de que el software permite hacer mucho más que las herramientas convencionales. Sin embargo, esa no es razón para aceptar el status quo. Además, la mayoría del software simplemente no está bien hecho.

En general, las aplicaciones que aún carecen de un cierto sentimiento de "solo funciona" están demasiado orientadas por lo que se puede hacer, en lugar de lo que debería hacerse. Un punto que se ha planteado una y otra vez, y que aún no se ha resuelto, es el punto de guardar. Las aplicaciones se estrellan, destruyendo horas de trabajo. Tengo la costumbre de presionar Ctrl + S cada pocos segundos (por supuesto, esto ya no funciona en aplicaciones web). ¿Por qué tengo que hacer esto? Es alucinante estúpido. Esto es claramente una tarea para la automatización. Por supuesto, la aplicación también tiene que guardar una diferencia por cada modificación que realice (básicamente una lista de deshacer infinita) en caso de que cometa un error.

Resolver este problema ni siquiera es realmente difícil. Simplemente sería difícil implementarlo en todas las aplicaciones, ya que no hay una API buena para hacer esto. Las herramientas de programación y las bibliotecas tienen que mejorar significativamente antes de permitir una implementación sin esfuerzo de tales esfuerzos en todas las plataformas y programas, para todos los formatos de archivos con almacenamiento de respaldo arbitrario y sin la interacción requerida del usuario. Pero es un paso necesario antes de que finalmente comencemos a escribir "buenas" aplicaciones en lugar de simplemente las adecuadas.

Creo que Apple actualmente se aproxima a la sensación de "simplemente funciona" en algunos aspectos. Tomemos, por ejemplo, su versión más reciente de iPhoto, que cuenta con un reconocimiento facial que agrupa automáticamente las fotos de las personas que aparecen en ellas. Esa es una tarea clásica que el usuario no quiere hacer manualmente y no entiende por qué la computadora no lo hace automáticamente. E incluso iPhoto aún está muy lejos de una buena interfaz de usuario, ya que dicha función aún requiere la confirmación definitiva por parte del usuario (¡para cada foto!), Ya que el motor de reconocimiento facial no es perfecto.


Software de envoltura

Antes de 1980, el software estaba escrito principalmente en su mayoría. Si dirigía un negocio y quería informatizarse, normalmente obtendría una computadora, un compilador y una base de datos, y escribiría sus propias cosas. El software empresarial se escribía normalmente para adaptarse a las prácticas comerciales. Esto no quiere decir que no haya software enlatado (trabajé con SPSS antes de 1980), pero no era la norma, y ​​lo que vi era un software de infraestructura e investigación.

Hoy en día, puede ir a una tienda de computadoras y encontrar, en el estante, todo lo que necesita para dirigir una pequeña empresa. No está diseñado para adaptarse perfectamente a las prácticas que solía tener, pero funcionará bien una vez que aprenda a trabajar más o menos según su flujo de trabajo. Las grandes empresas están mucho más cerca de shrinkwrap de lo que solían ser, con cosas como SAP y PeopleSoft.

No es una ruptura limpia, pero después de 1980 hubo un cambio muy definitivo del software costoso personalizado al software de bajo costo disponible en el mercado, y la flexibilidad pasó del software a los procedimientos comerciales.

También afectó la economía del software. Las soluciones de software personalizadas pueden ser rentables, pero no se pueden escalar. Solo puede cobrar tanto a un cliente y no puede vender lo mismo a varios clientes. Con el software shrinkwrap, puede vender lotes y lotes de lo mismo, amortizando los costos de desarrollo sobre una base de ventas muy grande. (Tiene que proporcionar soporte, pero esa escala. Solo considérelo como un costo marginal de vender el software).

Teóricamente, donde hay grandes ganadores de un cambio, habrá perdedores. Hasta el momento, el negocio del software ha seguido creciendo, de modo que a medida que las áreas se convierten en productos básicos, otras áreas se abren. Es probable que esto llegue a su fin en algún momento, y los desarrolladores con talento moderado se encontrarán en una situación realmente difícil, incapaces de trabajar para los grandes y se quedarán fuera del mercado. (Esto presumiblemente sucede en otros campos; sospecho que la demanda de contadores es mucho menor de lo que sería sin QuickBooks y similares).


Creo que Unit Testing, TDD y Continuous Integration son inventos significativos después de 1980.


Desarrollo de comunidad de código abierto.


Teléfonos móviles.

Si bien la primera patente de "teléfonos inalámbricos" fue en 1908, y estuvieron cocinando durante mucho tiempo (0G en 1945, 1G lanzado en Japón en 1979), los teléfonos celulares digitales modernos 2G no aparecieron hasta 1991. SMS no existía Hasta 1993, y el acceso a Internet apareció en 1999.


Comencé a programar el 2 de enero de 1980. Traté de pensar en nuevos inventos significativos en mi carrera. Lucho para pensar en alguno. La mayoría de lo que considero significativo se inventó en realidad antes de 1980, pero luego no se adoptó o mejoró ampliamente hasta después.

  1. Interfaz gráfica del usuario.
  2. Procesamiento rápido.
  3. Memoria grande (pagué $ 200.00 por 16k en 1980).
  4. Tamaños pequeños: teléfonos celulares, computadoras de bolsillo, iPhones, netbooks.
  5. Grandes capacidades de almacenamiento. (He pasado de llevar un disquete grande de 90k a una memoria USB de 8 gigas.
  6. Procesadores múltiples. (Casi todas mis computadoras tienen más de una ahora, el software lucha para mantenerlas ocupadas).
  7. Interfaces estándar (como USB) para conectar fácilmente periféricos de hardware.
  8. Múltiples pantallas táctiles.
  9. Conectividad de red - que lleva a la explosión de internet a mediados de los 90.
  10. IDE''s con Intellisense y compilación incremental.

Mientras que el hardware ha mejorado enormemente, la industria del software ha luchado para mantenerse al día. Estamos a años luz de 1980, pero la mayoría de las mejoras han sido mejoras más que inventos. Desde 1980 hemos estado demasiado ocupados aplicando lo que los avances nos permiten hacer en lugar de inventar. Por sí solos, la mayoría de estos inventos incrementales no son importantes ni poderosos, pero cuando miras hacia atrás en los últimos 29 años son bastante poderosos.

Probablemente tengamos que abrazar las mejoras incrementales y dirigirlas. Creo que las ideas verdaderamente originales probablemente provendrán de personas con poca exposición a las computadoras y se están volviendo más difíciles de encontrar.



El uso de la interacción Física en Computadores Humanos para proporcionar una metáfora alternativa y comprensible. Esto, combinado con gestos y hápticos, resultará en un reemplazo para la metáfora de la GUI común actual inventada en los años 70 y en el uso común desde mediados hasta finales de los 80.

La potencia de cálculo no estaba presente en 1980 para hacer eso posible. Creo que los Games probablemente lideraron el camino aquí. Se puede ver fácilmente un ejemplo en la interacción del desplazamiento de listas en el iPod Touch / iPhone. El mecanismo de interacción se basa en la intuición de cómo funcionan el impulso y la fricción en el mundo real para proporcionar una forma sencilla de desplazarse por una lista de elementos, y la facilidad de uso se basa en el gesto físico que causa el desplazamiento.


Sistemas HTM ( Memoria Temporal Hiearchical ).

Un nuevo enfoque de la inteligencia artificial, iniciado por Jeff Hawkins a través del libro " On Intelligence ".

Ahora activa como una empresa llamada Numenta donde estas ideas se ponen a prueba a través del desarrollo de AI "verdadero", con una invitación a la comunidad a participar utilizando el sistema a través de SDK.

Se trata más de construir inteligencia de máquina desde cero, en lugar de tratar de emular el razonamiento humano.