Anda di halaman 1dari 39

Una de las preguntas ms frecuentes en los foros para principiantes es Cmo iniciarse en programacin? o Qu lenguaje de programacin aprender primero?.

En esta presentacin se intentara hacer una exposicin de los diferentes lenguajes que a lo mejor no responda a estas preguntas, ya que siempre habrn otros que tendrn opiniones diferentes. Para intentar ser objetivo, se han tomado opiniones sobre este tema de algunos de los foros de programacin.

Para comenzar, no existe un lenguaje de programacin para iniciarse en programacin, la programacin se comienza sobre un papel, haciendo algoritmos. Claro que para ver si los algoritmos funcionan puede ser ms cmodo utilizar un lenguaje de programacin. En este caso lo nico que se recomienda es utilizar un lenguaje simple que no sea orientado a objetos, ni grfico. Una buena eleccin puede ser Basic, Pascal, Python y sobretodo la sintaxis de estos ltimos ser de mayor utilidad ms adelante. Pero no se debera excluir ningn lenguaje ya que incluso el lenguaje de una calculadora puede ser suficiente para probar algoritmos simples. Tambin, es bueno tener una idea de los tipos de lenguaje, de lo que es un compilador y otras cosas generales. (http://es.kioskea.net/langages/langages.php3).

Puede que estas alturas, algunos ya tengan algunas bases para comenzar a programaralgo ms, no hay que programar por programar, hay que tener un objetivo, una idea, la necesidad de crear un programa. Aqu en este punto, como deca un profesor mo Nadie ensea a nadie, esto est en funcin de los gustos o necesidades de cada quien, de los conocimientos y algunas habilidades innatas,..mas sin embargo se debern tomar las primeras decisiones tcnicas: Lenguaje orientado a objetos? Multiplataforma? Con mquina virtual? Interfaz usuario? Acceso a una base de datos? Si es as, cul?

Una vez que se hayan respondido a las anteriores interrogantes, el nmero de lenguajes de programacin ser ms reducido.

A continuacin y luego de una breve resea histrica, se veran los lenguajes de programacin que mayormente son recomendados para iniciarse en programacin, teniendo en cuenta el punto de vista del aprendizaje. Nota: existe tambin un medio muy ldico para descubrir la programacin: KPL. KPL significa Kid's Programming Language (la pgina web: http://phrogram.com/kpl.aspx).

Interfaz impecable (colores, sonido, grafismo) y un aprendizaje de la programacin orientada a la concepcin de juegos. La idea es: aprender divirtindose. Si realmente no sabes nada de nada en informtica ni programacin, ste puede ser la puerta de entrada. Del mismo modo, ste es un medio para que aprendan los nios. Este programa es un freeware y no est limitado a los juegos, y por supuesto, la pgina es multilenguaje (ingls, portugus, francs y algunas lenguas nrdicas), al igual que el programa. En cuanto al lenguaje, ste utiliza los trminos comnmente empleados en otros lenguajes: Begin, End, Main, False, True, etc.

- Es una notacin para escribir programas, a travs de los cuales podemos comunicarnos con el hardware y dar as las rdenes adecuadas para la realizacin de un determinado proceso.

- Conjunto de normas lingsticas (palabras y smbolos) que permiten escribir un programa y que ste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas .
- Conjunto de instrucciones, ordenes y smbolos reconocibles por un autmata, a travs de su unidad de programacin, que le permite ejecutar la secuencia de control deseada. - Es un conjunto de palabras y smbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los lenguajes de programacin deben tener instrucciones que pertenecen a las categoras ya familiares de entrada/salida, calculo/manipulacin, de textos, lgica/comparacin, y almacenamiento/recuperacin.

Lenguaje de programacin Un lenguaje de programacin" es un lenguaje diseado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programacin es un modo prctico para que los seres humanos puedan dar instrucciones a un equipo. Por otro lado, el trmino "lenguaje natural" define un medio de comunicacin compartido por un grupo de personas (por ejemplo: ingls o francs). Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programacin; se los conoce como protocolos de comunicacin. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programacin es muy estricto: A cada instruccin le corresponde UNA accin de procesador.

Charles Babagge (1791 - 1871).

Ada Augusta Byron King (1815 - 1852)

Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge, la cual se le ocurri a este hombre a mediados del siglo XIX. Era un profesor matemtico de la universidad de Cambridge e inventor ingles, que la principio del siglo XIX predijo muchas de las teoras en que se basan los actuales ordenadores. Consista en lo que l denominaba la maquina analtica, pero que por motivos tcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro Ada Lovelace (Ada Augusta Byron King), la cual es considerada como la primera programadora de la historia, pues realizo programas para aqulla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programacin, sobre todo si observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia de la que se hallaban dotados.

La ENIAC fue construida en la Universidad de Pennsylvania por John Presper Eckert y John William Mauchly, ocupaba una superficie de 167 m y operaba con un total de 17.468 vlvulas electrnicas o tubos de vaco. El ENIAC naci en 1943, aunque no se termin de construir hasta 1946.

Cuando surgi el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programacin se basaba en componentes fsicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que s hacia era cambiar cables de sitio para conseguir as la programacin de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas. Los primeros pasos de los lenguajes de programacin fueron los siguientes: 1946: Konrad Zuse, desarroll el lenguaje Plankalkul, el cual, fue aplicado entre otras cosas para jugar al ajedrez. 1949: Aparece Short Code, que viene a ser el primer lenguaje que fue usado en un dispositivo de cmputo electrnico, aunque se debe decir que se trata de un lenguaje traducido a mano. 1951: Grace Hopper, trabajando para Remington Rand, comenz el trabajo de diseo del primer compilador conocido ampliamente, el A-0, el cual, al ser liberado por la compaa en 1957, lo hizo con el nombre de MATH-MATIC. 1952: Alick E. Glennie, durante su tiempo libre en la Universidad de Manchester, concibe un sistema de programacin llamado AUTOCODE, que viene a ser un compilador muy rudimentario. 1957: aparece FORTRAN (FORmula TRANslating) sistema traductor de frmulas matemticas. Fue desarrollado por un equipo, al frente del cual se encontraba John Backus.

El lenguaje mquina de una computadora consta de cadenas de nmeros binarios (ceros y unos) y es el nico que entienden directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos partes. La primera es el comando u operacin, que dice a la computadora cul es la funcin que va a realizar. Todas las computadoras tienen un cdigo de operacin para cada una de sus funciones. La segunda parte de la instruccin es el operando, que indica a la computadora dnde hallar o almacenar los datos y otras instrucciones que se van a manipular. Segn los estndares actuales, las primeras computadoras eran poco tolerantes. Los programadores tenan que traducir las instrucciones de manera directa a la forma de lenguaje de mquina que comprendan las computadoras. Por ejemplo, un programador que escribiera la instruccin SUMAR 0814 para una de las primeras mquinas IBM hubiera escrito: 000100000000000000000000000010111000 El lenguaje utilizado por el procesador se denomina lenguaje mquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios). El lenguaje mquina, por lo tanto, no es comprensible para los seres humanos, razn por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El cdigo escrito en este tipo de lenguaje se transforma en cdigo mquina para que el procesador pueda procesarlo.

Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la memoria de una computadora. Por ejemplo, un procesador x86 puede ejecutar la siguiente instruccin binaria como se expresa en cdigo maquina: Binario: 10110000 01100001 (Hexadecimal: 0xb061) La representacin equivalente en ensamblador es ms fcil de recordar: mov al, 061h Esta instruccin significa: Mueva el valor hexadecimal 61 (97 decimal) al registro "al".

