Noticias / Notas de Prensa

SAS INSTITUTE ARGENTINA SA.
Alicia Moreau de Justo 550, 2º G
(C1107AAL) Ciudad Autónoma de Buenos Aires
Tel:(+54-11)-4878-4500
Fax: (+54-11)4878-4509
E-mail: informes@sas.com

Press Release

Versión para imprimir Versión para imprimir

Noticias

 

¿Por qué programación y para quiénes?  | SAS EDUCACIÓN ARGENTINA

Buenos Aires, Argentina  (11 May. 2011)  – Existe entre la mayoría de los usuarios de software, con distintos niveles de experiencia y diferentes roles, una considerable confusión respecto del tema de cuándo debieran recurrir a la programación y quiénes debieran hacerlo. En forma complementaria, existe también cierto grado de confusión respecto del papel y alcance de las interfases gráficas.

Un lenguaje de programación y la propia tarea de programar tienen muchas similitudes con el lenguaje natural (por ejemplo, el español) y su utilización. Esto no es sorprendente porque un lenguaje de programación es, al igual que el lenguaje natural, un instrumento de comunicación, el segundo con nuestros congéneres y el primero con un sistema artificial (cada vez más "inteligente"). Por ello, es útil responder las preguntas del título desde el punto de vista de la comunicación en general.

El lenguaje natural como instrumento de comunicación tiene características peculiares. Para que funcione apropiadamente debe ser muy flexible (gran vocabulario a nivel de palabras y otras unidades, y una gran posibilidad combinatoria) porque debe poder usarse para hacer referencia a las más variadas situaciones (reales e imaginarias). Sin embargo, los usos del lenguaje natural están sometidos a varias leyes conocidas, entre ellas la de la proporción 20/80 atribuida a Pareto. En un 20% de los usos necesitamos una considerable flexibilidad y potencia expresiva, pero en un 80% de los casos usamos el lenguaje para cosas que se expresan muy fácilmente y que son bastante predecibles.

Es para ese 80% de los casos que el lenguaje natural tiene "complementos paralingüísticos": gestos, expresiones faciales, comienzos de oraciones, sonidos, interjecciones, etc. Cuanto más cercano está un interlocutor (por ejemplo, al lado nuestro, versus en otro país) y cuanto más inmediata y concreta es la situación a la que queremos hacer referencia (por ejemplo, ¿dónde está la parada del bus 96?) más útiles son los elementos paralingüísticos (por ejemplo, señalar) y más ineficientes son los medios más explícitos y verbosos. Si la pregunta sobre la parada del bus la hiciese un turista, probablemente será útil además de una seña darle alguna explicación un poco más completa (menos paralingüística). Por supuesto, en el contexto de una novela o cuando detectamos que la pregunta por la parada está, por alguna razón, mal formulada (no hay un bus 96, no pasa en absoluto por la zona, etc.), recurriríamos para resolver la cuestión a una opción más verbosa, menos predecible y más potente expresivamente.

Una segunda característica muy importante del lenguaje natural que, por lo común, no suele advertirse, es la importancia en nuestra comunicación de la inferencia versus una comunicación explícita. Muchísimas veces no decimos exactamente lo que queremos significar sino, más bien, algo que calculamos que le permitirá a nuestro interlocutor inferir aquello que queremos decir. En esto se basan muchas expresiones y figuras retóricas (ironía, metáfora, metonimia, etc.). Por ejemplo, cuando saludamos con "buenas noches" a alguien que llega tarde a una reunión estamos induciendo en esa persona, mediante una ironía, la inferencia de un mensaje de no aprobación por nuestra parte de su llegada tarde, un mensaje que nunca explicitamos abiertamente, pero que nuestro interlocutor infiere con facilidad.

¿Cómo se manifiestan estas características en la comunicación con una computadora? Una interfase gráfica permite "comunicar" la intención del usuario con gestos paralingüísticos (señalar una opción, arrastrar un ícono, un clic del mouse, etc.) en relación con ubicaciones espaciales (íconos, barras, ventanas y otros sitios en la pantalla) y presenta opciones (íconos dentro de ventanas activas, "defaults" de procedimientos, por ejemplo) en función de una inferencia (en general bastante básica) de la intención del usuario.

La "bondad" de una interfase gráfica se basa en su capacidad para utilizar técnicas paralingüisticas e inferenciales para lograr que el usuario pueda especificar, de la manera más eficiente posible, ese 80% de las tareas que son fácilmente definibles de este modo. Pero, la cuestión es que el otro 20% requiere la utilización de recursos más expresivos (un lenguaje de programación).

El lenguaje SAS (en un sentido amplio) es sumamente expresivo: está compuesto por el lenguaje SAS base (un lenguaje de cuarta generación) y varios otros lenguajes "embebidos": AF (un lenguaje de componentes), SQL (un lenguaje de cuarta generación para la consulta de bases de datos), Perl (un lenguaje de tercera generación para la representación de expresiones regulares), SAS macro (un lenguaje de macro programación) e IML (un lenguaje de programación matricial). El lenguaje SAS ha sido un lenguaje muy estable durante casi treinta años, con nuevos agregados que acompañaron la evolución de SAS y sus tecnologías, pero, en esencia, su estructura siempre ha sido la misma.

