Imagen de avatar anacareaga
Ana Lilia Careaga

Paradigmas de la Programación: JavaScript y Python

Ana Lilia Careaga Mercadillo, Agosto 2010
Abstract
The word paradigm refers to a dynamic field or “world” of concepts —such that it represents a union between intelligent inquiry and some particular kind of world view. The term has been used in linguistics and science to describe distinct concepts. It comes from Greek”παράδειγμα” (paradeigma), that means “pattern, example, sample” From the 1960s onward, the word has referred to thought pattern in any Scientific discipline or other epistemological context. The historian of science Thomas Kuhn gave paradigm its contemporary meaning when he adopted the word to refer to the set of practices that define a scientific discipline at any particular period of time and defines it in his book “ The Structure od Scientific Revolutions” as “what is to be observed and scrutinized “ and “the kind of questions that are supposed to be asked and probed for answers in relation to this subject “.A programming paradigm is a fundamental style of computer programming. Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) and the steps that compose a computation (assignment, evaluation, continuations, data flows, etc.). A programming language can support multiple paradigms. A multi-paradigm programming language is a programming language that supports more than one programming paradigm, as Python and JavaScript.In this article I will describe the concept of programming paradigms and will give a short description of JavaScript and Python.

————————————————————————————————————-
Introducción

Hace cincuenta años hubiera resultado extraño usar la palabra paradigma. Si en ese tiempo se le hubiera pedido a un profesional una definición de ello, muy difícilmente hubiera dado una respuesta satisfactoria. Por el contrario en estos tiempos es común hablar de paradigmas; sin embargo, aun presenta muchas confusiones. La palabra paradigma procede del griego paradeigma, que significa “ejemplo” o “modelo”. En principio, se aplicaba a la gramática (para definir su uso en un cierto contexto) y a la retórica (para referirse a una parábola o fábula). A partir de la década de los ’60tas, comenzó a utilizarse para definir a un modelo o patrón en cualquier disciplina científica o contexto epistemológico.
Thomas S. Kuhn (1962) en su libro “La Estructura de las Revoluciones Científicas”, considera que el paradigma es un ejemplo o un esquema básico de interpretación de la realidad, que ha sido verificado por un proceso de investigación científica, es decir aplicando leyes, teorías, modelos, métodos y técnicas; aplicando e instrumentando; y además, sobre la base de este ejemplo se proporcionan modelos científicos. Si un investigador comparte un paradigma con otro es obvio que ambos estarán regidos por los mismos patrones en la práctica científica. Por otra parte, Adam Smith en “Los Poderes de la Mente”, precisa que el paradigma es “un conjunto compartido de suposiciones.” De esta definición podemos desprender que un paradigma ayudará a crear una visión del futuro. Cuando estamos en medio de un paradigma, es difícil imaginar cualquier otro paradigma. Pero cuando un paradigma ya no puede satisfacer las necesidades de una ciencia (por ejemplo, ante nuevos descubrimientos que invalidan conocimientos previos), es sucedido por otro. Se dice entonces que hay un cambio de paradigma, el cual es algo dramático para las ciencias, ya que éstas aparecen como estables y maduras. Sabemos que la ciencia es analítica y especializada, es clara y precisa….verificable y comunicable. Todo conocimiento científico es sistemático y sobre todo, metódico. Sabemos que el método de la ciencia es el método científico el cual se basa en factores fundamentales como la objetividad. Por otro lado, un paradigma científico establece aquello que se debe observar; el tipo de interrogantes que hay que formular para hallar las respuestas en relación al objetivo; cómo deben estructurarse dichos interrogantes y cómo deben interpretarse los resultados de la investigación científica. ¿Entonces… cómo es que pueden existir estos cambios de paradigmas en la ciencia?
La verdad es que, desde mi punto de vista, en la actualidad, después de varios siglos bajo el imperio del método, hipnotizados aún por el discurso Moderno , estamos comenzando, – aunque todavía tímidamente – a sacudirnos el yugo de este hechizo metódico, a navegar en los mares de la incertidumbre y la creatividad. Pero el precio que tenemos que pagar para ello incluye la renuncia a la ilusión de un saber garantizado y absoluto. Esta no es una tarea sencilla, por el contrario requiere de la aceptación de nuestra finitud, de nuestra limitación, del poco alcance de nuestro conocer. Sin embargo, esa es la única forma de abrir las puertas a la invención, a la imaginación, al azar y a la diferencia. En nuestros días se acepta que han aparecido nuevos paradigmas como el de la Teoría de la Complejidad con sus ramificaciones de la Teoría del Caos y de los Fractales, el de la Termodinámica del No Equilibrio y el de la Mecánica Cuántica, ya que éstas han modificado sustancialmente el concepto de certeza científica como sinónimo de ajuste a la realidad. El mismo concepto de realidad comenzó a someterse a un más profundo escrutinio lingüístico y sobre todo filosófico. La indeterminación cuántica introducida por Heisenberg y la incertidumbre de la complejidad advertida por Lorenz, Poincaré y Prigogine avivó la disquisición filosófica sobre lo que se entiende por realidad y sobre su existencia o no . La filosofía positivista y sus vertientes como el instrumentalismo, el pragmatismo y el convencionalismo , sostienen o bien la no existencia de la realidad o la imposibilidad de su conocimiento. Los adherentes a esta forma de pensar consideran que las teorías científicas sólo constituyen hipótesis de trabajo que se utilizan como herramientas para la investigación mientras no presenten contradicciones o se muestren inoperantes. Puede decirse que ambos paradigmas cambiaron el pensamiento científico haciéndolo mas cauteloso y también, ¿porqué no?, menos arrogante.
Renunciar a la idea de un método único que nos conduzca siempre a la verdad y que la garantice no implica de ninguna manera que estamos dispuestos a desistir de la utilización de instrumentos o dispositivos, técnicas y procedimientos. Sólo implica que no antepondremos el método a la experiencia, que no creemos que haya un solo camino o un solo dispositivo adecuado para pensar, explorar, inventar…conocer. Sólo estamos ampliando nuestras posibilidades…