A principios de la dcada de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron cdigos nemotcnicos para las operaciones y direcciones simblicas. La palabra nemotcnico se refiere a una ayuda para la memorizacin. Uno de los primeros pasos para mejorar el proceso de preparacin de programas fue sustituir los cdigos de operaciones numricos del lenguaje de mquina por smbolos alfabticos, que son los cdigos nemotcnicos. Todas las computadoras actuales tienen cdigos nemotcnicos aunque, naturalmente, los smbolos que se usan varan en las diferentes marcas y modelos. La computadora sigue utilizando el lenguaje de mquina para procesar los datos, pero los programas ensambladores traducen antes los smbolos de cdigo de operacin especificados a sus equivalentes en lenguaje de mquina. El ensamblador fue el primer lenguaje de programacin utilizado. Es muy similar al lenguaje mquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje mquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje mquina). As, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El trmino "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un cdigo ensamblador en otro tipo de equipo, a veces ser necesario volver a escribir todo el programa! Por lo tanto, un lenguaje de programacin tiene varias ventajas: es mucho ms fcil de comprender que un lenguaje mquina: permite mayor portabilidad, es decir que puede adaptarse fcilmente para ejecutarse en diferentes tipos de equipos.

Los primeros programas ensambladores producan slo una instruccin en lenguaje de mquina por cada instruccin del programa fuente. Para agilizar la codificacin, se desarrollaron programas ensambladores que podan producir una cantidad variable de instrucciones en lenguaje de mquina por cada instruccin del programa fuente. Dicho de otra manera, una sola macroinstruccin poda producir varias lneas de cdigo en lenguaje de mquina. Los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramacin cuando se adquiere equipo nuevo. Entre las ventajas de los lenguajes de alto nivel estan: - Son ms fciles de aprender que los lenguajes ensambladores. - Se pueden escribir ms rpidamente. - Permiten tener mejor documentacin. - Son ms fciles de mantener. - Un programador que sepa escribir programas en uno de estos lenguajes no est limitado a utilizar un solo tipo de mquina.