Dos de las interfases más populares de SAS son Enterprise Guide, una interfase gráfica de generación de consultas, análisis estadísticos y programación, y Enterprise Miner, una interfase gráfica especializada en tareas de Data Mining. Ambas interfases generan código en lenguaje SAS (lo único que "entiende" un servidor SAS) en base a las selecciones gráficas del usuario. La potencia expresiva de ambas interfase es muy importante, pero de ningún modo es posible acceder a la totalidad de las capacidades del lenguaje SAS subyacente.

Figura 1 - Interfase de SAS enterprise Guide

Figura 1 - Interfase de SAS enterprise Guide

A un usuario inicial o "ingenuo" suele bastarle la interfase gráfica. Por lo general (aunque no siempre) este usuario se mueve dentro de ese 80% de las tareas que pueden definirse fácilmente con medios paralingüísticos. Sin embargo, un usuario avanzado que desea realmente optimizar el uso de sus herramientas y obtener resultados de reporting o modelización sofisticados, debe poder interpretar el código generado por la interfase (para usarlo como punto de partida de posibles mejoras), debe conocer a qué otras funcionalidades puede acceder recurriendo al agregado de sentencias u opciones en el código, debe conocer cómo acceder a los muy diversos resultados producidos durante un análisis estadístico o de data mining (además de los que se muestran en la ventana "Output"), o debe poder escribir programas que le permitan agregar funciones, algoritmos, técnicas de modelización o de evaluación nuevas y sofisticadas.

Figura 2 - Interfase de SAS Enterprise Miner.

Figura 2 - Interfase de SAS Enterprise Miner.

Algunos pocos ejemplos:

  • Buena parte del preprocesamiento en Enterprise Guide se hace mediante Proc SQL. Sin embargo, esta no es siempre la mejor opción. Por ejemplo, para la generación de varias tablas de salida a partir de una tabla de entrada, un Data Step puede ser más eficiente. Para esto se necesita conocimientos básicos de programación de Data Step.
  • La diferencia simétrica de tablas es mucho más engorrosa de definir mediante SQL que con un simple Data Step. Nuevamente se requiere un conocimiento básico de programación que sepa aprovechar algunas opciones de dataset y un filtro basado en valores faltantes.
  • Muchas opciones "adicionales" de un análisis o gráfico pueden agregarse muy simplemente accediendo al código generado por Enterprise Guide. Por ejemplo, para poder usar la opción Explode en un grafico de sectores, que permite destacar un sector en particular.
  • Con un conocimiento básico de programación SAS pueden agregarse nuevos nodos al Enterprise Miner, extendiendo así su capacidad "estándar" de modelización. Esto requiere generar un código básico y tener algunos conocimientos extra sobre cómo se estructura un nodo. Si desea algo más modesto, puede directamente incorporar el programa en un nodo de código.
  • Pueden agregarse técnicas de modelización adicionales al Enterprise Miner con un conocimiento básico del código SAS (por ejemplo, regresión con selección de un subconjunto óptimo de variables, procedimientos de SAS STAT, análisis de supervivencia y otros) introduciéndolas directamente en un nodo de código.
  • Formas sofisticadas de evaluación de modelos pueden agregarse en un proyecto del Enterprise Miner mediante un nodo de código y programas disponibles gratuitamente en la Web.


En síntesis, si usted desea ser un usuario avanzado de las herramientas SAS de las que dispone y obtener de ellas el máximo provecho, un conocimiento de programación en lenguaje SAS es fundamental. Si ya tiene experiencia en el uso de interfases gráficas de SAS como Enterprise Guide, Data Integration Studio o Enterprise Miner, puede hallar de utilidad los siguientes cursos:

Si aun no tiene experiencia con alguna interfase gráfica de SAS, la mayoría de los cursos introductorios sobre estas posee algunos temas que le permitirán introducirse mínimamente en la complementación de la interfase con la programación en SAS, por ejemplo:

Si desea aproximarse a la programación en SAS de un modo formal y sistemático, en cambio, considere la carrera de especialización en programación.

Acerca de SAS

SAS es una empresa líder en soluciones y servicios de Business Analytics y el mayor proveedor independiente de Business Intelligence del mercado. Con innovadoras aplicaciones, apoyadas por una plataforma de inteligencia empresarial, SAS ayuda a que 45,000 sitios mejoren su desempeño y brinden valor para tomar decisiones de negocio más acertadas con mayor velocidad. Desde 1976, SAS otorga a sus clientes alrededor del mundo THE POWER TO KNOW®.

Más Notas

Copyright © SAS Institute Inc. All Rights Reserved.

Contacto Editorial:

  • SAS Argentina | Educación

    Argentina: José Alvarez
    e-mail: jose.alvarez@sas.com
    Tel.: (54-11) 4878-4500