En el contexto de los paradigmas de programación, se establece que existen diferentes formas y estilos de programar que representan un enfoque particular o filosofía para la construcción del software. No es mejor un lenguaje de programación que otro sino que cada uno tiene sus ventajas y sus inconvenientes. A continuación expondré los paradigmas más importantes de la programación, haciendo un énfasis particular en dos lenguajes de programación: Javascript y Python.

————————————————————————————————————–
Paradigmas de la Programación
Edward Sapir , antropólogo y lingüista americano define al lenguaje como “un método exclusivamente humano, y no instintivo, de comunicar ideas, emociones y deseos por medio de un sistema de símbolos producidos de manera deliberada”.Un lenguaje formal no sólo consta de “palabras”, sino también de su pronunciación y los métodos para combinar las palabras en frases y oraciones. Las combinaciones posibles deben respetar un conjunto de reglas sintácticas establecidas, a lo que se le denomina Sintaxis y además deben tener determinado sentido para poder ser comprendidas por un grupo humano en un contexto dado, es decir, deben tener Semántica.
Los lenguajes de programación son lenguajes formales porque poseen un conjunto de reglas (sintácticas y semánticas), notaciones, símbolos y/o caracteres que permiten a un programador poder expresar el procesamiento de datos y sus estructuras en una computadora. Mediante los lenguajes de programación, el ser humano puede comunicarse con una computadora y decirle qué es lo que tiene que hacer y, al mismo tiempo, sirven para comunicarse con otros seres humanos y expresarles qué es lo que se quiere que haga una computadora.
En el contexto de las ciencias de la computación, los paradigmas de programación fue aplicado por primera vez por Robert Floyd (eminente científico de las Ciencias de la Computación, reconocido por haber desarrollado el algoritmo gráfico que lleva su nombre) en coautoría con Richard Beigel en donde se definió el concepto de Paradigma de Programación como un proceso de diseño que va más allá de una gramática, semántica y algoritmos, sino que es un conjunto de métodos sistemáticos aplicables en todos los niveles de diseño de programas.
Actualmente existen una gran variedad de paradigmas de programación, pero una clasificación general podría ser la siguiente :