Lenguajes que por su uso y comercializacin, han resultado ser los ms populares desde 1957 al 2000

La existencia de tantos lenguajes obedece a que cada uno de ellos est encaminado a resolver ciertas tareas, dentro de la amplia problemtica de la explotacin de la informacin, o bien, a que su arquitectura, o su forma de llevar a cabo la programacin, tiene un enfoque particular.

Imperativos De acuerdo con el estilo de programacin Declarativos

Funcionales
Lgicos

Orientados a Objetos

Lenguajes Ensamblados De acuerdo con las herramientas usadas en el proceso de traduccin y ejecucin Lenguajes Compilados Lenguajes Interpretados Lenguajes Pre-procesados

Lenguajes de Cuarta Generacin Lenguajes Visuales Otros Conceptos Metalenguajes Lenguajes de Propsito Especfico Lenguajes Scripts

Lenguajes de programacin imperativos y funcionales Los lenguajes de programacin generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos: lenguajes imperativos; lenguajes funcionales. Lenguaje de programacin imperativo Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de rdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condicin. Estos fueron los primeros lenguajes de programacin en uso y an hoy muchos lenguajes modernos usan este principio. No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. Lenguaje de programacin funcional Un lenguaje de programacin funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una funcin se invoca a s misma, hablamos de recursividad.

Interpretacin y compilacin
Los lenguajes de programacin pueden, en lneas generales, dividirse en dos categoras: lenguajes interpretados lenguajes compilados

Lenguaje interpretado

Un lenguaje de programacin es, por definicin, diferente al lenguaje mquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intrprete), que traduce los comandos de los programas segn sea necesario.

Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a travs de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningn otro programa para ejecutarse a s mismo. Este archivo se llama ejecutable. Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Adems, como slo es necesaria una traduccin, la ejecucin se vuelve ms rpida. Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificacin del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilacin del programa para aplicar los cambios. Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del cdigo fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricacin de un programa y, de ese modo, copiar su cdigo o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de cdigo para evitar las copias ilegales (transacciones bancarias, pagos en lnea, comunicaciones seguras...).

Ambiente grfico de Desarrollo para Fortran

FORTRAN: Abreviatura de FORmula TRANslator (traductor de formulas), fue definido alrededor del ao 1955 en Estados Unidos por la compaa IBM. Es l ms antiguo de los lenguajes de alto nivel. Antes de l, todos los programas se escriban en lenguaje ensamblador o en lenguaje mquina. Es un lenguaje especializado en aplicaciones tcnicas y cientficas. Se caracteriza por su potencia en los clculos matemticos, pero esta limitado en las aplicaciones de gestin, manejo de archivos, tratamiento de cadenas de caracteres y edicin de informes. Es un lenguaje notorio, por la facilidad con que permite expresar una ecuacin. Muchas de sus caractersticas fueron incorporadas mas tarde en el primer lenguaje BASIC. Una de sus ventajas es que es un lenguaje compacto y es tambin ampliamente utilizado para aplicaciones en los negocios que no requieren manejo de grandes archivos de datos. Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fue implementando en ordenadores de otros fabricantes.

