A continuación, se definirán de manera general algunos de los lenguajes de programación Web más populares en el mercado. Algunos de ellos son de carácter privativos, y se requieren la compra de licencia para su uso, o viene incluido en la compra de otro producto; otros por lo contrario pertenecen a la familia del Software Libre, y se rigen por la Licencia GPL (General Public License), y puede ser usado libremente.

 

Según el manual del PHP (2007): “PHP, acrónimo de "PHP: Hypertext Preprocessor", es un lenguaje "Open Source" interpretado de alto nivel, especialmente pensado para desarrollos Web y el cual puede ser embebido en páginas HTML. La mayoría de su sintaxis es similar a C, Java y Perl y es fácil de aprender. La meta de este lenguaje es permitir escribir a los creadores de páginas Web, páginas dinámicas de una manera rápida y fácil, aunque se pueda hacer mucho más con PHP.” [7]

Para explicar que es el PHP, se puede observar éste sencillo ejemplo:

___________________________________________________________________________
<html>

<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
echo "Hola, &iexcl;soy un script PHP!";
?>
</body>

</html>
___________________________________________________________________________

Puede apreciarse que no es lo mismo que un script escrito en otro lenguaje de programación como Perl o C -- En vez de escribir un programa con muchos comandos para crear una salida en HTML, escribimos el código HTML con cierto código PHP embebido (incluido) en el mismo, que producirá cierta salida (en nuestro ejemplo, producirá un texto). El código PHP se incluye entre etiquetas especiales de comienzo y final que nos permitirán entrar y salir del modo PHP.

Lo que distingue a PHP de la tecnología Javascript, la cual se ejecuta en la máquina cliente, es que el código PHP es ejecutado en el servidor. Si tuviésemos un script similar al de nuestro ejemplo en nuestro servidor, el cliente solamente recibiría el resultado de su ejecución en el servidor, sin ninguna posibilidad de determinar qué código ha producido el resultado recibido. El servidor Web puede ser incluso configurado para que procese todos los archivos HTML con PHP. (PHP Manual, 2007)[7].

Según Castillo (2005), PHP funciona de la siguiente forma: “PHP es una extensión para servidores Web. Lo que hace es ponerse "entre" el servidor y el cliente.” [8].

 

Figura 2. Funcionamiento del PHP.
Fuente: Wikilearning (2005).

 

PHP toma código dentro de las páginas, lo ejecuta en el servidor y envía el resultado al cliente. El cliente no puede visualizar el código del programa, sólo su resultado. Además, por ser un lenguaje de scripting, los programas no se compilan, sino sólo se interpretan; esto significa que es más lento en ejecutarse que, por ejemplo, un programa en C, pero al mismo tiempo los cambios en el código PHP tienen efecto de inmediato.

No todos los archivos son interpretados por el plug-in de PHP, sino sólo aquellos que hayan sido definidos en la configuración del servidor como tales, puesto que la interpretación de código es un proceso que toma un tiempo mayor al que se emplea en enviar una página tal como está. Es común utilizar una o varias de las siguientes extensiones para informar al servidor que debe interpretarlas: .php, .phtml, .php3 y .php4. (Castillo, 2005) [8].

Según Wikipedia (2008), “Active Server Pages (ASP) es una tecnología del lado del servidor de Microsoft para páginas Web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). La tecnología ASP está estrechamente relacionada con el modelo tecnológico de su fabricante. Intenta ser solución para un modelo de programación rápida ya que programar en ASP es como programar en VisualBasic.” [9].

(...)

Lo interesante de este modelo tecnológico es poder utilizar diversos componentes ya desarrollados como algunos controles ActiveX. ASP ha pasado por cuatro iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP 2.0 (distribuido con IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la plataforma .NET de Microsoft). Las versiones pre-.NET se denominan actualmente (desde 2002) como ASP clásico.

(...)

