stringtranslate.com

Minimalismo (informática)

En informática , el minimalismo se refiere a la aplicación de filosofías y principios minimalistas en el diseño y uso de hardware y software . El minimalismo, en este sentido, significa diseñar sistemas que utilicen la menor cantidad posible de recursos de hardware y software.

Historia

A finales de los años 1970 y principios de los años 1980, los programadores trabajaban dentro de los confines de los recursos relativamente caros y limitados de las plataformas comunes. Ocho o dieciséis kilobytes de RAM eran comunes; 64 kilobytes se consideraban una cantidad enorme y era todo el espacio de direcciones accesible para las CPU de 8 bits predominantes durante las primeras generaciones de computadoras personales . El medio de almacenamiento más común era el disquete de 5,25 pulgadas que contenía de 88 a 170 kilobytes. Los discos duros con capacidades de cinco a diez megabytes costaban miles de dólares.

Con el tiempo, la capacidad de memoria de las computadoras personales se expandió en órdenes de magnitud y los programadores convencionales aprovecharon el almacenamiento adicional para aumentar las capacidades de su software y facilitar el desarrollo mediante el uso de lenguajes de nivel superior . En cambio, los requisitos del sistema para el software heredado siguieron siendo los mismos. Como resultado, incluso los programas más elaborados y ricos en funciones de antaño parecen minimalistas en comparación con el software actual.

Un ejemplo de un programa cuyos requisitos de sistema alguna vez le dieron una reputación de peso pesado es el editor de texto GNU Emacs , que ganó el acrónimo "Ocho megabytes y constantemente intercambiando" en una era en la que 8 megabytes era mucha RAM. [1] Hoy, el paradigma de Emacs, basado principalmente en búferes de texto , utiliza muchos menos recursos que los IDE con GUI de metáfora de escritorio con características comparables, como Eclipse o Netbeans . [2] En un discurso en la Conferencia Internacional Lisp de 2002, Richard Stallman indicó que el minimalismo fue una preocupación en su desarrollo de GNU y Emacs, basado en sus experiencias con Lisp y las especificaciones del sistema de minicomputadoras de gama baja en ese momento. [3]

A medida que las capacidades y los requisitos del sistema de los sistemas operativos y software de escritorio más comunes crecieron durante las décadas de 1980 y 1990, y el desarrollo de software quedó dominado por equipos que adoptaban metodologías de desarrollo de software conflictivas y pasajeras , algunos desarrolladores adoptaron el minimalismo como filosofía y optaron por limitar sus programas a un tamaño o alcance predeterminado. [4] Un enfoque en la optimización del software puede dar como resultado un software minimalista, ya que los programadores reducen la cantidad de operaciones que realiza su programa para acelerar la ejecución. [5]

A principios del siglo XXI, los nuevos avances en informática han llevado el minimalismo a un primer plano. En lo que se ha denominado la era post-PC, ya no es necesario comprar un ordenador personal de gama alta simplemente para realizar tareas informáticas comunes. [6] Los dispositivos informáticos móviles , como los teléfonos inteligentes , las tabletas , los netbooks y los ordenadores enchufables , suelen tener capacidades de memoria más pequeñas, subsistemas gráficos menos capaces y procesadores más lentos en comparación con el ordenador personal al que se espera que sustituyan. Además, el uso intensivo de efectos gráficos como la combinación alfa agota la batería más rápido que una "interfaz de usuario plana". [7] La ​​creciente popularidad de estos dispositivos ha convertido al minimalismo en una preocupación de diseño importante.

El navegador Chrome de Google y ChromeOS se citan a menudo como ejemplos de diseño minimalista. [8] [9]

Otro ejemplo es Windows 8 , donde Microsoft implementó la apariencia Metro "simple y cuadrada" , que era menos intensiva en gráficos que la interfaz Aero anterior utilizada en Windows 7 y Windows Vista . Este cambio se realizó en parte debido al aumento de dispositivos más pequeños alimentados por batería y la necesidad de ahorrar energía. [10] [11] [12] La versión 7 de iOS de Apple realizó cambios similares por razones de experiencia del usuario . [13]

Uso

Los desarrolladores pueden crear interfaces de usuario lo más simples posible eliminando botones y cuadros de diálogo que puedan confundir al usuario. El minimalismo se utiliza a veces en su sentido artístico , en particular en el diseño industrial de dispositivos de hardware o software .