Ambiente grfico de desarrollo en COBOL

COBOL: Es el lenguaje mas utilizado en las aplicaciones de gestin, creado en 1960 por un comit denominado CODASYL (COnference on DAta SYstems Languages), patrocinado por el Departamento de Defensa de Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como expresa su nombre (COmmnon Business Oriented Language). A lo largo de su existencia ha sufrido diversas actualizaciones. Su primer estndar fue aprobado por el ANSI en 1968. Posteriormente, en 1974, se adopta la norma ANS X3.23-1974, que ha perdurado hasta su ltima versin, COBOL ANS-85, que facilita el diseo estructurado de los programas. Sus caractersticas ms destacables son las siguientes: se asemeja al lenguaje natural (ingls), es auto documentado y ofrece grandes facilidades en el manejo de archivos, as como en la edicin de informes escritos. Puede emplear trminos comnmente utilizados en los negocios. Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad de escribir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias, e incluso duplicacin en algunos casos, y la inexistencia de funciones matemticas.

PL/I: Fue creado a comienzos de los aos sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirndose en los lenguajes ALGOL, COBOL y FORTRAN se desarrollo el PL/I (Programming Language/I) tomando las mejores caractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo mas general posible en cuanto a su implementacin, til para aplicaciones tcnico-cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de sistemas. Se trata de un lenguaje de programacin complejo. Compilado y estructurado, es capaz de gestionar errores y de procesar multitareas, y se emplea en entornos acadmicos y de investigacin.

Apariencia de una aplicacin desarrollada en BASIC

BASIC: El lenguaje BASIC fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo principal de proporcionar a los principiantes un lenguaje fcil de aprender, como se indica en su nombre Beginner's All-purpose Symbolic Instruction Code (Cdigo de instrucciones simblico de propsito general para principiantes). Es un lenguaje interactivo muy popular que tiene una aceptacin debido a la facilidad de su uso, es un idioma simple para aprender y fcil de traducir.

Ejemplo de programacin PASCAL: Fue creado por el en PASCAL matemtico suizo Nicklaus Wirth en 1970, basndose en el lenguaje ALGOL, en cuyo diseo haba participado en los aos sesenta. Su nombre proviene del filsofo y matemtico francs del siglo XVII, Blaise Pascal, que invento la primera maquina tipo mecnico para sumar. Fue el primer gran lenguaje creado despus de haber sido ampliamente diseminados los conceptos asociados con la programacin estructurada.

program raiz(input, output); (* Obtener la raz cuadrada de un nmero real x cualquiera. *) var x, y: real; begin writeln('** Calcular la raz cuadrada de x **'); writeln; writeln('Entrar x (> 0): '); readln(x); y := sqrt(abs(x)); (* Raz cuadrada del valor absoluto de x para evitar races imaginarias *) writeln; if (x<0) then (* Si x es negativo, el resultado se notifica como imaginario *) writeln('La raz cuadrada de ', x, ' es el nmero imaginario ', y,'i') else writeln('La raz cuadrada de ', x, ' es ', y); writeln; writeln('** Fin **'); readln; (* Espera a que el usuario pulse enter para salir del programa *) end.

Aunque en principio la idea del diseador era proporcionar un lenguaje adecuado para la enseanza de los conceptos y tcnicas de programacin, con el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de aplicaciones, que posee grandes facilidades para la programacin de sistemas y diseo grafico. Una buena solucin, los compiladores y entornos de desarrollo se encuentra gratuitamente (bajo ciertas condiciones). Podemos comenzar haciendo pequeos programas en el Shell de Pascal y luego podemos pasar (despus de haber aprendido la nocin de objeto) a cosas ms potentes con entornos grficos gracias a Delphi (y Kylix bajo Linux). El lenguaje es relativamente intuitivo y riguroso, la creacin de interfaz grfica es simple, rpidamente podemos sentirnos a gusto. La portabilidad es mediocre pero existe hacia algunas plataformas (Kylix) Para aprender Pascal http://www.programacionfacil.com/programacion:manual_pascal Pgina oficial Delphi (Ingls): http://www.codegear.com/en/products/delphi

Ejemplo de programacin int main(int argc, char *argv[]) en C { printf("Hola, Mundo\n"); Apariencia de return 0; un compilador } de Lenguaje C #include <stdio.h>

