stringtranslate.com

La dicotomía de Ousterhout

La dicotomía de Ousterhout es la categorización del científico informático John Ousterhout [1] de que los lenguajes de programación de alto nivel tienden a dividirse en dos grupos, cada uno con propiedades y usos distintos: lenguajes de programación de sistemas y lenguajes de scripting : compare la programación a gran escala y la programación a pequeña escala .

Los lenguajes de programación de sistemas (o lenguajes de aplicaciones ) suelen tener las siguientes propiedades:

Los lenguajes de programación de sistemas suelen utilizarse para componentes y aplicaciones con grandes cantidades de funcionalidad interna, como sistemas operativos, servidores de bases de datos y navegadores web. Estas aplicaciones suelen emplear algoritmos y estructuras de datos complejos y requieren un alto rendimiento. Algunos ejemplos prototípicos de lenguajes de programación de sistemas son C , OCaml y Modula-2 .

Por el contrario, los lenguajes de script (o lenguajes de pegamento ) tienden a tener las siguientes propiedades:

Los lenguajes de script tienden a usarse para aplicaciones donde la mayor parte de la funcionalidad proviene de otros programas (a menudo implementados en lenguajes de programación de sistemas); los scripts se utilizan para unir otros programas o agregar capas adicionales de funcionalidad sobre programas existentes. Ousterhout afirma que los scripts tienden a ser cortos y a menudo son escritos por programadores menos sofisticados, por lo que la eficiencia de ejecución es menos importante que la simplicidad y la facilidad de interacción con otros programas. Las aplicaciones comunes para scripts incluyen generación de páginas web, generación de informes, interfaces gráficas de usuario y administración de sistemas. Los ejemplos prototípicos de lenguajes de scripts incluyen Python , AppleScript , C shell , archivos por lotes de DOS y Tcl .

La dicotomía de Ousterhout subyace al diseño de su lenguaje Tcl .

Historia

La dicotomía fue completamente expuesta en Ousterhout (1998) , aunque Ousterhout había establecido esta distinción al menos desde el diseño de Tcl (1988), y la había declarado públicamente en varias ocasiones. Un episodio temprano fue "La guerra de Tcl" de finales de septiembre y octubre de 1994, donde Richard Stallman publicó un artículo crítico de Tcl, titulado "Por qué no debería usar Tcl", [2] al que Ousterhout respondió con una articulación de su dicotomía: [3]

Creo que las objeciones de Stallman a Tcl pueden deberse en gran medida a un aspecto del diseño de Tcl que no entiende o con el que no está de acuerdo. Se trata de la propuesta de que se deben utilizar *dos* lenguajes para un gran sistema de software: uno, como C o C++, para manipular las complejas estructuras de datos internas donde el rendimiento es clave, y otro, como Tcl, para escribir scripts pequeños que unan las piezas de C y se utilicen para extensiones.

Crítica

Los críticos creen que la dicotomía es altamente arbitraria y se refieren a ella como la falacia de Ousterhout o la falsa dicotomía de Ousterhout . [4] Si bien se podría decir que la tipificación estática versus dinámica, la complejidad de la estructura de datos y la dependencia versus la autonomía son características no relacionadas, la crítica habitual de la dicotomía de Ousterhout es su distinción entre compilación e interpretación. Ni la semántica ni la sintaxis dependen significativamente de si una implementación de lenguaje compila en lenguaje de máquina, interpreta, tokeniza o compila bytes al comienzo de cada ejecución, o cualquier combinación de estos. Además, básicamente ningún lenguaje de uso generalizado se interpreta puramente sin un compilador; esto hace que la compilación versus la interpretación sea un parámetro dudoso en una taxonomía de lenguajes de programación. [5]

Referencias

  1. ^ Ousterhout, John (marzo de 1998). "Scripting: Higher Level Programming for the 21st Century" (PDF) . Revista IEEE Computer . Consultado el 27 de marzo de 2020 .
  2. ^ Stallman, Richard (23 de septiembre de 1994). "Por qué no debería usar Tcl". Grupo de noticias : comp.lang.tcl. Usenet:  [email protected] . Consultado el 13 de septiembre de 2015 .
  3. ^ Ousterhout, John (26 de septiembre de 1994). "Re: Por qué no deberías usar Tcl". Grupo de noticias : comp.lang.tcl. Usenet:  [email protected] . Consultado el 13 de septiembre de 2015 .
  4. ^ Stuart Halloway. La dicotomía de Osterhout no lo es. Archivado desde el original el 17 de enero de 2018.
  5. ^ Este artículo se basa en material tomado de la dicotomía de Ousterhout en el Diccionario gratuito en línea de informática antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" del GFDL , versión 1.3 o posterior.

Lectura adicional

Enlaces externos