Sie sind auf Seite 1von 30

Definición de Lenguaje de programación

Lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un

conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas.

Debe distinguirse de “lenguaje informático”, que es una definición más amplia, puesto estos incluyen otros lenguajes como son el HTML o PDF que dan

formato a un texto y no es programación en sí misma.

El programador es el encargado de utilizar un lenguaje de programación para crear un conjunto de instrucciones que, al final, constituirá un programa o

subprograma informático.

Los lenguajes de programación pueden clasificarse según el paradigma que usan en: procedimentales, orientados a objetos, funcionales, lógicos, híbridos,

etc.

Son ejemplos de lenguajes de programación: php, prolog, ASP, ActionScript, ada, python, pascal, c, basic, JAVA, JavaScript, etc.

Orinetaods a objetos

1. Paradigma de programación. Tipo de lenguaje de programación basado en la idea de encapsular estado y operaciones en objetos. En general, la

programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Se puede incluir -aunque no formalmente-

dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y subtipos entre objetos. Ej.: Simula, smalltalk, C++, Java, Visual

Basic .NET, etc.

Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.

2. Gráfico orientado a objetos. Ver gráfico vectorial.


Los lenguajes de programación son herramientas que nos permiten crear
programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..

Una computadora funciona bajo control de un programa el cual debe estar


almacenado en la unidad de memoria; tales como el disco duro.

Los lenguajes de programación de una computadora en particular se conoce como


código de máquinas o lenguaje de máquinas.

Estos lenguajes codificados en una computadora específica no podrán ser


ejecutados en otra computadora diferente.

Para que estos programas funcionen para diferentes computadoras hay que realizar
una versión para cada una de ellas, lo que implica el aumento del costo de
desarrollo.

Por otra parte, los lenguajes de programación en código de máquina son


verdaderamente difíciles de entender para una persona, ya que están compuestos
de códigos numéricos sin sentido nemotécnico.

Los lenguajes de programación facilitan la tarea de programación, ya que disponen


de formas adecuadas que permiten ser leidas y escritas por personas, a su vez
resultan independientes del modelo de computador a utilizar.

Los lenguajes de programación representan en forma simbólica y en manera de un


texto los códigos que podrán ser leidos por una persona.

Los lenguajes de programación son independientes de las computadoras a utilizar.

Existen estrategias que permiten ejecutar en una computadora un programa


realizado en un lenguaje de programación simbólico. Los procesadores del lenguaje
son los programas que permiten el tratamiento de la información en forma de
texto, representada en los lenguajes de programación simbólicos.

Hay lenguajes de programación que utilizan compilador.

La ejecución de un programa con compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina


2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el


cual analiza directamente la descripción simbólica del programa fuente y realiza las
instrucciones dadas.

El intérprete en los lenguajes de programación simula una máquina virtual, donde


el lenguaje de máquina es similar al lenguaje fuente.

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el
programa, sin embargo su inconveniente es que la velocidad de ejecución es más
lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa
fuente.
8 lenguajes de programación que deberías
aprender
Lo normal sería pensar que este gráfico es un indicador de las habilidades necesarias en un futuro por un desarrollador web,
pero la realidad es bien distinta aquí en España, sólo habría que darse una vuelta por algún portal de empleo y ver las
habilidades que requieren las empresas…

Por eso vamos a hacer un pequeño análisis de los 8 lenguajes de programación con más demanda en el mercado español, este
análisis consta de 3 apartados:
¿Qué es?, ¿Por qué deberías aprenderlo?, Oferta de trabajo (Fuente:Infojobs)

1.PHP

¿Qué es?

PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre
rendimiento y flexibilidad.

PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones
son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de
lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez
que se solicita un script.

Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje
automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tu no tienes que preocuparte de las conexiones
a la base de datos, porque PHP lo hará por ti. leer más

¿Por qué deberías aprenderlo?

Es uno de los lenguajes de progrmación más populares, la gran fluidez y rapidez de sus scripts y su prometedor futuro,
desarrollar aplicaciones Webs utilizando lenguajes como C o COBOL son cosas del pasado.

Oferta de trabajo

Demanda de trabajo: 362 ofertas

2.C#

¿Qué es?

C# es un lenguaje de propósito general orientado a objetos creado por Microsoft para su plataforma .NET.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque
incluye mejoras derivadas de otros lenguajes. C# fue diseñado para combinar el control a bajo nivel de lenguajes como C y la
velocidad de programación de lenguajes como Visual Basic.

¿Por qué deberías aprenderlo?

Es una parte esencial de la plataforma .Net, C# combina los mejores elementos de múltiples lenguajes de amplia difusión como
C++, Java, Visual Basic o Delphi. De hecho, su creador Anders Heljsberg fue también el creador de muchos otros lenguajes y
entornos como Turbo Pascal, Delphi o Visual J++. La idea principal detrás del lenguaje es combinar la potencia de lenguajes
como C++ con la sencillez de lenguajes como Visual Basic, y que además la migración a este lenguaje por los porgramadores de
C/C++/Java sea lo más inmediata posible.

Oferta de trabajo

Demanda de trabajo: 1.002 ofertas


3.AJAX

¿Qué es?

AJAX no es un lenguaje exactamente su nombre viene dado por el acrónimo de Asynchronous JavaScript And XML y es
posiblemente la mayor novedad en cuanto a programación web en estos últimos años.

El corazón de Ajax es el objeto XMLHttpRequest que nos permite realizar una conexión al servidor y al enviarle una petición y
recibir la respuesta que procesaremos en nuestro código Javascript, estamos hablando del verdadero motor de Ajax, por ejemplo
gracias a este objeto podemos desde una página HTML leer datos de una web o enviar datos de un formulario sin necesidad de
recargar la página.

leer más

¿Por qué deberías aprenderlo?

La demanda de AJAX no sólo es amplía sino que de calidad debido a la dificultad de aprendizaje que conlleva, si la herramienta
de Microsoft, Atlas, destinada a la realización de aplicaciones AJAX tiene éxito puede suponee un aumento en la demanda de
esta tecnología.

Oferta de trabajo

Demanda de trabajo: 65 ofertas

4.JavaScript

¿Qué es?

Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento.
Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente
más utilizado.

¿Por qué deberías aprenderlo?