C: Este lenguaje fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los laboratorios Bell Telephone, Ken Thompson. Estos haban diseado con anterioridad el sistema operativo UNIX, y su intencin al desarrollar el lenguaje C fue la de conseguir un lenguaje idneo para la programacin de sistemas que fuese independiente de la maquina, con el cual escribir su sistema UNIX. Aunque, como acabo de decir, fue diseado inicialmente para la programacin de sistemas, posteriormente su uso se ha extendido a apliciones tcnico-cientficas, de bases de datos, de proceso de textos, etc. En 1980 Bjarne Stroustrup, inspirado en el lenguaje Simula67 adicion las caractersticas de la programacin orientada a objetos incluyendo la ventaja de una biblioteca de funciones orientadas a objetos) y lo denomino C con clases. Para 1983 dicha denominacin cambio a la de C++. Con este nuevo enfoque surge la nueva metodologa que aumenta las posibilidades de la programacin bajo nuevos conceptos. La utilizacin ptima de este lenguaje se consigue dentro de su entorno natural, que ese el sistema operativo UNIX, y entre sus caractersticas destaca el uso de programacin estructurada para resolver tareas de bajo nivel, as como la amplia librera de rutinas de que dispone. El lenguaje C rene caractersticas de programacin intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel; con gran podero basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayora de los elementos de la programacin estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programacin de computadoras.

MODULA: Fue diseado en 1977 bajo la direccin de Nicklaus Wirth, creador tambin el lenguaje PASCAL, con la intencin de incluir las necesidades de la programacin de sistemas y dar respuestas a las criticas recibidas respecto de las carencias del lenguaje PASCAL. En 1979 se realiza una versin que pasa a denominarse MODULA-2 y que perdura en la actualidad. Adems de incluir las caractersticas de su predecesor, este nuevo lenguaje incorpora las principales carencias de aquel, como la posibilidad de compilacin separada, creacin de libreras, programacin concurrente, mejora el manejo de cadenas de caracteres, los procedimientos de entrada/salida y la gestin de la memoria, etc. adems, posee grandes facilidades para la programacin de sistemas. Tambin, debido a sus cualidades didcticas, ha sido ampliamente aceptado por la comunidad universitaria como herramienta idnea para la enseanza de la programacin.

Ada Augusta Byron King (10 de diciembre de 1815 - 27 de noviembre de 1852) fue la primera programadora en la historia de las computadoras.

ADA: Es el ltimo intento de obtener un nico lenguaje para todo tipo de aplicaciones, e incluso los ltimos avances de tcnicas de programacin. Su diseo fue encargado por el Departamento de Defensa de Estados Unidos, para su uso en servicios militares, a la empresa Honeywell-Bull despus de una seleccin rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrs lenguajes existentes. De estos, se seleccionaron como base para la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarizacin del lenguaje se publico en 1983 con el nombre de ADA, en honor de la considerada primera programadora de la historia, Augusta Ada Byron, condesa de Lovelace. Entre las caractersticas del lenguaje se encuentran la compilacin separada, los tipos abstractos de datos, programacin concurrente, programacin estructurada, libertad de formatos de escritura, etc. Como principal inconveniente presenta su gran extensin. Los escritores lo llamaron inflexible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnologa del software.

Apariencia del entorno de desarrollo de Lisp

LISP: En informtica, acrnimo de List Processing. Un lenguaje de programacin para ordenadores orientado a la generacin de listas, desarrollado en 1959-1960 por John McCarthy y usado principalmente para manipular listas de datos o de smbolos.

Los lenguajes funcionales son numerosos, estn clasificados en dos grandes familias: los puros (haskell) y los no puros (familia lisp). A la vez la familia de los puros estn clasificados en dos: los verdaderamente puros, sin efecto efecto secundario (familia haskell) y la familia ML (Caml,SML,...). La manera de programar es totalmente diferente con relacin a los otros lenguajes. La programacin funcional es otra manera de ver un programa y eso no impide por ejemplo tener un lenguaje funcional y orientado a objetos (scala por ejemplo) o incluso un lenguaje funcional que asocie imperativo/orientado a objetos/funcional (Ocaml). Conocer uno de estos permite tener buenas bases y permitir tambin a las personas ms orientadas a las matemticas pasarse suavemente a la informtica. Estos por lo general son utilizados en anlisis numrico o en inteligencia artificial (pero es slo a causa de su origen). Podemos utilizarlos para programar todo lo que se puede programar con otros lenguajes (la comunidad commonlisp es muy activa)