Algunos desarrolladores han intentado crear programas para realizar una función particular en la menor cantidad de líneas de código o en el menor tamaño de archivo ejecutable compilado posible en una plataforma determinada. [14] [15] Algunas distribuciones de Linux mencionan el minimalismo como una meta. Alpine Linux , Arch Linux , Puppy Linux , Bodhi Linux , CrunchBang Linux , dynebolic [16] y Tiny Core Linux son ejemplos. El desarrollo temprano del sistema Unix se produjo en hardware de baja potencia, y Dennis Ritchie y Ken Thompson han manifestado su opinión de que esta restricción contribuyó a la "elegancia del diseño" del sistema. [17]

Los diseñadores de lenguajes de programación pueden crear lenguajes de programación minimalistas evitando el azúcar sintáctico y las funciones de biblioteca extensas . Dichos lenguajes pueden ser trampas de Turing debido a que no ofrecen soporte estándar para tareas de programación comunes. Crear un intérprete Lisp minimalista es una tarea de aprendizaje común que se les plantea a los estudiantes de informática . [18] El cálculo Lambda , desarrollado por Alonzo Church, es un lenguaje de programación minimalista que utiliza solo definiciones de funciones y aplicaciones de funciones. [19] [20] Scheme , [21] [22] Forth , [23] y Go [24] [25] se citan como ejemplos de lenguajes de programación minimalistas prácticos.

El pasatiempo de programación Code Golf da como resultado un software minimalista, [26] pero estos suelen ser ejercicios o poesía de código , no software de aplicaciones utilizables.

John Millar Carroll , en su libro Minimalism Beyond the Nürnberg Funnel señaló que el uso del minimalismo da como resultado dispositivos de "uso instantáneo" como videojuegos, cajeros automáticos , máquinas de votación y quioscos de centros comerciales con poca o ninguna curva de aprendizaje que no requieren que el usuario lea manuales. [27] Los investigadores de la interfaz de usuario han realizado experimentos que sugieren que el minimalismo, como lo ilustran los principios de diseño de parsimonia y transparencia , refuerza la eficiencia y la capacidad de aprendizaje. [28] El minimalismo está implícito en las filosofías Unix de "todo es un flujo de texto" y "haz una cosa y hazla bien", aunque las distribuciones modernas de Unix/Linux no se adhieren tan rigurosamente a esta filosofía. [29]

Véase también