La razón de mayor peso es que es utilizado por millones de páginas webs para validar formularios, crear cookies, detectar
navegadores y mejorar el diseño, su fácil aprendizaje lo hace un lenguaje muy demandado.

Oferta de trabajo

Demanda de trabajo: 422 ofertas

5.Perl

¿Qué es?

Perl es la alternativa más popular a PHP, seguramente porque es el lenguaje más antiguo tambien dentro de las alternativas. En
internet nos encontramos numerosos recursos que utilizan Perl, muchos de las aplicaciones “open source” requieren tener Perl
instalado correctamente. Perl tiene una ventaja y es que es muy flexible, y tambien tiene un gran cantidad de modulos ya
escritos.

Bien escritos los scripts en Perl se asemejan bastante a PHP. La principal causa de la sucía apariencia de Perl es por la afición de
sus desarrolladores a la escritura en “una línea” empaquetanto numerosas funcionalidades en una sola línea de código. leer más

¿Por qué deberías aprenderlo?

La potencía de Perl a la hora de procesar grandes cantidades de datos lo hace realmente popular a la hora de desarrollar
aplicaciones del lado del servidor, aprender Perl o Php es básico a la hora de desarrollar aplicaciones Web.
Oferta de trabajo

Demanda de trabajo: 82 ofertas

6.C

¿Qué es?

Es un lenguaje de “medio nivel” pero con numerosas características de bajo nivel.


Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que
permiten un control a muy bajo nivel.

¿Por qué deberías aprenderlo?

Aprender C es básico mientras aprendes C estas aprendiendo conceptos básicos de lenguajes cómo Java o C#, además no sólo
es mas sencillo que estos últimos sino que comporten gran parte de su sintaxis.

Oferta de trabajo

Demanda de trabajo: 312 ofertas

7.Ruby y Ruby on Rails

¿Qué es?

Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje
de programación Ruby.
Ruby apareció en el año 1995 y creo que su principal problema había sido
la falta de documentación en otro idioma que no sea japonés. Eso se ha ido
solucionando y crece la popularidad del lenguaje. Su aplicación insignia,
por decirlo de algún modo parece ser RoR. Su mecanismo de gem se me parece
al CPAN de Perl y al Pear de PHP. leer más

¿Por qué deberías aprenderlo?

Simple y funcional, el uso de Active Record de forma eficiente simplifica y agiliza el desarrollo de forma notable. Al minimizar el
trabajo con la base de datos (escribiendo triggers y procedimientos almacenados) y emplear un único lenguaje para todo el
desarrollo, se consigue acortar los tiempos de desarrollo (time2market).

Oferta de trabajo

Demanda de trabajo: 5 ofertas

8.ASP

¿Qué es?

Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en el mercado del desarrollo Web, y viene a
ser como su estandar para su servidor Web, ISS. Asp ha sido atacado por la comunidad open source desde que este apareció, y
dan numerosas razones para ello:
El propietario, una única plataforma, la lentitud…

Me gustaría decir “Si, si, y si”, pero no me debo dejar llevar. La realidad es que ASP ha sido implementado en otras plataformas
y que cuando esta funcionando bajo su servidor predeterminado IIS es relativamente rápido. leer más

¿Por qué deberías aprenderlo?


Simplemente porqué en algunas ocasiones no tienes otra opción debido a la popularidad que ha alcanzado.

Oferta de trabajo

Demanda de trabajo: 557 ofertas

Seccion Programación (TuFunción)


Tutorial básocp de AJAX
Diferencia entre PHP ASP y otros lenguajes de programación
Fácil sistema de autentificación de usuarios (PHP)
Tendencia de los lenguajes de programación
Bases de datos y PHP
Consejos para escribir código Javascript
Perl está muriendo
10 Programming Languages You Should Learn Right Now
Diferencias entre PHP ASP y otros lenguajes
Por el 8 de Julio de 2006

EN: DESARROLLO WEB| DISEÑO| PROGRAMACION

PHP
PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre
rendimiento y flexibilidad.

PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones
son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de
lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez
que se solicita un script.

Esta constante recompilación puede parecer una perdida de tiempo, pero no lo es porque no hay que preocuparse de la
recompilación cada vez que realizas cambios.

Ademas, proporciona una regeneración muy rápida durante el desarrollo. Si tienes errores en el código, PHP rechazará compilar
la página hasta que tu aregles el problema, y tendrás que ejecutar tu código línea a línea hasta encontrar el problema.

Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje
automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tu no tienes que preocuparte de las conexiones
a la base de datos, porque PHP lo hará por ti. Tampoco quiere decir que tu debes dejar hacer todo a PHP, los bueno
programadores hacen esas funciones programándolas en código teniendo un mayor control del script.ssed.

Perl
Perl es la alternativa más popular a PHP, seguramente porque es el lenguaje más antiguo tambien dentro de las alternativas. En
internet nos encontramos numerosos recursos que utilizan Perl, muchos de las aplicaciones “open source” requieren tener Perl
instalado correctamente. Perl tiene una ventaja y es que es muy flexible, y tambien tiene un gran cantidad de modulos ya
escritos.

Bien escritos los scripts en Perl se asemejan bastante a PHP. La principal causa de la sucía apariencia de Perl es por la afición de
sus desarrolladores a la escritura en “una línea” empaquetanto numerosas funcionalidades en una sola línea de código.
Perl fue descrito por su creador Larry Wall, cuando en una portada del libro O’Reilly dijo que Perl deberia ser un camello,
diciendo que Perl era sucio pero útil y podía recorrer grandes distancias sin necesidad de mucho alimento

Perl es a menudo la mejor opción cuando tu quieres aprovecharte de algunas de las librerias que ya estan escritas de
antemano.CPAN, es un repositorio de librerias bastante grande, y con una enorme cantidad de código que tu puedes tomar,
customizar y reusar. Perl tambien tiene una grande y activa comunidad de hackers.

ASP
Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en el mercado del desarrollo Web, y viene a
ser como su estandar para su servidor Web, ISS. Asp ha sido atacado por la comunidad open source desde que este apareció, y
dan numerosas razones para ello:
El propietario, una única plataforma, la lentitud…

Me gustaría decir “Si, si, y si”, pero no me debo dejar llevar. La realidad es que ASP ha sido implementado en otras plataformas
y que cuando esta funcionando bajo su servidor predeterminado IIS es relativamente rápido.