procedure Absmax(a) Dimensiones:(n, m) Resultado:(y) Subndices:(i, k); value n, m; array a; integer n, m, i, k; real y; comment De la matriz a se toma el elemento con el valor absoluto mayor y se coloca en y. Los subndices del elemento se colocan en i y k; Ejemplo de begin integer p, q; programacin y := 0; i := k := 1; en ALGOL for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q End end Absmax

ALGOL: El ALGOL (ALGOritmic Language) fue presentado en 1958. Fue el primer lenguaje de programacin de proceso estructurado de alto nivel. Fue orientado al uso de quienes participan en proyectos cientficos y matemticos. Un grupo internacional de matemticos europeos y americanos, pretendan crear un lenguaje comn normalizado que les permitiera el intercambio de algoritmos, aunque esta en desuso, fue el primero que incorporo conceptos claves para la programacin actual.

Ambiente grfico de desarrollo de SmallTalk Para muchos es el lenguaje orientado a objetos por excelencia. Gratuito, sintaxis simple, impone un rigor sin igual en la programacin orientada a objetos. Desgraciadamente no es muy utilizado, es raro encontrar un empleo con ste, pero da una referencia solida, y con cosas como Squeak permiten hacer gran cantidad de cosa con l. Squeak: http://www.squeak.org/ Tutorial Dolphin Smalltalk: http://www.dolphinmap.net/wiki/Documentation SMALLTALK: Lenguaje de Programacin orientado a objetos integrados con un entorno de desarrollo multiventana. SMALLTALK no es solo un hermoso lenguaje de computacin orientado a objetos. El entorno de desarrollo merece similar valoracin y ha sido copiado muchas veces, desde el Sistema Operativo de Apple MS Windows y Borland Pascal (en una memoria extensin). Muchos conceptos de SMALLTALK como los browsers y las tcnicas de browsing han encontrado hoy su rumbo en muchas herramientas de desarrollo de la generacin X, desarrollado por SMALLTALK poseen un factor divertido-de-usar. Los cambios se graban instantneamente y los mismos pueden probarse rpidamente. SMALLTALK fue desarrollado dentro del Grupo de Investigacin del Aprendizaje en el Centro de Investigacin de Xerox en palo Alto a comienzos de los 70. Las principales ideas de SMALLTALK se le atribuyen generalmente a Alan Kay con races en Simula, LISP y SketchPad. Dan Ingalls escribi el cdigo de las primeras ventanas solapables, los pop-up mens y la clase BitBlt.

Ambiente de desarrollo de C++

C++: Se pronuncia ce plus plus. Fue desarrollada por Bjarme Stroustrup en los Bell Laboratories a principios de la dcada de los 80. C++ introduce la programacin orientada al objeto en C. Es un lenguaje extremadamente poderoso y eficiente. C++ es un sper conjunto de C, para aprender C++ significa aprender todo de C, luego aprender programacin orientada al objeto y el uso de stas con C++.
Este es un buen lenguaje, pero con una sintaxis complicada que no facilita su aprendizaje. Adems el uso de punteros hace que su uso, incluso para los profesionales, sea complicado. La ventaja es que este lenguaje pueden ser utilizados en diversas plataformas (despus de compilacin) y que, una vez que se domina, hace que los otros parezcan simples. Este lenguaje es an muy utilizado en el mundo profesional. Para aprender C: http://sopa.dis.ulpgc.es/so/cpp/intro_c/ Para aprender C++: http://zator.com/Cpp/E1_2.htm Pgina de Borland C++: http://www.codegear.com/en/products/cppbuilder

Ambiente de desarrollo de Delphi

