Me tocó vivir el boom de la computación personal cuando me encontraba cursando la licenciatura (más o menos después del 4to semestre, por allá de 1987 ó 1988). En aquel entonces uno de los debates que solíamos tener era sobre si DBase II era un lenguaje de programación o un sistema manejador de bases de datos (que algunos de mis profesores nos señalaban era simplemente un «administrador de archivos», no un «administrador de bases de datos»). Este tipo de inquietudes se repetirían después con otros productos, como SQL/DS, AutoCAD, FoxPro, Clipper, y mucho más. Productos que en el mundo de las PC comenzaban a ser relacionadas con el concepto de «paquete» y «suite«. Muchos paquetes o suites de aplicaciones llegan a incluir un lenguaje de uso interno para una explotación más «programática» (o automatizable) y flexible a las cualidades y funcionalidades que el producto ofrece (más allá de la interfaz para el usuario final).
Dado que en un inicio el lenguaje que se crea para estos productos no se espera trascienda más allá de los límites funcionales del producto, no se le suele dar un nombre explícito a éste. Así, es nombrado o referenciado con el producto en el que nace. Las confusiones al respecto de la referencia al lenguaje surgen cuando, ante el éxito del producto, surgen otros productos que buscan aprovechar (a través del lenguaje de programación) parte del mercado que el producto llega a crear o cuando se busca gente que sepa explotar las capacidades «programáticas» del producto (por ejemplo, en avisos de empleos era común leer «que sepa programar en DBase II«).
Aunque no es enteramente lo mismo en el caso de AWK, una confusión similar ocurre con este lenguaje. Para muchos AWK, es «un filtro» (como se han llegado a conocer los utilerías de Unix que permiten separar, segmentar o filtrar datos) o simplemente un comando (por ser invocado el intérprete de éste por medio del comando awk
) que es el que permite ejecutar un script AWK.
Primero, debe entenderse que los autores de AWK, debieron crear un intérprete para su procesamiento y que no es de extrañarse que éste fuera creado con este mismo nombre. Lo mismo que ha ocurrido con Java, por ejemplo, donde la invocación del intérprete bytecode se hace con este palabra, java
. Así, es necesario hacer la distinción entre escribir AWK y awk
; en mayúsculas nos referimos al lenguaje de programación, en minúsculas al intérprete de éste.
Segundo, creo que debe notarse también que en este caso hablamos de un lenguaje creado ex profeso para una labor y un paradigma de programación, diferente al caso de los productos que he mencionado al inicio de esta entrada, donde se crea el producto para una función específica y posteriormente se agrega la capacidad de programación.