El hecho de que puedas escribir modulos para ASP usando Visual Basic y COM podría parecer una solución realmente atractiva si
no fuera por el hecho de que ASP solo es realmente compatible con IIS. En otras plataformas hay muchas caracteristicas de ASP
que son realmente lentas.

ColdFusion
Coldfusion se hizo popular con el boom de los .COM por el hecho de ser desarrollado usando su propi IDE a su vez bastante
propicio para desarrolladores novatos que deseaban escribir código fuente exento de una gran complejidad.

Quizás el rendimiento no es el deseado pero la velocidad de desarrollo si lo es.

La desventaja principal de usar ColdFusion es que realmente no es nada amigable, y que puede parecer raro en un primer
momento. PHP y Perl, son lenguajes realmente flexibles en los que tienes mas control de lo que sucede y porque sucede. Si algo
va mal en tu código es bastante fácil resolver el problema y tomar el control sobre lo que ha sucedido. Muchas veces ColdFusion
tiene una unica manera de resolver el problema y esto reduce en gran medida el control de errores del lenguaje. Sin embargo tu
puedes utilizar ColdFusion cuando estas en un equipo con personas de aptitudes técnicas limitadas.

La mayor ventaja de ColdFusion es su IDE que utiliza “CFML” (ColdFusion Markup Language), incluso programadores juniors
pueden aprender el sistema y empezar a desarrollar sus primeras páginas.
Tendencia de los lenguajes de programación
Por el 3 de Agosto de 2006

EN: INTERNET

El crecimiento de Ruby y Javascript, debido al crecimiento de las aplicaciones Web 2.0 es un hecho.
Esto está provocando un paulatino descenso de Java y C/C++.

Cómo puedes observar en el gráfico la introdución de Rails supone el comienzo de una trayectoría ascendente de Ruby.

Es destacable tambien como sql sin ser un lenguaje de programación lleva una línea continua ascendente y sin sobresaltos.

Lo normal sería pensar que este gráfico es un indicador de las habilidades necesarias en un futuro por un desarrollador web,
pero la realidad es bien distinta aquí en España, sólo habría que darse una vuelta por algún portal de empleo y ver las
habilidades que requieren las empresas…
Tutorial Básico de Ajax
Por el 7 de Septiembre de 2006

EN: INTERNET

AJAX no es un lenguaje exactamente su nombre viene dado por el acrónimo de Asynchronous JavaScript And XML y es
posiblemente la mayor novedad en cuanto a programación web en estos últimos años.

El corazón de Ajax es el objeto XMLHttpRequest que nos permite realizar una conexión al servidor y al enviarle una petición y
recibir la respuesta que procesaremos en nuestro código Javascript, estamos hablando del verdadero motor de Ajax, por
ejemplo gracias a este objeto podemos desde una página HTML leer datos de una web o enviar datos de un formulario sin
necesidad de recargar la página.

Puedes programar numerosas nuevas aplicaciones enfocadas desde una visión distinta como es el caso de este paginador
AJAX, si esto no te convence a leer este artículo prueba a ver 10 razones para usar AJAX.

1. Basado en los estándares abiertos


2. Usabilidad
3. Válido en cualquier plataforma y navegador
4. Beneficia las aplicaciones web
5. No es dificil su utilización
6. Compatible con Flash
7. Adoptado por los “gordos” de la tecnología web
8. Web 2.0
9. Es independiente del tipo de tecnología de servidor que se utilice
10. Mejora la estetica de la web
La manera más fácil para comprender realmente la funcionalidad de Ajax es ver cómo funciona una aplicación web con Ajax y
cómo una sin Ajax.

Sin Ajax
Se crearía una página con un formulario, cuando el usuario envia los datos del formulario se produce una conexión a la base de
datos y se muestra por pantalla la página que el servidor devuelve, todo esto hace que se recargue la página ya sea saltando a
una diferente o a ella misma, el usuario debe esperar una nueva carga de página despues de cada envío.

Es lento porque debe descargar la información HTML por duplicado.

Con Ajax
Utilizariamos un código Javascript que que crearía el mencionado objeto XMLHttpRequest al enviar el formulario, esta llamada se
produce de forma asincrona lo que significa que se envían los datos y no se recarga la página, una vez el servidor responde una
función Javascript es la que valora la respuesta del servidor, si esta respuesta es la deseada imprimeremos el texto que indique
al usuario que sus datos fueron enviados correctamente.

El navegador no recarga la página, la experiencia desde el punto de vista del usuario es muy satisfactoria puesto que se asemeja
a la respuesta del típico software de escritorio, ya no te planteas enlazar páginas sino enviar y recibir datos en una misma
página que mediante funciones evalua las diferentes respuestas.

Es bastante más rápido puesto que no tiene que descargar de nuevo el código HTML de la página de confirmación del
formulario.

Ejemplo objeto XMLHttpRequest (AJAX)