DELPHI: Es un entorno de programacin visual orientado a objetos para desarrollo rpido de aplicaciones (RAD) de propsito general, incluyendo aplicaciones cliente/servidor. Delphi es la versin de Delphi para 32 bits (Delphi 3), es decir son casi los mismos, con la nica diferencia que Delphi 3 es mucho ms mejorado, por ejemplo contiene un TeeChart, que sirve para los grficos de negocio. Delphi tiene las siguientes caractersticas: Rendimiento - con el mejor y ms rpido compilador del mundo. Empresa e Internet - soluciones cliente y servicio Desarrollo de aplicaciones rpidas (RAD). Reusabilidad de componentes, un verdadero entorno orientado a objetos. Manejo de Base de Datos escalables. Diseminacin de informacin de base de datos en la Web a una gran velocidad.

Apariencia de Kawa: un entorno grfico para desarrollo Java.

Para aprender Java: http://www.manualjava.com/

JAVA: El lenguaje de programacin Java, fue diseado por la compaa Sun Microsystems Inc., con el propsito de crear un lenguaje que pudiera funcionar en redes computacionales heterogneas (redes de computadoras formadas por ms de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.), y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier mquina o plataforma. Java puede funcionar como una aplicacin sola o como un "applet", que es un pequeo programa hecho en Java. Los applets de Java se pueden "pegar" a una pgina de Web (HTML), y con esto puedes tener un programa que cualquier persona que tenga un browser compatible podr usar. JAVASCRIPT: Este lenguaje de programacin originalmente fue llamado LIVESCRIPT, pero luego fue renombrado con el nombre de JAVASCRIPT, con la idea de capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems. ste es un complemento ideal del lenguaje HTML, al permitir a la pgina realizar algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del cual depende; JAVASCRIPT es un lenguaje diseado especialmente para ejecutarlo en Internet.

Segn un autor, para ser breve, escribir una pgina web o un sitio web en HTML es a la programacin lo que beber un vaso de agua es al alcoholismo. Aqu se trata de Ejemplo de cdigo presentar un documento, no de programar, y no porque se agregan HTML. algunos scripts esto cambia gran cosa. Para aprender HTML: http://es.kioskea.net/html/htmlintro.php3

HTML: Sirve para realizar esas atractivas pginas Web. Se trata de un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y grficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores WWW. Es decir, es un editor para combinar textos, imgenes e incluso sonido y ahora tambin imgenes en movimiento. Es, en definitiva, la forma de manejar y presentar la informacin en la red. Para escribir documentos de hipertexto se ha desarrollado un nuevo formato de datos o lenguaje llamado Hyper Text Markup Language (HTML). Este lenguaje permite dar indicaciones precisas al programa cliente de cmo debe presentarse el documento en pantalla o al ser impreso. El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en el Web. Tiene Tres normas fundamentales: a) HTML simplemente texto b) No importan los Tabs ni los saltos de lnea c) Existen 3 caracteres especiales (< menor que, > mayor que, & Ampersand)

Ejemplo de cdigo PHP

<html> <head> <title>Ejemplo</title> </head> <body> <?php if (isset($_POST['muestra'])) { echo 'Hola, '.htmlentities($_POST['nombre']) .', tu comida favorita es:'. htmlentities($_POST['comida']); } else { ?> <form method="POST" action="?"> Cul es tu nombre? <input type="text" name="nombre"> Cul es tu comida favorita? <select name="comida"> <option>Spaguetis</option> <option>Asado</option> <option>Pizza</option> </select> <input type="submit" name="muestra" value="Seguir"> </form> <?php } ?> </body> </html>

PHP es un acrnimo recursivo que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools),

Un lenguaje inicialmente previsto para el desarrollo de pginas web dinmicas. Su sintaxis es muy similar a la de C++. PHP es bastante simple de abordar y permite conectarse fcilmente a una base de datos. Para desarrollar pginas web dinmicas, se requiere tambin un buen conocimiento de Html y eventualmente de Sql si se necesita una base de datos. Permite ver rpidamente el trabajo, ponindolo en lnea, y de este modo tener los comentarios/sugerencias de los internautas. Tambin podemos desarrollar otras aplicaciones que no sean para la web con este lenguaje. Podemos programar de manera procedural u orientada a objetos, a nuestra eleccin. Es un buen lenguaje pero no necesariamente el mejor para aprender. Es potente y permisivo pero con el riesgo de aprender malas costumbres. Especialmente en lo que respecta a las pginas web, ste no influye para que se programe con propiedad desde el inicio. Si buscas un lenguaje que sea fcil de aprender, que te permita aprender la programacin orientada a objetos, y que te deje buenas costumbres de programacin, entonces elije mas bien un lenguaje como Python. Para aprender PHP: http://geneura.ugr.es/~maribel/php/ Pgina oficial: http://www.php.net/

