El blog de Iván Argulo

ASP clásico: ¿un lenguaje de programación viejo para un proyecto moderno?

Internet evoluciona a una velocidad de vértigo. El diseño web de ahora está pasado de moda en menos de un año. Los lenguajes de programación web avanzan tan rápido, que resulta un auténtico desafío mantenerse al paso de las novedades que las grandes corporaciones presentan.

Ante la gran cantidad de opciones que tenemos, debemos ser muy cuidadosos a la hora de elegir un lenguaje de programación web. Y es por eso que muchos desarrolladores y empresas se estancan en un mismo lenguaje, reutilizando una y otra vez componentes, fragmentos de código, incluso ¡páginas enteras!

Quienes hemos elegido la programación como medio de vida (algunos por obligación, muchos por afición), generalmente nos establecemos en una zona cómoda que nos permite programar de forma más o menos rápida con resultados más o menos aceptables. Y es precisamente por esto por lo que muchos programadores y empresas siguen utilizando un lenguaje de programación concreto: ASP clásico (oficialmente llamado ASP 3.0).

Por eso, como programador que soy, cada vez que abro una página escrita en ASP resuena en mi cabeza el título de este artículo. Antes de nada, me gustaría hacer una matización: realmente ASP no es un lenguaje de programación, sino una tecnología que permite crear páginas web dinámicas con una combinación de lenguajes de programación web. Por eso, se puede usar ASP con VBScript, JScript, Perl, Python, Ruby y muchos más. ¡Incluso se puede usar con PHP! Por eso, para hacer honor a la verdad, en este artículo me centraré en la combinación que he usado de forma habitual durante los últimos años, y que es la pareja de batalla elegida por la mayoría de los programadores:: ASP con VBScript.

Los orígenes de ASP

ASP nació como la respuesta de Microsoft a una necesidad: crear páginas web dinámicas. Hasta el momento de su nacimiento (alrededor del año 1996), las páginas web eran poco más que HTML (y se usaban CGI’s para añadir programación del lado del servidor). Por eso, y también en parte por ser una herramienta propietaria de Microsoft, en los 5 años siguientes ASP fue el lenguaje de referencia en el mundo web. Millones de páginas se crearon de esta forma, y fue un amigo inseparable de toda la familia de servidores Windows y su IIS.

La evolución de ASP

En los siguientes 5 años, vieron la luz un total de 3 versiones de ASP. Si bien es cierto que no presentaban grandes mejoras respecto a la versión anterior, cada nuevo release incluía pequeñas funcionalidades que permitían crear páginas web cada vez más complejas. Tal fue el éxito de ASP 3.0 (que nació como tal allá por el año 2001), que Microsoft detuvo y abandonó su desarrollo...

Puede parecer un movimiento ilógico, pero veamos (a mi entender) las razones.

1. El ecosistema de “componentes” alrededor de ASP. Como hemos visto, ASP es un lenguaje muy limitado. Carece de lo más básico, como por ejemplo URLs amigables, subida de archivos y manipulación de imágenes. Debido a ello (y estoy convencido de que Microsoft dejó “cojo” a ASP precisamente por esta razón), muchas empresas crearon “componentes de servidor” que permitían automatizar estos proceso. Claro está, componentes de pago. Su principal defecto se convirtió en su principal virtud, ya que había miles de empresas interesadas en que los programadores usaran ASP.

2. El enorme éxito de ASP. A veces el éxito mata, y esto es especialmente cierto en el mundo de Internet. Con millones de páginas en ASP, cientos de miles de servidores usando Windows (ASP generó cuantiosos beneficios a Microsoft), y las masas pidiendo “más”, el tiro de gracia de ASP llegó en 2002 con el nacimiento de... ASP.NET.

3. El nacimiento de .NET. Hay quien piensa que .NET nació porque ASP no funcionó. Sin embargo, la realidad es muy diferente: el enorme éxito de ASP llevó a la creación de una versión renovada (pero igual en concepto). A diferencia de cualquier otro lenguaje de programación, pero idénticamente a ASP, .NET permite la utilización de lenguajes muy variados: J#, C#, VB.NET... todos ellos invenciones de Microsoft para dar aires renovados a su nuevo entorno.

Estos tres factores nos llevan a una conclusión inevitable: ASP está muerto. ¿O no?

ASP está muerto, pero muy vivo

Y no me refiero a que esté “vivo en nuestros corazones”. La mayoría de los programadores lo recordamos con una mezcla de amor-odio, un sabor agridulce a añoraza de tiempos pasados. Miles de empresas lo utilizan en el día a día y, nos guste o no, Microsoft quiere que lo sigamos usando.

La verdad es que ASP es un lenguaje de programación muy extendido y que además, y contra todo pronóstico, tiene soporte hasta 10 años después del lanzamiento de Windows 8. Y esto no lo acabo de entender. ¿Soporte hasta 2023 para un lenguaje que está abandonado, no evoluciona, y está estancado? Así es, nadie conoce las oscuras intenciones de Microsoft, pero una de ellas no es retirar ASP del mercado.

Por eso, la pregunta final...

¿Debo usar ASP en un proyecto web moderno?

Hasta ahora he expuesto hechos, y alguna que otra deducción basada en evidencias. Pero lo que viene a continuación está basado exclusivamente en mi experiencia y opinión personal.

ASP es un lenguaje cómodo, rápido de aprender, no excesivamente difícil y en el que los resultados se ven desde el primer momento. Por eso, es un lenguaje ideal para iniciarse en esto de la programación web.

Es también un lenguaje en el que se pueden reutilizar amplios fragmentos de código de forma fácil, con un poquito de organización. Por eso, programadores de muchos años lo siguen utilizando, debido a que con su experiencia han desarrollado librerías enteras de código, y lo que es más importante: conocen a la perfección las carencias del lenguaje. Con ASP es muy fácil que un principiante cometa errores dejando graves agujeros de seguridad, pero si eres un programador avanzado te conoces al dedillo la rutina necesaria para cerrarlos. Además tiene graves carencias que hace necesario recurrir a componenentes externos (y de pago) hasta para las tareas más sencillas (enviar un e-mail en HTML, subir un archivo, URLs amigables...).

Por eso mi recomendación si eres un programador aún inexperto es: aprende ASP, programa en ASP, y entonces avanza a un lenguaje mejor. Por lenguaje mejor (nuevamente, esta es una opinión muy subjetiva) me refiero a cualquier lenguaje moderno, o que haya evolucionado con los tiempos: PHP con algún framework de desarrollo, Ruby, e incluso .NET. Claro está, te llevará más tiempo aprender estos lenguajes, pero como resultado serás un programador web más completo, experimentado y capaz.

Sin embargo, si eres un programador experto y te encuentras cómodo desarrollando en ASP, no es realmente necesario que de la noche a la mañana reniegues de él. Pero reciclarse siempre es buena idea, y cuando hayas estado programando unos meses con otro lenguaje sentirás la sensación agridulce de recordar tus años de programación con ASP. Te agradeceré que vuelvas a este blog y compartas tus impresiones con un comentario.