En el último ASP clásico, ASP 3.0, hay siete objetos integrados disponibles para el programador, Application, ASPError, Request, Response, Server, Session y ObjectContext. Cada objeto tiene un grupo de funcionalidades frecuentemente usadas y útiles para crear páginas Web dinámicas.

Las páginas pueden ser generadas mezclando código de scripts del lado del servidor (incluyendo acceso a base de datos) con HTML. Por ejemplo:

___________________________________________________________________________

<html>

<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<%if x=1 then%>
<b>X igual a uno</b>
<%else%>
<b>X diferente a uno</b>
<%end if%>
</body>

</html>
___________________________________________________________________________

Se facilita la programación de sitios Web mediante varios objetos integrados, como por ejemplo un objeto de sesión basada en cookies, que mantiene las variables mientras se pasa de página a página.

Desde 2002, el ASP clásico está siendo reemplazado por ASP.NET, que, entre otras cosas, reemplaza los lenguajes interpretados como VBScript o JScript por lenguajes compilados a código intermedio (llamado MSIL o Microsoft Intermediate Language) como Visual Basic, C#, o cualquier otro lenguaje que soporte la plataforma .NET. El código MSIL se compila con posterioridad a código nativo. (...)[9]

A continuación en la figura 3, se muestra un ejemplo gráfico de lo anterior:

Figura 3. Ciclo de vida de una página en ASP.Net.
Fuente: ASP 101. (2006).

 

JavaServer Pages (JSP) es una tecnología Java que permite generar contenido dinámico para Web, en forma de documentos HTML, XML o de otro tipo.Esta tecnología es un desarrollo de la compañía Sun Microsystems. La Especificación JSP 1.2 fue la primera que se liberó y en la actualidad está disponible la Especificación JSP 2.1.

Las JSP's permiten la utilización de código Java mediante scripts. Además es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilización de Librerías de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas. Microsoft, la más directa competencia de Sun, ha visto en esta estrategia de Sun una amenaza, lo que le ha llevado a que su plataforma .NET incluya su lenguaje de scripts ASP.NET que permite ser integrado con clases .NET (ya estén hechas en C++, VisualBasic o C#) del mismo modo que jsp se integra con clases Java.

JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por esto que una página puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una versión en particular de la especificación de servlets. El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario.

JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador).

Figura 4. Arquitectura del JSP.
Fuente: Wikipedia (2008).

 

El rendimiento de una página JSP es el mismo que tendría el servidor equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compilará dinámicamente a código de máquina las partes de la aplicación que lo requieran. Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías Web que ejecutan el código de una manera puramente interpretada. La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo Web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera prolija.

Esto permite separar en niveles las aplicaciones Web, dejando la parte encargada de generar el documento HTML en el archivo JSP. Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que aplicación termine siendo ejecutada en otra. Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas Web dinámicas en servidor usando el lenguaje Java. En ese sentido son similares a otros métodos o lenguajes tales como el PHP, los CGIs (common gateway interface), programas que generan páginas Web en el servidor, o ASP (Active Server Pages), un método específico de Microsoft. Sin embargo, se diferencian de ellos en otras cosas. Para empezar, los JSPs y servlets se ejecutan en una máquina virtual Java, lo cual permite que, en principio, se puedan usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java para él. Cada servlet (o JSP, a partir de ahora lo usaremos de forma indistinta) se ejecuta en su propia hebra, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una petición, sino que persiste de una petición a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa + intérprete).

Su persistencia le permite también hacer una serie de cosas de forma más eficiente: conexión a bases de datos y manejo de sesiones, por ejemplo. Los JSPs son en realidad servlets: un JSP se compila a un programa en Java la primera vez que se invoca, y del programa en Java se crea una clase que se empieza a ejecutar en el servidor como un servlet. La principal diferencia entre los servlets y los JSPs es el enfoque de la programación: un JSP es una página Web con etiquetas especiales y código Java incrustado, mientras que un servlet es un programa que recibe peticiones y genera a partir de ellas una página Web.