FUENTE: Zárate Rea , Héctor: “Paradigmas de la Programación”
La Programación Declarativa está basada en el desarrollo de programas especificando o “declarando” un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla, por ejemplo Prolog y Lisp.
La Programación Imperativa es la más común y más conocida. Los programas imperativos son un conjunto de instrucciones que le indican a la computadora cómo realizar una tarea .Está representada por C, Basic, Fortran, etc
La Programación Funcional es la que emplea un lenguaje matemáticamente elegante, empleando principalmente funciones aritméticas y pertenece también al grupo de lenguajes declarativos; algunos ejemplos son Haskell, Miranda y Scheme.
La Programación Lógica permite formalizar hechos del mundo real y forma parte de los programas declarativos. El lenguaje lógico por excelencia es Prolog, que a la vez es declarativo.
La Programación Orientada a Objetos intenta simular el mundo real a través del significado de objetos que contiene características y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generación y forman parte de la programación imperativa. Se basa en la idea de un objeto, que es una combinación de variables locales y procedimientos llamados métodos que juntos conforman una entidad de programación. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos. Ejemplos de estos lenguajes son C++, Java, Smalltalk, Ruby on Rails, Python y JavaScript, entre muchos otros .A continuación haré una descripción breve de los dos últimos.
JavaScript

JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas Web dinámicas. Una página Web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario; a diferencia de las páginas estáticas en donde el puro lenguaje HTML sólo puede mostrar textos con estilos pero es incapaz de ofrecer interactividad.
Técnicamente, JavaScript es un lenguaje de programación interpretado , multiplataforma, orientado a eventos o scripts , es decir, estrictamente no se considera que está orientado a objetos pero tiene la capacidad de manejarlos. Su código se incluye directamente en el mismo documento usado para el desarrollo de aplicaciones cliente-servidor en paginas HTML, por lo que no es necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios.
A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de programación Java , pero ambas son marcas legalmente registradas de la empresa Sun Microsystems. Asimismo, es importante hacer diferencia con JScript que es la versión similar que lanzó Microsoft para competir.
JavaScript es simple, no hace falta tener amplios conocimientos de programación. Como se mencionó, estrictamente no es un lenguaje orientado a objetos (solo maneja scripts), ya que carece de los conceptos como herencia y métodos que tienen lenguajes como C++ y Java, pero es posible definir un objeto dentro de la página Web y sobre ese objeto definir a su vez diferentes eventos que producirán la aplicación o salida deseada ofreciendo la posibilidad de crear aplicaciones “on-.line” o modificar páginas Web en tiempo real, por ejemplo, cambiar el aspecto de la página Web . Otras aplicaciones comunes son responder a eventos locales al dar clic con el mouse, realización de cálculos y validación de formularios dentro de la página, personalización, contadores de visitas página Web e inclusión de relojes y calendarios. Actualmente, todos los navegadores incluyen JavaScript y es uno de los lenguajes más populares para la Web.
Con el surgimiento de lenguajes como PHP (Hypertext Pre-processor) del lado del servidor y JavaScript del lado del cliente, surgió AJAX (Asynchronous JavaScript And XML) que combina varias tecnologías para crear aplicaciones Web interactivas. JavaScript es considerado por muchos desarrolladores Web como la fundación para la próxima generación de aplicaciones Web dinámicas del lado del cliente.
Python

Ahora quiero presentarles un lenguaje de programación de propósito general, cuya expansión y popularidad es relativamente reciente. Se trata de Python, una apuesta por la simplicidad, versatilidad y rapidez de desarrollo.
Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis limpia que favorezca un código legible. Es un lenguaje de programación multiparadigma ya que soporta no sólo orientación a objetos sino programación imperativa y funcional Es un lenguaje interpretado porque no requiere de compilador y además es multiplataforma (corre en plataformas UNIX, GNU/Linux, Mac, Windows). Posee licencia de código abierto y es compatible con la licencia pública general de GNU. Fue desarrollado a finales de los años ochenta por Guido van Rossum en los Países Bajos y su nombre proviene de su afición por los humoristas británicos, creadores también de Spamalot, llamados Monty Python.
Python posee una sintaxis realmente curiosa que emplea tabuladores para marcar bloques de código, destaca por la claridad y legibilidad de sus programas. Dispone de una estructura minimalista, ya que todo el lenguaje está desarrollado a partir de unos componentes básicos, los cuales también pueden ser modificados.
En conclusión, Python es un lenguaje en franco proceso de popularización que ya destaca por la amplia biblioteca de módulos y scripts que pueden ser libremente descargados.