En primer lugar crearemos nuestro objeto ActiveX en IExplorer y un objeto nativo en el resto de navegadores que lo soportan, y
es por ello que tendremos que ver qué objeto creamos, controlandolo con diferentes condiciones, con esto conseguimos que el
navegador cree una instancia del objeto apropiado, dependiendo del navegador usado por el usuario.
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (e) {
try {
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!=’undefined’) {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
Una vez hayamos comprendido y realizado este paso tendremos que tener en cuenta los métodos y propiedades que nos ofrece
AJAX:

Métodos
abort() – Detiene la petición en curso.
getAllResponseHeaders() – Devuelve todas las cabeceras de la respuesta (etiquetas y valores) como una cadena.
getResponseHeader(etiqueta) – Devuelve el valor de la etiqueta en las cabecerasde la respuesta.
open(método,URL,asíncrona,nombre,password) – Abre una conexión con esa URL mediante ese metodo (GET o POST),
aplicando los valores opcionales de la derecha (ahora se explicará).
send(contenido) – Envía el contenido al servidor.
setRequestHeader(etiqueta,valor) – Establece el valor de una etiqueta de las cabeceras de petición.

De está lista nos detendremos en el método open que es uno de los más utilizados y el que nos permitirá utilizar la mejor
característica de Ajax que es la carga de datos externos a la página sin necesidad de recargar la misma.

Método Open

El método open prepara una conexión HTTP a través del objeto XMLHttpRequest con un método y una URL especificados.
XMLHttpRequest.open ( sMetodo, sURL [, bSincronia [, sUsuario [, sPwd ] ] ] );
sMetodo es la cadena que nos indicara el tipo de conexión (GET o POST)
sURL es la url a la que realizamos la petición
bSincronia es un campo booleano con el que podemos utilizar modo asíncrono o síncrono, si lo fijamos en “false” modo síncrono
perderiamos las mejores características de AJAX, los datos sUsuario y sPwd son opcionales y sólo aplicables en caso de caída del
servidor.

Al llamar a open el atributo readyState a 1, resetea los headers de envío y los devuelve atributos responseText, responseXML,
status y statusText a sus valores iniciales

Propiedades
onreadystatechange – Contiene el nombre de la función que se ejecuta cada vez que el estado de la conexión cambie.
readyState – Estado de la conexión, puede valer desde 0 (no iniciada) hasta 4 (completado).
responseText – Datos devueltos por el servidor en formato cadena.
responseXML – Datos devueltos por el servidor en forma de documento XML que puede ser recorrido mediante las funciones
del DOM (getEementsByTagName, etc).
status – Código enviado por el servidor, del tipo 404 (documento no encotrado) o 200 (OK).
statusText – Mensaje de texto enviado por el servidor junto al código (status), para el caso de código 200 contendrá “OK”.

Conocer estas propiedades y métodos es algo muy útil a la hora de desarrollar aplicaciones utilizando Ajax debido a la gran
ayuda que muchas de ellas ofrecen a la hora de depurar errores. Y nos da una mayor idea acerca de la potencia de esta
conjunción de tecnologías.

Ejemplo de envío de datos “GET”


function cargarContenido(){
var t1, t2, contenedor;
contenedor = document.getElementById(‘contenedor’);
t1 = document.getElementById(‘texto1′).value;
t2 = document.getElementById(‘texto2′).value;
ajax=nuevoAjax();
ajax.open(“GET”, “ejemploajax2.php?t1=”+t1+”&t2=”+t2,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}

Ejemplo de envío de datos “POST”


Unicamente debemos cambiar algunas cosas en nuestra función:
Adicción de una línea adicional: setRequestHeader que especifica qué tipo de datos llegarán al servidor. Cambio del parametro
que especifica el método a “POST” y por último utilizaremos parametros para el “send”.
function cargarContenido(){
var t1, t2, contenedor;
contenedor = document.getElementById(‘contenedor’);
t1 = document.getElementById(‘texto1′).value;
t2 = document.getElementById(‘texto2′).value;
ajax=nuevoAjax();
ajax.open(“POST”, “ejemploajax2.php”,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
ajax.send(“t1=”+t1+”&t2=”+t2)
}

Diferencia entre el método GET y POST


Es aconsejable elegir “GET” para aquellas peticiones en las que se soliciten pocos datos y “POST” para aquellas en las que sea
necesario enviar información, especialmente si estos datos podrían superar los 512 bytes en total, puesto que por el método
“GET” no podremos recibir la totalidad de los datos.

Conclusión
La evolución de AJAX ha sido un hecho que ha marcado la tendencia en los lenguajes de programación en estos últimos años,
puedes obtener más información sobre tendencias de lenguajes de programación en esta gráfica.

Espero que el tutorial haya servido de ayuda no dudeis en visitar el foro si teneis alguna duda.

Para los usuarios más avanzados recomiendo el uso de la librería Prototype.


Historia del lenguaje de las computadoras

Los ordenadores (computadoras) son herramientas muy útiles, pero por sí solos no pueden actuar o tomar desiciones. Los

programas que forman parte de los ordenadores, son los que nos hacen parecer que son aparatos inteligentes. ¿Pero qué son

los programas?

Los programas son un conjunto de instrucciones escritos en un lenguaje determinado, el cual consta de una sintaxis y una serie

de símbolos, donde cada uno cuenta con distintas funciones.

El lenguaje de un ordenador se lo denomina leguaje de máquina, y consiste en una codificación de instrucciones que puede

realizar un procesador, la codificación se realiza mediante la representación binaria. Es decir, cada instrucción era un conjunto

de unos y ceros.

Breve historia de los lenguajes de programación

En la década del 40, surgen representaciones para estas instrucciones. Ya no eran unos y ceros, sino que se los representaba

con palabras más fáciles de recordar (instrucciones mnemonicas) como MOVE, LDA, ADD, etc.

La relación con el código binario era directa, por cada instrucción MNEMONICA, existe una instrucción en binario y viceversa. Así

se construyen los primeros traductores que pasarán la instrucción MNEMONICA a Binario. Estos traductores recibieron el nombre

de ensambladores, y se convirtieron en el primer lenguaje de los ordenadores. De todas maneras, la programación era

complicada y difícil, porque se acercaba mucho a la forma de operar de las computadoras y no al lenguaje humano (llamados

lenguajes de programación de alto nivel).

Entre 1954 y 1957, John Bakus y sus colegas de IBM desarrollaron FORTRAN, el cual introdujo muchas ventajas sobre el

ensamblador, e hizo mas claras las operaciones básicas. La idea era hacer la programación más cercana al lenguaje natural

humano.

Poco tiempo después en 1958, surge ALGOL-58, que unía la sintaxis de FORTRAN y mejoraba la notación.

En 1960, aparece COBOL, este lenguaje tenía como objetivo ser utilizado en el procesamiento de datos a gran escala.

Inmediatamente fue adoptado en bancos, compañías y dependencias oficiales.

También en 1960 aparece LISP, un lenguaje muy distinto a los anteriores. LISP únicamente ejecuta funciones, pero estas son
recursivas, es decir que pueden llamarse a sí mismas cuantas veces sean necesarias. LISP es especialmente utilizado para

crear inteligencia artificial.

Para la misma época, también aparecen FORTH y APL, aunque pasaron algunos años para que realmente entraran en uso. A

estos los siguió PL/I, que intentó reunir en un solo programa las características de FORTRAN y COBOL, sin embargo el resultado

fue un lenguaje sumamente complicado y se dejó de utilizar.

En 1965, John Kemey y Thomas Kurtz crean BASIC, con la intención de que se convierta en un lenguaje de enseñanza.

En 1970, el profesor Niklaus Wirth crea el lenguaje PASCAL a partir del ALGOL-58, también con fines didácticos.

En la misma época nace C, un lenguaje que conjuga estructuración, formalismo y sencillez. Con el se desarrolla el sistema

operativo UNIX, también surge PROLOG, del cual se esperaba poder desarrollar inteligencia artificial.

El manejo de bases de datos llevó al desarrollo de un lenguaje proposicional llamado base de datos relacional, la

implementación del lenguaje fue desarrollado por IBM con el SQL.

En los años 80, Smalltalk, implementó la programación orientada a objetos, con el SIMULA-67, el concepto fue

revolucionario y así muchos lenguajes lo fueron incorporando como C, que con la orientación a objetos paso a llamarse C++.

De SQL surge dBase, del cual surgieron copias como por ejemplo Fox, Clipper, RBASE, Oracle, INFORMIX, etc., al conjunto de

estos programas se los denominó 4GL, (Lenguajes de Cuarta Generación).

Actualmente los lenguajes se orientan al contenido multimedia, a internet y los dispositivos móviles.
¿Qué lenguaje de programación estudiar?
Es difícil saber qué lenguaje de programación es útil para aprender, y cuál se
usará más en el futuro. La informática es muy cambiante... ¿quién hubiera
pensado la revolución que causaría internet hace menos de 15 años?. Incluso la
gran red de redes cambió radicalmente los lenguajes que se emplean y que se
emplearán. ¿y la masificación de los celulares?, la programación de aplicaciones
para celulares será muy solicitada en el futuro...

Creo que para elegir los lenguajes de programación más apropiados, uno debe
evaluar la tecnología actual, observar su posible evolución. Por ejemplo,
evidentemente los lenguajes relacionados a la web, (la web en 3D, la animación
web, la interactividad), comienzan a hacerse cada vez más populares por el
aumento en la velocidad de acceso a internet de los usuarios del hogar.

Básicamente, para la web, se debería saber manejar HTML (que no es un lenguaje


de programación), PHP (gratuito) o ASP (de pago), consultas SQL (es lenguaje de
consultas a base de datos) y JavaScript. Las aplicaciones por web comienzan a
ser cada vez más utilizadas.

Para el diseño de gráficos web, Flash y su lenguaje de programación ActionScript,


y Shockwave.

También se pide mucho de Java, que tiene su versión para celulares y dispositivos
móviles llamada J2ME.

En tanto, para las aplicaciones que se instalan en la computadora, Python está


teniendo gran aceptación, pues es fácil de aprender, gratuito y libre. Aunque
también los .NET de Microsoft pisan fuerte también.
¿Qué es un Exabyte?
Unidad de medida informática simbolizada como EB. Un exabyte equivale a 1024 petabytes.

El orden de las unidades de almacenamiento es el siguiente: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte,
Exabyte, Zettabyte, YottaBytee, Brontobyte

Para hacernos una idea recurramos a los petabytes que nos va a facilitar la comprensión.

¿Y Cuanto es un Petabyte?
Pues mil millones de Gigabytes, que se dice pronto. Esto equivaldría más o menos a 3.500.000.000 canciones en mp3, 500.000
de horas de vídeo en DivX.

8 Bits = 1Byte
1024 Bytes = 1 Kilobyte
1024 Kilobytes = 1 Megabyte
1024 Megabytes = 1 Gigabyte
1024 Gigabytes = 1 Terabyte
1024 Terabytes = 1 Petabyte
1024 Petabytes = 1 Exabyte
1024 Exabytes = 1 Zettabyte
1024 Zettabytes = 1 YottaByte
1024 YottaBytes = 1 Brontobyte
1024 Brontobytes = 1 GeopByte
Para hacernos una idea:
El tráfico anual de Internet se estima en entre 5 y 8 exabytes.
El tamaño de Internet (entendido como almacenamiento) se estima en cerca de 500 exabytes.
The Computer Language
Benchmarks Game Help
Compare the performance of ≈30 programming languages
using ≈12 flawed benchmarks and ≈1100 programs

After all, facts are facts,


and although we may quote one to another with a chuckle
the words of the Wise Statesman, 'Lies--damned lies--and statistics,'
still there are some easy figures the simplest must understand,
and the astutest cannot wriggle out of.
Leonard Henry Courtney, 1895

Programming language performance comparisons Z to A

Smalltalk VisualWorks uniform reflective environment - real live objects


Scheme PLT statically-scoped properly tail-recursive dialect of lisp
Scala higher-order type-safe programming for jvm
Ruby MRI programmer fun - everything is an object scripting
JRuby everything is an object scripting for jvm
Ruby 1.9 the new Ruby
CPython uncluttered imperative programming plus objects
Python 3 the new Python
PyPy jit compiler compatible with python 2.5
PHP scripts embedded in html and much more
Perl server-side shell & cgi scripts
Free Pascal imperative programming plus objects
OCaml modular type-safe strict functional programming plus objects
Mozart/Oz multi-multi-multi-paradigm distributed programming
LuaJIT jit compiler fully compatible with lua 5.1
Lua associative arrays for extensible embedded scripting
Lisp SBCL pioneering s-expression oriented programming
JavaScript V8 web-browser embedded scripting
JavaScript TraceMonkey ubiquitous web-browser embedded scripting
Java 6 steady state approximate jvm steady state
Java 6 -Xint ubiquitous bytecode interpreter virtual machine
Java 6 -server ubiquitous jit server virtual machine
Haskell GHC lazy pure functional programming
Go 6g 8g types just are - Go is an experiment
Fortran Intel pioneering numeric and scientific programming
F# Mono higher-order type-safe programming (mono is not ms .net)
Erlang HiPE concurrent real-time distributed fault-tolerant software
C++ GNU c plus objects plus generics
C# Mono oo plus functional style (mono is not ms .net)
Clean lazy & strict pure functional programming
C GNU unchecked low-level programming
ATS dependent types & linear types plus theorem proving
Ada 2005 GNAT large-scale safety-critical software

Benchmarking programming languages?

How can we benchmark a programming language?


We can't - we benchmark programming language implementations.
How can we benchmark language implementations?
We can't - we measure particular programs.
Today's performance comparison.
Read the source code. Contribute faster more elegant programs.
Lenguajes de programación: una comparativa
(más)
miércoles 14 de mayo de 2008

Hoy esto va de informática y lenguajes de programación, así que agárrense.

Algo de lo que quería hablar hace un tiempo es de lenguajes de programación y


comparativas. Concretamente de la lista que se puede encontrar en esta página:
una de las comparativas más extensas (y mejores) sobre lenguajes de
programación con las que he podido dar en la red.

La comparativa está realizada sobre una misma plataforma (gentoo + pentium 4


ó debian + sempron), se han propuesto una serie de problemas algorítmicos (17 en
total) y se han programado, en cada uno de los lenguajes de programación más
famosos las 17 correspondientes soluciones. Es decir, medimos la calidad de los
lenguajes por cómo programas concretos resuelven la solución a
problemas algoritmicos.

Con las implementaciones concretas de la solución a cada problema en cada


lenguaje, se han recogido las siguientes variables:

• Uso de CPU (tiempo de uso del procesador)


• Uso de memoria.
• Longitud del programa, en bytes tras ser comprimido

El resultado muestra una lista de lenguajes de programación ordenada por


puntuación, en la que podemos "valorar" (o "pesar") con cualquier factor cada una
de las tres variables anteriores.

La comparativa, vista en un gentoo + Pentium 4, constata los siguientes hechos


(algunos sorprendentes):

El más rápido de los lenguajes es C++, seguido de C (que es en media, un 110%


más lento). Lenguajes funcionales como Haskell y Ocaml obtienen, con un 150%
y 180% rendimientos superiores o iguales a los de Java (170%) C# con mono
(240%) y por supuesto que los lenguajes de script. Python, Perl, y Ruby son 18,
21 y 56 veces más lentos que C++ según este benchmark. ¡Por cierto! Fortran
(lenguaje del que hablamos hace un tiempo) con G95 es un 320% más lento que
C++. Para que luego hablen maravillas sobre ese engendro diabólico del pasado...

El que menos memoria utiliza es (¡oh cielos!) Pascal, con el compilador Free
Pascal, seguido de C que usa un 160% de la memoria de Pascal. Para llegar a C++
hay que irse a la posición séptima de la lista, con un 240% de memoria. Los
extraños OCaml y Haskell otra vez se posicionan bien (en la lista están los 10 y
14), y Java cae hasta un triste 1700%, superado de forma clara por Python
(690%), Perl (720%) o incluso por Ruby (1400%).

Pero no es oro todo lo que parece. Escribir un programa en Python, Perl o Ruby es
casi la mitad de costoso, en tamaño del código, que hacerlo en C ó C++.
Además, no hay diferencias apreciables entre los tres lenguajes de script. OCaml en
la posición 10 y Haskell en la 18 también superan (usan menos caracteres) a
los lenguajes "tipo C" (c/c++/java/c#).

Conclusión: (casi) nada nuevo bajo el sol: C y C++ son de lo más rápido (y usan
poca memoria) al ejecutar. Con Perl, Python y Ruby se escriben los programas
muy rápido y los lenguajes funcionales son bastante equilibrados en todo.
Respecto a estos últimos, por mi parte ya estoy cacharreando en ellos desde
hace un tiempo (aunque no todo lo que me gustaría).

¿Qué opináis? ¿Echáis en falta algún lenguaje en la lista? ¿Qué usáis vosotros y
por qué? ¿Preferíis sacrificar expresividad por velocidad? ¿Y sobre el uso de
memoria (algo tan sumamente obviado)? ¿Os pica la curiosidad por aprender un
nuevo lenguaje de programación? ¿Os sentíis buenos programadores sabiendo
(sólo) lo que sabéis? ¿No os convence ningún lenguaje? Queda abierta la
discusión...
Comparación de lenguajes de programación

Lenguajes de programación se utilizan para controlar el comportamiento de una máquina (a

menudo a computadora). Como idiomas naturales, los lenguajes de programación se

conforman con las reglas para sintaxis y semántica.

Hay millares de lenguajes de programación[1] y los nuevos se crean cada año. Pocas idiomas

llegan a ser siempre suficientemente populares que son utilizadas por más que algunos personas,

pero mucho profesional programadores utilice las docenas de diversas idiomas durante su

carrera.

Contenido

• 1 Comparación general

• 2 Mecanografíe los

sistemas

• 3 Uso

• 4 Expresividad

• 5 Pruebas patrones

• 6 Vea también

• 7 Referencias

• 8 Acoplamientos

externos

Comparación general

La tabla siguiente compara la información general y técnica para una selección de de uso general

lenguajes de programación. Vea los artículos de las idiomas individuales para la información

adicional. Observe por favor que la tabla siguiente puede faltar una cierta información.

Lengua Paradigma(s) Estandardizado?

ActionScript 3.0 imprescindible, orientado al objeto, event-driven Sí, ECMA

concurrente, distribuido, genérico,


Ada Sí, ANSI, ISO
imprescindible, orientado al objeto

ALGOL 58 imprescindible No

ALGOL 60 imprescindible Sí, ISO

ALGOL 68 concurrente, imprescindible No


APL poner en orden-orientado Sí, ISO

BASIC procesal Sí, ANSI

DICHA procesal No

Boo No

Sí, ANSI C89, ISO


C imprescindible
C90/C99

C++ imprescindible, orientado al objeto, genérico Sí, ISO

imprescindible, orientado al objeto, genérico,


C# Sí, ECMA, ISO
reflexivo

Cromo imprescindible, orientado al objeto, genérico No

Limpio funcional, genérico No

COBOL imprescindible, orientado al objeto Sí

ColdFusion procesal, orientado al objeto No

Lisp común imprescindible, funcional, orientado al objeto Sí

event-driven, funcional, imprescindible,


Enrollamiento No
orientado al objeto, genérico, reflexivo

D imprescindible, orientado al objeto, genérico No

Dylan funcional, orientado al objeto No

Eiffel imprescindible, orientado al objeto, genérico Sí, ECMA, ISO[2]

Erlang funcional, concurrente, distribuido No

Punto de
funcional No
congelación

funcional, orientado al objeto, imprescindible,


F# No
genérico

Adelante imprescindible, apilar-orientado Sí, ANSI

FORTRAN imprescindible, procesal, orientado al objeto Sí

GraphTalk lógica-orientado, orientado al objeto No

imprescindible, orientado al objeto, aspecto-


Maravilloso No
orientado

Haskell funcional, genérico, evaluación perezosa No

Io imprescindible, orientado al objeto No

J poner en orden-orientado, función-nivel, tácito No

imprescindible, orientado al objeto, genérico,


Java No
reflexivo

imprescindible, orientado al objeto, funcional,


Javascript Sí
reflexivo
Alegría funcional, apilar-orientado No

Lisp funcional, reflexivo; otros varían por dialecto solamente lisp común

Lua procesal, imprescindible, reflexivo No

Mathematica funcional, procesal No

M-código de MATLAB imprescindible No

Sí, ISO/IEC 10514-1:


Modula-2 imprescindible, genérico
1996

Modula-3 imprescindible, orientado al objeto, genérico No

Oberon imprescindible, orientado al objeto No

Objetivo-c imprescindible, orientado al objeto, reflexivo Sí

orientado al objeto, funcional, imprescindible,


Caml objetivo No
genérico

PASCAL del objeto


imprescindible, orientado al objeto, genérico No
(Delphi)

lógica, funcional, imprescindible, orientado al


Onza No
objeto, concurrente - multi paradigma

PASCAL imprescindible, procesal Sí

imprescindible, procesal, reflexivo, funcional,


Perl No
orientado al objeto, genérico

PHP imprescindible, orientado al objeto, reflexivo No

Prólogo lógica Sí, ISO

imprescindible, orientado al objeto, funcional,


Python No[3]
aspecto-orientado, reflexivo

imprescindible, orientado al objeto, aspecto-


Rubí No
orientado, reflexivo

Argot imprescindible, procesal No

Scala orientado al objeto, funcional, genérico No

Esquema funcional Sí

orientado al objeto, concurrente, event-driven,


Palique Sí, ANSI
imprescindible, declarativo

Tcl imprescindible, procesal, event-driven No

Básico visual componente-orientado, event-driven No

.NET básico visual orientado al objeto, event-driven No

lógico, orientado al objeto, funcional, event-


Prólogo visual No
driven, imprescindible, declarativo

Windows PowerShell imprescindible, orientado al objeto, funcional, No


tubería, reflexivo

programación del concepto, imperativo (por

XL defecto), orientado al objeto (modelos No

múltiples),

Lengua Paradigma(s) Estandardizado?

Mecanografíe los sistemas


Mecanografíe Mecanografíe la Expresión de Mecanografíe la
Lengua “Compatibilidad”
la fuerza seguridad tipos comprobación

ActionScript 3.0 fuerte seguro estático

Ada fuerte seguro explícito nominativo estático

ALGOL 58 fuerte seguro estático

ALGOL 60 fuerte seguro estático

estático o

dinámico (unión
ALGOL 68 fuerte seguro estructural
marcada con

etiqueta)

APL fuerte seguro dinámico

varía por
BASIC
dialecto

DICHA ningunos n/a n/a n/a n/a

Boo fuerte implícito

C débil inseguro explícito nominativo estático

caja fuerte
explícito, parásitos
(solamente nominativo,
C++ fuerte parcialmente atmosféricos,
inseguros estructural
implícito dinámicos
permitidos)

caja fuerte

(solamente
C# fuerte implícito nominativo estático
inseguros

permitidos)

Limpio fuerte implícito estático

COBOL fuerte estático

ColdFusion débil implícito dinámico

Lisp común fuerte seguro dinámico

implícito,
Enrollamiento fuerte seguro nominativo dinámico, estático
explícito
D fuerte inseguro explícito estático

Dylan fuerte seguro dinámico

Eiffel fuerte seguro nominativo estático

Erlang fuerte dinámico

F# fuerte seguro implícito nominativo estático

Adelante ningunos n/a n/a n/a n/a

FORTRAN fuerte seguro nominativo estático

GraphTalk débil

Maravilloso fuerte seguro implícito dinámico

Haskell fuerte implícito estructural estático

Io fuerte dinámico

J fuerte seguro dinámico

Java fuerte seguro explícito nominativo estático

Javascript débil dinámico

Alegría fuerte seguro dinámico

Lisp fuerte dinámico

Lua fuerte seguro implícito dinámico

Mathematica fuerte dinámico

M-código de
dinámico
MATLAB

caja fuerte

(solamente
Modula-2 fuerte explícito estructural estático
inseguros

permitidos)

caja fuerte

(solamente
Modula-3 fuerte explícito estructural estático
inseguros

permitidos)

Oberon fuerte seguro explícito estático

Objetivo-c fuerte explícito estático

Caml objetivo fuerte seguro implícito estructural estático

caja fuerte

PASCAL del (solamente


fuerte explícito nominativo estático
objeto (Delphi) inseguros

permitidos)

Oxygene fuerte caja fuerte implícito estático


(solamente

inseguros

permitidos)

Onza dinámico

PASCAL fuerte seguro explícito estático

Perl débil implícito dinámico

PHP débil dinámico

Prólogo fuerte dinámico

Python fuerte seguro implícito dinámico

Rubí fuerte implícito dinámico

Argot fuerte seguro dinámico

parcialmente
Scala fuerte estático
implícito

Esquema fuerte dinámico (latente)

Palique fuerte seguro implícito dinámico

Tcl dinámico

Básico visual fuerte seguro nominativo estático

.NET básico
fuerte estático
visual

Prólogo visual fuerte seguro nominativo estático

Windows
fuerte seguro implícito dinámico
PowerShell

XL fuerte seguro nominativo estático

Mecanografíe Mecanografíe la Expresión de Mecanografíe la


Lengua “Compatibilidad”
la fuerza seguridad tipos comprobación

Uso
Lengua Uso previsto Metas del diseño

ActionScript 3.0 Diseño del Web

Usos encajados, en tiempo


Ada Confiabilidad
real

ALGOL Uso Legibilidad, estructura

APL De proceso de datos Brevedad, expresividad

AutoIt Automatización, Scripting Desarrollo muy rápido

BASIC Educación Simplicidad

DICHA Sistema Mecanografíe libremente


Boo Uso Python-como sintaxis, extensibilidad

C Sistema Acceso del nivel bajo, constreñimiento mínimo

C++ Uso, sistema Abstracción, eficacia, compatibilidad

C# Uso Desarrollo rápido del uso

Amplía PASCAL del objeto al trabajo sobre


Cromo Uso
.NET

Limpio General Corrección, modularidad

COBOL Negocio y usos financieros Legibilidad

ColdFusion Desarrollo del Web Desarrollo rápido del uso, facilidad de empleo

Lisp común General Estandardice Lisp

Enrollamiento Usos ricos del Internet Eficacia, compilación rápida, expresividad

D Uso, sistema Compilability, corrección, eficacia

Dinámico pero bien adaptado para el software


Dylan Uso, general
comercial

Eiffel Uso Corrección, eficacia, “diseño por el contrato”

Telecomunicación y usos
Erlang Tolerancia de avería, Scalability
distribuidos

F# Uso

Adelante Uso, sistemas encajados Puestas en práctica compactas

FORTRAN Usos científicos y numéricos Eficacia Runtime, sintaxis simple

GraphTalk

Maravilloso Uso Compatibilidad de JVM

Evaluación perezosa, efecto secundario


Haskell Uso
explícito

Io Uso, Scripting Host-driven

Brevedad, expresividad, manipulación de


J De proceso de datos
datos de gran alcance

“Escriba una vez el funcionamiento


Java Uso
dondequiera”

Tela lateral del cliente


Javascript
scripting

Investigación de la
Alegría Concatenative
programación funcional

Notación simple para el cálculo de la lambda,


Lisp General
Homoiconicity

Lua Scripting Host-driven Pequeño, encajado, configuración.


Cómputo y visualización
Mathematica
numéricos

Cómputo y visualización
M-código de MATLAB
numéricos

Uso, programación de
Modula-2 Módulos de fuente, Co-rutinas, brevedad.
sistemas

Modula-3 Extensión de OO de Modula-2

Uso, programación de Simplicidad, seguridad y eficacia; Simplifed


Oberon
sistemas Tipo-segura Modula-2

El palique tiene gusto, reutilización basada


Objetivo-c Uso
componente del código, compatibilidad de C

Caml objetivo Uso Eficacia, robustez, corrección

PASCAL del objeto Legibilidad, desarrollo rápido del uso,


Uso, sistema
(Delphi) modularidad

Onza Educación

PASCAL Educación Legibilidad, disciplina, modularidad

Perl Proceso de texto, Scripting Brevedad, expresividad

PHP Uso del Web, CLI Robustez y simplicidad

El solucionar de problema,
Prólogo Programación declarativa
inteligencia artificial

Simplicidad, legibilidad, expresividad,


Python Uso, educación, Scripting
modularidad

Desarrollo rápido del uso, simplicidad, Multi-


REALbasic Uso
plataforma

Rubí Uso, Scripting Expresividad, legibilidad

Huella pequeña, caracteres numéricos


Argot Uso, numérico, Scripting
encajados, rápidos

Scala Educación

Esquema General, educación Minimalistic, Scoping léxico

Palique Uso, educación Uniformidad, orientado al objeto puro

SNOBOL Proceso de texto

Tcl Uso, Scripting

Básico visual Uso Desarrollo rápido del uso, simplicidad

.NET básico visual Uso Desarrollo rápido del uso, simplicidad

Aplicabilidad, “una lengua para programarlos


Windows PowerShell Automatización, Scripting
todos”
XL

Lengua Uso previsto Metas del diseño

Lengua Cociente de las declaraciones[4] Alinea cociente[5]

C 1 1

C++ 2.5 1

FORTRAN 2.5 0.8

Java 2.5 1.5

MS básico visual 4.5 ?

Perl 6 6

Palique 6 6.25

Python 6 6.5

Expresividad

La literatura en lenguajes de programación contiene una abundancia de demandas informales

sobre su energía expresiva relativa, pero no hay marco para formalizar tales declaraciones ni para

derivar consecuencias interesantes.[6] Esta carta proporciona dos medidas de expresividad a partir

de dos diversas fuentes. Una medida adicional de expresividad, en los octetos de GZip, se puede

encontrar con Compare a herramienta en El juego de las pruebas patrones del lenguaje de

programación.

Pruebas patrones

Pruebas patrones se diseñan mímico un tipo particular de carga de trabajo en un componente o

un sistema. Los programas de computadora usados para compilar algunos de los datos de la

prueba patrón en esta sección no pudieron haber sido optimizados completamente, y la

importancia de los datos se disputa. Las pruebas patrones más exactas son las que se modifican

para requisitos particulares a su situación particular. Los datos de la prueba patrón de la gente

pueden tener cierto valor a otras, pero la interpretación apropiada trae muchos desafíos. Vea

esto página sobre pruebas patrones y comparaciones dañadas. El juego de las pruebas

patrones del lenguaje de programación el sitio contiene una gran cantidad de micro-pruebas

patrones de los snippets lector-contribuidos del código, con un interfaz que genere varias cartas y

las tablas que comparan lenguajes de programación y tipos específicos de pruebas.


Vea también

• Lista alfabética de lenguajes de programación

• Comparación de instrucciones básicas de lenguajes de programación

• Lenguaje de programación educativo

• Crestomatía del programa

• Lenguaje de programación

Referencias

1. ^ En fecha mayo 2006 Diarmuid Pigott Enciclopedia de los lenguajes de

programación recibido en Universidad de Murdoch, Australia listas 8512 lenguajes

de programación.

2. ^ ECMA-367; ISO/IEC 25436:2006

3. ^ Se hacen los cambios de la lengua usando un procedimiento formalmente

documentado, comenzando con una oferta del realce del Python (PEP) S. Los

lanzamientos de la versión del Python se acompañan con un manual de referencia de la

lengua que demuestra sintaxis y la semántica; una puesta en práctica de la referencia, y

habitación de la prueba. Éstos se utilizan para generar otras puestas en práctica del

Python tales como Jython e IronPython

4. ^ Datos de Cifre completo. Cociente de las declaraciones la columna “demuestra

cocientes típicos de las declaraciones de la fuente en varios idiomas de alto nivel al código

equivalente en la C. Un cociente más alto significa que cada línea del código en la lengua

enumerada logra más que cada línea del código en la C.

5. ^ El cociente de la línea pruebas de la cuenta ganó por cada lengua al número ganado por

C al usar Compare a característica en

http://shootout.alioth.debian.org/debian/c.php. El mayo de 2006 actualizado

pasado. El GCC de C fue utilizado para C, C++ g++ fue utilizado para C++, el FORTRAN

G95 fue utilizado para el FORTRAN, el servidor del JDK de Java fue utilizado para Java, y

el palique GST fue utilizado para el palique.

6. ^ De En la energía expresiva de lenguajes de programación, Matthias Felleisen, 3ro

simposio europeo de ESOP '90 sobre la programación.

Das könnte Ihnen auch gefallen