Referencias

  1. ^ Hagen, William von (13 de mayo de 2010). Biblia de Ubuntu Linux: incluye Ubuntu 10.04 LTS. John Wiley & Sons. ISBN 9780470881804.
  2. ^ "Cinco razones por las que Emacs siempre será mejor".
  3. ^ "Mis experiencias con Lisp y el desarrollo de GNU Emacs". ...Mi objetivo era hacer la implementación de Lisp más pequeña posible. El tamaño de los programas era una preocupación tremenda. Había gente en aquellos días, en 1985, que tenía máquinas de un megabyte sin memoria virtual. Querían poder usar GNU Emacs. Esto significaba que tenía que mantener el programa lo más pequeño posible. Por ejemplo, en ese momento la única construcción de bucle era while , que era extremadamente simple. No había forma de salir de la declaración 'while', solo había que hacer un catch y un throw, o probar una variable que ejecutara el bucle. Eso muestra hasta qué punto estaba presionando para mantener las cosas pequeñas. No teníamos 'caar' y 'cadr' y demás; "exprimir todo lo posible" fue el espíritu de GNU Emacs, el espíritu de Emacs Lisp, desde el principio.
  4. ^ "dwm - gestor de ventanas dinámico".
  5. ^ ne se ha escrito con el objetivo básico de ahorrar recursos. Se ha hecho todo lo posible para reducir el uso de tiempo de CPU y memoria, la cantidad de llamadas al sistema y la cantidad de caracteres enviados a la terminal. -- página de información de ne
  6. ^ Strickland, Jonathan (12 de febrero de 2009). "HowStuffWorks "Cuál es la diferencia entre portátiles, netbooks y ultraportátiles"". Computer.howstuffworks.com . Consultado el 8 de julio de 2013 .
  7. ^ "5 formas de mejorar la duración de la batería en tu aplicación".
  8. ^ "Google Chrome Cr-48, modelo de diseño minimalista". PC Magazine . 13 de diciembre de 2010.
  9. ^ Pilcher, Pat (13 de julio de 2009). "Batalla de navegadores: ¿quién domina la web?" . The Independent . Londres. Archivado desde el original el 15 de mayo de 2022.
  10. ^ Chang, Alexandra (21 de mayo de 2012). "Microsoft elimina la interfaz de usuario 'Aero Glass' en Windows 8 | Gadget Lab". Wired . Wired.com . Consultado el 8 de julio de 2013 .
  11. ^ McCracken, Harry (22 de mayo de 2012). "Windows Aero: Por qué me alegro de que haya muerto | TIME.com". Time . Techland.time.com . Consultado el 8 de julio de 2013 .
  12. ^ En 2009, las computadoras de escritorio representaban el 44% del mercado mundial y las portátiles el 56%. Tan solo tres años después, más del 61% de las PC vendidas son portátiles y la tendencia se está acelerando; esto es a nivel mundial, si se miden todas las PC con Windows vendidas. Entre los consumidores de Estados Unidos que comprarán una PC este año, más del 76% comprará portátiles; ¡la cantidad absoluta de todas las computadoras de escritorio vendidas en Estados Unidos será menor que la cantidad de tabletas en 2012!
  13. ^ "Por qué Jony Ive está eliminando el esceumorfismo en iOS 7". 10 de junio de 2013.
  14. ^ "Creación de un pequeño ejecutable Mach-O".
  15. ^ "Programación minimalista de Cocoa".
  16. ^ "Amigable con el medio ambiente". Archivado del original el 2 de febrero de 2014. Consultado el 31 de enero de 2014. Este sistema operativo está diseñado para funcionar en procesadores Pentium2 con 256 MB de RAM, ni siquiera se necesita un disco duro. Libera todo el potencial de los ordenadores incluso con un PC de segunda mano.
  17. ^ "El arte de la programación Unix". Un artículo de 1974 en Communications of the ACM dio a Unix su primera exposición pública. En ese artículo, sus autores describieron el diseño de Unix, de una sencillez sin precedentes, e informaron de más de 600 instalaciones de Unix. Todas ellas se realizaban en máquinas de potencia insuficiente incluso para los estándares de la época, pero (como escribieron Ritchie y Thompson) "la restricción ha fomentado no sólo la economía, sino también una cierta elegancia en el diseño".
  18. ^ "Construye tu propio Lisp".
  19. ^ Stuart, Tom (15 de mayo de 2013). Entendiendo la computación. "O'Reilly Media, Inc." ISBN 9781449330118.
  20. ^ "7 líneas de código, 3 minutos: Implementar un lenguaje de programación desde cero".
  21. ^ "La evolución de Lisp" (PDF) . El informe inicial sobre Scheme [Sussman, 1975b] describe un lenguaje muy sobrio, con un mínimo de construcciones primitivas, una por concepto. (¿Por qué utilizar dos cuando basta con una?)
  22. ^ "Scheme-faq-general". Scheme es un dialecto de Lisp que enfatiza la elegancia conceptual y la simplicidad.
  23. ^ Biancuzzi, Federico; Chromatic (21 de marzo de 2009). Masterminds of Programming: Conversaciones con los creadores de los principales lenguajes de programación. "O'Reilly Media, Inc." ISBN 9780596555504Forth es un lenguaje informático con una sintaxis mínima .
  24. ^ "Go". Go es un lenguaje de programación de código abierto que facilita la creación de software simple, confiable y eficiente.
  25. ^ "Entrevista con Ken Thompson" ...comenzamos con la idea de que los tres debíamos aprender a usar cada característica del lenguaje, de modo que no se añadiera basura extraña al lenguaje por ningún motivo.
  26. ^ "Wik Wiki Un Wiki en 1287 caracteres de PHP".
  27. ^ John Millar Carroll (1998). Minimalismo más allá del embudo de Núremberg. Cambridge, Mass.: MIT Press. ISBN 0-262-03249-X. Consultado el 21 de noviembre de 2007 .
  28. ^ Wren, C.; Reynolds, C. (2004). "Minimalismo en el diseño de interfaces ubicuas" (PDF) . Computación personal y ubicua . 8 (5). Springer: 370–373. doi :10.1007/s00779-004-0299-2. S2CID  14851897 . Consultado el 29 de julio de 2008 .
  29. ^ "Uzbl: herramientas de interfaz web que se adhieren a la filosofía Unix". La idea general es que, por defecto, Uzbl es muy básico.