————————————————————————————————————
CONCLUSIONES

Ahora sabemos que las coordenadas cartesianas nos permiten ubicar dos puntos cualesquiera en el globo terráqueo y unirlos con una línea. Pero esto no implica de ninguna manera que sea posible llegar desde uno al otro caminado rectamente. La simplicidad de los mapas no es correlativa a la del territorio: es una abstracción geométrica que descarta el relieve concreto, el clima y sus vaivenes, los predadores y sus afanes, los pantanos, las bifurcaciones y sus acechanzas. Desde luego, tampoco es posible “unir esos puntos” en una trayectoria completamente lineal con un avión u otro medio de transporte pues ellos no circulan por el espacio abstracto, isótropo y homogéneo de la física clásica, sino por un medio híbrido, irregular y cambiante; ya se trate de las irregularidades terrestres, las corrientes marinas o las burbujas de aire.
Es preciso saltar las alambradas conceptuales creadas por las disciplinas modernas – regidas por la pretensión metódica – y abrir un espacio de pensamiento multidimensional capaz de producir sentidos ricos y fértiles, pero no garantizados ni absolutos.
—- En la programación, es necesario abrirnos a diferentes paradigmas, aceptar sus cambios que los definen y abrirnos a la invención, a la imaginación y a la creatividad ilimitadas.

Tags: ,

25 respuetas para “Paradigmas de la Programación: JavaScript y Python”

  1. […] This post was mentioned on Twitter by Juan J Carreon G, Juan Carreón and lee fernan, Ingenet. Ingenet said: Paradigmas de la Programación: JavaScript y Python http://bit.ly/91lGf8 Escribe Ana Lilia Careaga en su blog de Ingenet. […]

  2. Beneficial info and excellent design you got here! I want to thank you for sharing your ideas and putting the time into the stuff you publish! Great work!

  3. My cousin recommended this blog and she was totally right keep up the fantastic work!

  4. Kerry Phann dice:

    You certainly deserve a round of applause for your post and more specifically, your blog in general. Very high quality material

  5. Joe Williams dice:

    Your website constantly makes me think, I have just bookmarked it!

  6. Joe Johnson dice:

    What a fantastic read, I am ready for more…

  7. How you have highlighted hidden information makes it that easy to digest.

  8. I was searching forever to have answer to it topic and boom – your blog is right there with a solution.

  9. tablet pcs dice:

    I was pleased lake stumbled on your internet-site, and I hope becoming a regular follower.

  10. Not only will be the content of the internet site tremendous, but everyone also has a lovely style.

  11. The following post is sharable, I’ve even bookmarked it plus a few other of this posts.

  12. I keep on studying what you must say because an individual write powerful words this individual.

  13. I relish reading posts that produce individuals think. You’ve accomplished this my mate.

  14. Bloggers now are online to spread incorrect rumors moreso than in the past, and I feel it’s unfair.

  15. Your site has hundreds of quality and well crafted content – it’s good to work out that.

  16. […] Paradigmas de la Programación: JavaScript y Python […]

  17. Jacki dice:

    What a joy to find such clear thkninig. Thanks for posting!

  18. Hi, i feel i identified you visited my own web site for that reason i came to ?come back the like ? web design in birmigham

  19. Obtain much from your contemplating,and i also favored your current report!

  20. Great carefully thread available. My partner and i rarely at any time enable any daytime shut withouth acquiring lately unveiled information out of this source web site.

  21. Lora Rohloff dice:

    We saved that will to be able to my favorite functions internet site listing and are examining once again in a short time.

  22. Outstanding weblog internet site the following! Also internet site really a little way up quite rapidly!

  23. Such a fantastic internet site! Fantastic. Thanks! Betty

  24. jordan retro dice:

    What’s up to all, the YouTube record that Paradigmas de la Programación: JavaScript y Python « anacareaga is posted at at this place has actually pleasant quality beside with good audio quality

  25. I wonder how a lot try you set to produce a actual impressive beneficial internet internet site.

Deja un comentario