Un Ejemplo del código de las JSP's es:

__________________________________________________________________________

<%@ page errorPage="myerror.jsp" %>

<%@ page import="com.foo.bar" %>
<html>
<head>
<%! int serverInstanceVariable = 1;%>
...
<% int localStackBasedVariable = 1; %>
<table>
<tr><td></td></tr>

...
___________________________________________________________________________

Extraído de Wikipedia (2008).[10].

Según Allen (2008), “Perl es un lenguaje de propósito general originalmente desarrollado para la manipulación de texto y que ahora es utilizado para un amplio rango de tareas incluyendo administración de sistemas, desarrollo Web, programación en red, desarrollo de GUI y más. Se previó que fuera práctico (facilidad de uso, eficiente, completo) en lugar de hermoso (pequeño, elegante, mínimo). Sus principales características son que es fácil de usar, soporta tanto la programación estructurada como la programación orientada a objetos y la programación funcional, tiene incorporado un poderoso sistema de procesamiento de texto y una enorme colección de módulos disponibles.”[11]

Para Wikipedia (2008), “La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de código delimitados por llaves, estructuras de control y subrutinas. Perl también toma características de la programación shell. Todas las variables son marcadas con un signo precedente (sigil). Los sigil identifican inequívocamente los nombres de las variables, permitiendo a Perl tener una rica sintaxis. Notablemente, los sigil permiten interpolar variables directamente dentro de las cadenas de caracteres (strings). Como en los shell, Perl tiene muchas funciones integradas para tareas comunes y para acceder a los recursos del sistema. Perl toma las listas del Lisp, hash (memoria asociativa) del AWK y expresiones regulares del sed. Todo esto simplifica y facilita todas las formas del análisis sintáctico, manejo de texto y tareas de gestión de datos.

En Perl 5, se añadieron características para soportar estructuras de datos complejas, funciones de primer orden (p. e. clausuras como valores) y un modelo de programación orientada a objetos. Éstos incluyen referencias, paquetes y una ejecución de métodos basada en clases y la introducción de variables de ámbito léxico, que hizo más fácil escribir código robusto (junto con el pragma strict). Una característica principal introducida en Perl 5 fue la habilidad de empaquetar código reutilizable como módulos. Larry Wall indicó más adelante que "la intención del sistema de módulos de Perl 5 era apoyar el crecimiento de la cultura Perl en vez del núcleo de Perl".

Todas las versiones de Perl hacen el tipificado automático de datos y la gestión de memoria. El intérprete conoce el tipo y requerimientos de almacenamiento de cada objeto en el programa; reserva y libera espacio para ellos según sea necesario. Las conversiones legales de tipo se hacen de forma automática en tiempo de ejecución; las conversiones ilegales son consideradas errores fatales.” (Wikipedia, 2008)[12]

Un ejemplo de la famosa frese: “Hola mundo” en Perl, es el siguiente:

___________________________________________________________________________
#!/usr/bin/perl -w

use strict;

print "¡Hola mundo!\n"; # "\n" es un 'nueva línea'
___________________________________________________________________________

 

A continuación, se especifican algunas diferencias de sintaxis de los lenguajes antes detallados.

Declaración y Asignación de Variables

PHP

Normalmente PHP elegirá un tipo apropiado de acuerdo al contexto para cada variable:
$a = 123; # entero
$a = 123.1; # flotante
$a = "abc"; # string
Los arreglos se denominan $arreglo[indice] en que indice puede ser un entero o un string. Esto permite crear fácilmente arreglos asociativos (tablas de hashing).
$a[0] = "aaa";
$a[1] = 22;
$edad["pedro"] = 30;
$edad["agustin"] = 35;
$direccion["pedro"] = "Las Pataguas 123";

ASP