Ejemplo de cdigo PROLOG PROLOG: PROLOG ("PROgramacin en LOGica") es una respuesta a la crisis de software de principios de los aos 70s, en que se descubri que la creacin de buenos programas involucraba costos mayores que los del hardware que los ejecuta; en respuesta a esto se produjo ProLog. Lo crearon A. Colmenauer y Ph. Roussel, con la colaboracin de R. Kowalski, simultneamente en la Universidad de Aix-Marseille (Francia) y Edimburgo (Gran Bretaa). Se basa en el clculo de predicados de primer orden y en el principio de resolucin de Robinson. En vez de ser algortmico ("procedural" en ingls, trmino sin traduccin), es decir concebido como un conjunto de instrucciones que la mquina debe ejecutar en forma secuencial, es "declarativo", es decir basado en definiciones (de "hechos" o "reglas"). Es un lenguaje de programacin lgico e interpretado, bastante popular en el medio de investigacin en Inteligencia Artificial.

Ejemplo 1 (creacin de una tabla): CREATE TABLE TABLA_NOMBRE ( my_field1 INT UNSIGNED, my_field2 VARCHAR (50), my_field3 DATE NOT NULL, PRIMARY KEY (my_field1, my_field2) )

Ejemplo de cdigo SQL SQL: Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos (BD), acotando progresivamente la bsqueda (de ah el nombre de "Sequential Query Language"). Existen hoy numerosas aplicaciones de administracin de bases de datos que recurren al SQL (Las ms conocidas, potentes - y caras - son Oracle e Informix). Hoy se pueden acoplar las bases de datos a hipertextos (pginas web), para lo cual las buenas aplicaciones ya traen mdulos que hacen la conexin. El lenguaje PHP del cual hablamos ms arriba tambin sirve para definir procedimientos de insercin y de consulta de datos en BD que funcionan con SQL.

<%if x=1 then%> <b>X igual a uno</b> <%else%> <b>X diferente a uno</b> <%end if%>

Ejemplo de cdigo ASP

ASP: Su nombre es Active Server Pages. Es un lenguaje independiente, diseado por Microsoft para la codificacin eficiente de los scripts de los servidores, que fueron diseados para ser ejecutados por un servidor Web en respuesta a la peticin de un URL de un usuario. Los scripts de ASP son similares a otros scripts de servidores con los que puedes estar familiarizado, que son utilizados en otras plataformas, como Perl, Python, etc. Es una tecnologa del lado servidor de Microsoft para pginas web generadas dinmicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). ASP ha pasado por cuatro iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP 2.0 (distribuido con IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la plataforma .NET de Microsoft). Las versiones pre-.NET se denominan actualmente (desde 2002) como ASP clsico. Es el futuro segn Microsoft, hay cosas buenas y malas en esta plataforma pero permite programar aplicaciones grficas de manera simple, slo corre en Windows y con algunas adaptaciones en Linux. Se recomienda C# que es el lenguaje nativo de esta plataforma: su sintaxis muy similar a la de C y Java, no hay punteros, todo se hace en un nivel de abstraccin superior a los antiguos lenguajes de Microsoft. Se compara a Java y a Python, excepto que no es libre. Un entorno de desarrollo gratuito y Open source para .Net: http://www.icsharpcode.net/OpenSource/SD/

Python Simple, rpido, crea buenas costumbres de programacin, ligero (tanto as que pasar a otro lenguaje despus se hace pesado), abierto, gran cantidad de documentacin en Internet. Este nos permite rpidamente entrar en accin, ya sea creando scripts potentes (gracias a la programacin orientada a objetos) u otras cosas. Es tambin de ultima generacin y portable. Funciona con una mquina virtual que puede ser empaquetada gracias a algunas clases disponibles en la web (se encuentran de todo tipo y para todos los fines) en un exe para distribuir la aplicacin de manera simple e independiente. Pgina oficial de Python (en ingls): http://www.python.org/ Gua de aprendizaje de Python: http://www.programacion.com/tutorial/python/