Articulo de referencia

DWIM

Los sistemas informáticos DWIM ( haz lo que quiero decir ) intentan anticipar lo que los usuarios pretenden hacer, corrigiendo automáticamente los errores triviales en lugar de ...

Los sistemas informáticos DWIM ( haz lo que quiero decir ) intentan anticipar lo que los usuarios pretenden hacer, corrigiendo automáticamente los errores triviales en lugar de ejecutar ciegamente la entrada explícita, pero potencialmente incorrecta, de los usuarios.

Software

El término fue acuñado por Warren Teitelman en su paquete DWIM para BBN Lisp , parte de su sistema PILOT, en algún momento antes de 1966. [ 1 ] [ 2 ] [ 3 ]

InterLisp

El paquete DWIM de Teitelman "corrigía errores automáticamente o con una mínima intervención del usuario", [ 2 ] de manera similar a la autocorrección del lenguaje natural.

Teitelman y su colega de Xerox PARC, Larry Masinter, describieron posteriormente la filosofía de DWIM en el entorno de programación Interlisp (el sucesor de BBN Lisp):

Aunque la mayoría de los usuarios consideran DWIM como un único paquete identificable, este encarna una filosofía generalizada de diseño de interfaz de usuario: a nivel de interfaz, las funciones del sistema deben realizar interpretaciones razonables ante entradas no reconocidas. ...El estilo de interfaz utilizado en Interlisp permite al usuario omitir diversos parámetros y que estos adquieran valores predeterminados razonables...

DWIM es una materialización de la idea de que el usuario interactúa con un agente que intenta interpretar su solicitud a partir de información contextual. Dado que queremos que el usuario sienta que está conversando con el sistema, no se le debe interrumpir ni obligar a corregirse o proporcionar información adicional en situaciones donde la corrección o la información sean obvias. [ 4 ]

Los críticos de DWIM afirmaron que estaba "ajustado a los errores de escritura particulares a los que Teitelman era propenso, y a ningún otro" y lo llamaron "Haz lo que Teitelman quiere decir" o "Haz lo que Interlisp quiere decir" [ 5 ] o incluso afirmaron que DWIM significaba "Maldita sea la máquina infernal de Warren". [ 6 ]

Emacs

El concepto de DWIM se ha adoptado de forma ampliada en el contexto del editor de texto GNU Emacs para describir la filosofía de diseño de las funciones o comandos de Emacs Lisp que intentan " hacer lo correcto " de forma inteligente según el contexto. [ 7 ] La wiki de Emacs da el ejemplo de un comando de copia de archivos que puede deducir la ruta de destino a partir de una configuración de ventana dividida que contiene dos búferes dired , uno de los cuales muestra la ruta de origen; este comportamiento también se generaliza a muchas acciones dired aplicables que toman dos rutas de directorio como argumentos.

El comportamiento DWIM, cuando está disponible, suele mencionarse en el nombre de un comando; por ejemplo, GNU Emacs tiene una comment-dwimfunción que comenta una región seleccionada si no está comentada, o la descomenta si ya está comentada, utilizando caracteres de comentario y una indentación apropiados para el entorno del lenguaje de programación y el contexto actual. [ 8 ] [ 9 ]

Este tipo de DWIM a menudo no se preocupa directamente por corregir el error del usuario, sino más bien por adivinar la intención del usuario a partir del contexto disponible. Por ejemplo, el paquete Magit de Emacs muestra esta filosofía de diseño de forma generalizada. Entre sus numerosos comandos diff , hay un magit-diff-dwimcomando que no requiere ninguna otra entrada del usuario, sino que simplemente adivina lo que el usuario quiere analizar basándose en la ubicación del cursor . El manual de usuario de Magit describe el comportamiento de magit-diff-dwimsimplemente: " Muestra los cambios para el elemento en el punto ", [ 10 ] "punto" es el término de Emacs para el cursor de texto (no el puntero del ratón).

Véase también

Referencias

  1. Warren Teitelman, "PILOT: Un paso hacia la simbiosis hombre-computadora",Tesis doctoral del MIT , Proyecto MAC MAC-TR-32, septiembre de 1966. DTIC AD0638446 Archivado el 18 de abril de 2012 en Wayback Machine PDF , pág. 51
  2. 1 2 Warren Teitelman, "Hacia un laboratorio de programación", en JN Buxton y Brian Randell , Software Engineering Techniques , abril de 1970, informe de una conferencia patrocinada por el Comité Científico de la OTAN, Roma, Italia, 27-31 de octubre de 1969, pág. 108 y ss .
  3. Donald E. Walker, Lewis M. Norton (Eds.): Actas de la 1.ª Conferencia Internacional Conjunta sobre Inteligencia Artificial, Washington, DC, pág. 715, mayo de 1969.
  4. Warren Teitelman, Larry Masinter, "El entorno de programación Interlisp", Computer (IEEE) 14 :4:25-33, abril de 1981. doi : 10.1109/CM.1981.220410 pdf
  5. Guy L. Steele Jr., Richard P. Gabriel, "La evolución de Lisp", en Historia de los lenguajes de programación---II , 1996, ISBN 0-201-89502-1doi : 10.1145/234286.1057818 , pág. 16.pdf
  6. "DWIM" .
  7. "Haz lo que quiero decir" .
  8. "Consejos para comentarios" . En general, el comando M-; (comment-dwim) inicia automáticamente un comentario del tipo apropiado; o aplica sangría a un comentario existente en el lugar correcto, según la cantidad de puntos y comas.
  9. "Comandos de comentarios" . El comando para crear o alinear un comentario es M-; (comentario-dwim). La palabra "dwim" es un acrónimo de "Haz lo que quiero decir"; indica que este comando se puede usar para diversas tareas relacionadas con los comentarios, según la situación.
  10. «Manual de usuario de Magit: 5.4 Diferenciación» .

Lecturas adicionales

  • Warren Teitelman, "Programación automatizada [sic] : el asistente del programador", en Actas de la FJCC , 1972 doi : 10.1145/1480083.1480119
Obtenido de " https://en.wikipedia.org/w/index.php?title=DWIM&oldid=1345195333 "