Post on 02-Jul-2015
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áquina2) 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 lenguajesPor 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ónPor 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 AjaxPor 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 abiertos2. Usabilidad3. Válido en cualquier plataforma y navegador4. Beneficia las aplicaciones web5. No es dificil su utilización6. Compatible con Flash7. Adoptado por los “gordos” de la tecnología web8. Web 2.09. Es independiente del tipo de tecnología de servidor que se utilice10. 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 = 1Byte1024 Bytes = 1 Kilobyte1024 Kilobytes = 1 Megabyte1024 Megabytes = 1 Gigabyte1024 Gigabytes = 1 Terabyte1024 Terabytes = 1 Petabyte1024 Petabytes = 1 Exabyte1024 Exabytes = 1 Zettabyte1024 Zettabytes = 1 YottaByte1024 YottaBytes = 1 Brontobyte1024 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 HelpCompare 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
Adaconcurrente, distribuido, genérico,
imprescindible, orientado al objetoSí, ANSI, ISO
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
C imprescindibleSí, ANSI C89, ISO
C90/C99
C++ imprescindible, orientado al objeto, genérico Sí, ISO
C#imprescindible, orientado al objeto, genérico,
reflexivoSí, ECMA, ISO
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í
Enrollamientoevent-driven, funcional, imprescindible,
orientado al objeto, genérico, reflexivoNo
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
congelaciónfuncional No
F#funcional, orientado al objeto, imprescindible,
genéricoNo
Adelante imprescindible, apilar-orientado Sí, ANSI
FORTRAN imprescindible, procesal, orientado al objeto Sí
GraphTalk lógica-orientado, orientado al objeto No
Maravillosoimprescindible, orientado al objeto, aspecto-
orientadoNo
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
Javaimprescindible, orientado al objeto, genérico,
reflexivoNo
Javascriptimprescindible, orientado al objeto, funcional,
reflexivoSí
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
Modula-2 imprescindible, genéricoSí, ISO/IEC 10514-1:
1996
Modula-3 imprescindible, orientado al objeto, genérico No
Oberon imprescindible, orientado al objeto No
Objetivo-c imprescindible, orientado al objeto, reflexivo Sí
Caml objetivoorientado al objeto, funcional, imprescindible,
genéricoNo
PASCAL del objeto
(Delphi)imprescindible, orientado al objeto, genérico No
Onzalógica, funcional, imprescindible, orientado al
objeto, concurrente - multi paradigmaNo
PASCAL imprescindible, procesal Sí
Perlimprescindible, procesal, reflexivo, funcional,
orientado al objeto, genéricoNo
PHP imprescindible, orientado al objeto, reflexivo No
Prólogo lógica Sí, ISO
Pythonimprescindible, orientado al objeto, funcional,
aspecto-orientado, reflexivoNo[3]
Rubíimprescindible, orientado al objeto, aspecto-
orientado, reflexivoNo
Argot imprescindible, procesal No
Scala orientado al objeto, funcional, genérico No
Esquema funcional Sí
Paliqueorientado al objeto, concurrente, event-driven,
imprescindible, declarativoSí, ANSI
Tcl imprescindible, procesal, event-driven No
Básico visual componente-orientado, event-driven No
.NET básico visual orientado al objeto, event-driven No
Prólogo visuallógico, orientado al objeto, funcional, event-
driven, imprescindible, declarativoNo
Windows PowerShell imprescindible, orientado al objeto, funcional, No
tubería, reflexivo
XL
programación del concepto, imperativo (por
defecto), orientado al objeto (modelos
múltiples),
No
Lengua Paradigma(s) Estandardizado?
Mecanografíe los sistemas
LenguaMecanografíe
la fuerza
Mecanografíe la
seguridad
Expresión de
tipos“Compatibilidad”
Mecanografíe la
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
ALGOL 68 fuerte seguro estructural
estático o
dinámico (unión
marcada con
etiqueta)
APL fuerte seguro dinámico
BASICvaría por
dialecto
DICHA ningunos n/a n/a n/a n/a
Boo fuerte implícito
C débil inseguro explícito nominativo estático
C++ fuerte
caja fuerte
(solamente
inseguros
permitidos)
explícito,
parcialmente
implícito
nominativo,
estructural
parásitos
atmosféricos,
dinámicos
C# fuerte
caja fuerte
(solamente
inseguros
permitidos)
implícito nominativo estático
Limpio fuerte implícito estático
COBOL fuerte estático
ColdFusion débil implícito dinámico
Lisp común fuerte seguro dinámico
Enrollamiento fuerte seguroimplícito,
explícitonominativo dinámico, estático
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
MATLABdinámico
Modula-2 fuerte
caja fuerte
(solamente
inseguros
permitidos)
explícito estructural estático
Modula-3 fuerte
caja fuerte
(solamente
inseguros
permitidos)
explícito estructural estático
Oberon fuerte seguro explícito estático
Objetivo-c fuerte explícito estático
Caml objetivo fuerte seguro implícito estructural estático
PASCAL del
objeto (Delphi)fuerte
caja fuerte
(solamente
inseguros
permitidos)
explícito nominativo estático
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
Scala fuerteparcialmente
implícitoestático
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
visualfuerte estático
Prólogo visual fuerte seguro nominativo estático
Windows
PowerShellfuerte seguro implícito dinámico
XL fuerte seguro nominativo estático
LenguaMecanografíe
la fuerza
Mecanografíe la
seguridad
Expresión de
tipos“Compatibilidad”
Mecanografíe la
comprobación
UsoLengua Uso previsto Metas del diseño
ActionScript 3.0 Diseño del Web
AdaUsos encajados, en tiempo
realConfiabilidad
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
Cromo UsoAmplía PASCAL del objeto al trabajo
sobre .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
Dylan Uso, generalDinámico pero bien adaptado para el software
comercial
Eiffel Uso Corrección, eficacia, “diseño por el contrato”
ErlangTelecomunicación y usos
distribuidosTolerancia de avería, Scalability
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
Haskell UsoEvaluación perezosa, efecto secundario
explícito
Io Uso, Scripting Host-driven
J De proceso de datosBrevedad, expresividad, manipulación de
datos de gran alcance
Java Uso“Escriba una vez el funcionamiento
dondequiera”
JavascriptTela lateral del cliente
scripting
AlegríaInvestigación de la
programación funcionalConcatenative
Lisp GeneralNotación simple para el cálculo de la lambda,
Homoiconicity
Lua Scripting Host-driven Pequeño, encajado, configuración.
MathematicaCómputo y visualización
numéricos
M-código de MATLABCómputo y visualización
numéricos
Modula-2Uso, programación de
sistemasMódulos de fuente, Co-rutinas, brevedad.
Modula-3 Extensión de OO de Modula-2
OberonUso, programación de
sistemas Tipo-segura
Simplicidad, seguridad y eficacia; Simplifed
Modula-2
Objetivo-c UsoEl palique tiene gusto, reutilización basada
componente del código, compatibilidad de C
Caml objetivo Uso Eficacia, robustez, corrección
PASCAL del objeto
(Delphi)Uso, sistema
Legibilidad, desarrollo rápido del uso,
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
PrólogoEl solucionar de problema,
inteligencia artificialProgramación declarativa
Python Uso, educación, ScriptingSimplicidad, legibilidad, expresividad,
modularidad
REALbasic UsoDesarrollo rápido del uso, simplicidad, Multi-
plataforma
Rubí Uso, Scripting Expresividad, legibilidad
Argot Uso, numérico, ScriptingHuella pequeña, caracteres numéricos
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
Windows PowerShell Automatización, ScriptingAplicabilidad, “una lengua para programarlos
todos”
XL
Lengua Uso previsto Metas del diseño
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
LenguaCociente 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
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.