<%
Dim a,b,c
a = 1
b = 3.34
c = "Hola Mundo"
Response.Write(a & "<br>" & b & "<br>" & c)
%>

JSP

<%!
private int numero = 0;
%>

Perl

my $animal = "camel";
my $answer = 42;
my @animals = ("camel", "llama", "owl");
my @numbers = (23, 42, 69);
my @mixed = ("camel", 42, 1.23);

Estructuras de control

PHP

  • Decisiones

<?php
if ($a > $b) {
print "a es mayor que b";
} elseif ($a == $b) {
print "a es igual que b";
} else {
print "a es mayor que b";
}
?>
<?php if ($a==5): ?>
A es igual a 5
<?php endif; ?>

  • Bucles

<?php
/* ejemplo 1 While */
$i = 1;
while ($i <= 10) {
print $i++; /* el valor impreso ser&iacute;a
$i antes del incremento
(post-incremento) */
}
/* ejemplo 2 While*/
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>
<?php
/* ejemplo 3 Do while */
$i = 0;
do {
print $i;
} while ($i>0);
?>
<?php
/* ejemplo 4 for */
for ($i = 1; $i <= 10; $i++) {
print $i;
}
/* ejemplo 5 for */
for ($i = 1; ;$i++) {
if ($i > 10) {
break;
}
print $i;
}
?>
<?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>\n";
}
foreach ($arr as $value) {
echo "Value: $value<br>\n";
}
?>

ASP

  • Decisiones

<%
Dim a,b
a = 8
b = 3
if a < b then
Response.Write("a es menor que b")
else
Response.Write("a no es menor que b")
end if
%>
<%
Dim posicion
posicion = "arriba"
select case posicion
case "arriba" ' Bloque 1
Response.Write("La variable contiene")
Response.Write(" el valor arriba")
case "abajo" ' Bloque 2
Response.Write("La variable contiene")
Response.Write(" el valor abajo")
case else ' Bloque 3
Response.Write("La variable contiene otro valor")
Response.Write(" distinto de arriba y abajo")
end select
%>

  • Bucles

<%
Dim i
i=0
while i<10
Response.Write("El valor de i es " & i & "<br>")
i=i+1
wend
%>
<%
Dim i
for i=0 to 9
Response.Write("El valor de i es " & i & "<br>")
next
%>

JSP

  • Decisiones

<%
if (Math.random() < 0.5) {
%>
Have a <B>nice</B> day!
<%
} else {
%>
Have a <B>lousy</B> day!
<%
}
%>

  • Bucles

<%
NumberFormat fmt = new DecimalFormat("##0.000" );
for (int f=32; f<=212; f+=20) {
double c=((f-32)*5)/9.0;
String cs=fmt.format(c);
%>
<TR><TD ALIGN="RIGHT"> <%=f %> </TD><TD ALIGN="RIGHT"> <%=cs %>
</TD></TR>
<%
}
%>

Perl

  • Decisiones

if ( condition ) {
...
} elsif ( other condition ) {
...
} else {
...
}

  • Bucles

while ( condition ) {
...
}
for ($i = 0; $i <= $max; $i++) {
...
}
foreach (@array) {
print "This element is $_\n";
}

Comentarios

PHP

<?
echo( "Hello World" )
/* comentario de
varias líneas */
//comentario de una línea
?>

ASP

<%
dim contar 'Definimos una variable.
'Hacemos un bucle en el cual la variable se incrementará hasta 10.
FOR contar = 1 to 10
'imprimimos el valor actual de la variable.
Response.Write (contar & " ")
Next
%>

JSP

• Sólo visibles en página JSP
<%-- Comentario JSP oculto en HTML generado --%>
• Visibles en HTML generado
<!– Incluido en el HTML generado --%>
<!-- La dirección es <%= request.getRemoteAddr() %> -->

Perl

# Esto es un comentario

 


1
Hosted by www.Geocities.ws