Una de las cualidades más importantes que puede tener un lenguaje de programación, una plataforma de desarrollo o un framework, es el nivel de suckaje, o falta de, que presenta.

Obviamente, hay lenguages que suckean más que otros, pero lamentablemente el suckaje es uno de esos adjetivos subjetivos dificiles de explicar, cuantificar o calificar.

No tiene que ver con la imposibilidad de atacar ciertos problemas. Despues de todo, el pobre Alan Turing pasó demasiado tiempo demostrando que prácticamente cualquier lenguaje es Turing-completo (si alguién sabe la traducción apropiada de este término, que deje un comentario) y por lo tanto puede ser empleado para proveer soluciones equivalentes a las de cualquier otro lenguaje.

Pero cualquier persona que haya experimentado con más de un lenguaje o ambiente de desarrollo sabe que no son todos iguales, que los hay unos mejores que otros, aun cuando no puedan explicar por qué es mejor. Siempre hay uno que es más eficiente, más bonito, más compacto, más legible, más expresivo, más rápido, más cómodo, tiene más librerías, mas ejemplos o mejor documentación que el otro; aunque pocas veces uno es mejor que el otro en todas las categorías al mismo tiempo.

Assembler es mejor que cualquier otro lenguaje a la hora de obtener el máximo rendimiento. Java ofrece mejor portabilidad. Los lenguajes interpretados ofrecen ciclos de desarrollo más rápidos. PHP está disponible en todos lados. Lisp tiene más paréntesis y C tiene más puntos y comas. Perl tiene más librerías y Ruby es más cool.

El mejor lenguaje depende de los requerimientos de la situación, lo que nos permite definir el concepto de suckaje relativo como la diferencia entre las necesidades dictadas por un problema específico, y la conveniencia de la herramienta para resolverlo. Cada combinación de problema y herramienta posibles tiene su propio indice de suckaje relativo. Clavos con martillos, suckean prácticamente cero. Tornillos y martillos suckean un poco. Tuercas y martillos empiezán a aproximarse a un nivel de suckeo considerable. Y Tuercas con coca cola poseen un alto nivel, a menos que seas Bender.

El promedio ponderado de los suckajes relativos para un lenguaje cualquiera dados todos los posibles problemas y la frecuencia de su ocurrencia en el mundo real es lo que determina el suckaje absoluto. Pero como muchos otros conceptos teóricos, es un objetivo imposible de alcanzar.

Lo que nos lleva a la idea del suckaje estimado, mejor conocido como simple suckaje, que no es más que la recolección de suckajes relativos a los que ha sido expuesta una persona en particular –generalmente denominada sucker o suckeador– extrapolados con la expectativa futura de frecuencia de problemas específicos.

La comunidad académica ha establecido reglas y convenciones sobre el uso de estos valores estimados. Hay dos críterios en particular que merecen atención: para ser considerado como suckeador válido, una persona debe de haber escrito al menos 10.000 lineas de código con un lenguaje en particular, resolviendo dos problemas diferentes, antes de poder emitir un criterio de suckaje relativo para dicho lenguaje. Y la primera persona en una comunidad específica en establecer el suckaje relativo de un lenguaje también establece la aproximación universalmente aceptada para el suckaje absoluto de dicho lenguaje para la comunidad en cuestión.

Habiendo establecido y explicado todos estos conceptos, solo me queda terminar con unas breves palabras:

PHP sucks = 0.9 (1), Flash sucks = 0.95, Java sucks = 0.51, Perl sucks = 0.50, Ruby rulez = 0.98 (2)

Muchas gracias por su atención.

1: El suckaje es generalmente expresado con un número real entre 0 y 1. El valor de 1 representa un nivel de suckaje completo y total que es imposible de alcanzar, mientras que el valor de 0 caracteriza la falta absoluta de suckaje.
2: En la literatura técnica, el concepto de rulizmo es considerado como inversamente proporcional al suckaje: rulez = 1/sucks.


9 Respuestas a “Sobre las aspiraciones de lenguajes y otros temas incidentales”

  1. 1 Edgar González

    Cuando deje de reirme veré si te comento algo inteligente :-)

  2. 2 Andres

    Por un momento pensé en calcular el nivel de SUKAJE de FORTRAN77 pero se lo dejo a los más entendidos… :7)

  3. 3 Aníbal Rojas

    ¿Suckea la Máquina de Turing? ¿Es el sucking finito? ¿Es la suma de sucks cerrada?

  4. 4 Matías

    Faltaría aclarar si estás citando el suckaje absoluto o relativo de cada lenguaje. Supongo que sería el relativo.

    Por otro lado la definición de rulez no está completa. Si suponemos las mismas condiciones que sobre “sucks” entonces está mal hecha. Porque si “rulez” está entre 0 y 1. Quiere decir que sucks es mayor o igual a 1. Si por el contrario, nos guiamos en la definición de “sucks”. Rulez estaría definida de 1 en adelante, donde lo más chico es lo peor (si sucks = 1 es lo peor, rulez = 1 es lo peor). Por lo que acabas de dispararte en el pie diciendo que Ruby rulez 0.98 ya que sería peor que lo peor :p.

    Estoy totalmente consciente de que no es lo que quisiste decir. Por lo que yo redefiniría rulez como 1 - sucks o simplemente aclararía que no hay un límite para que algo “rulee” ;)

    Si, soy molesto. Pero el aire del post daba para esto. Perdón si no :P

  5. 5 KodeGeek

    Lo de Suckear me parece un termino insuficiente, ya que ningun lenguaje es perfecto y lo de ser malo para una tarea es precisamente lo que hace a los lenguajes buenos para una situacion y malos para otra. El siguiente articulo (en el cual explican muy bien porque Ruby no puede aspirar a reemplzarar a Java):

    http://www.enterprisej2me.com/blog/java/?postid=145

    Explica bastante claro el porque ningun lenguaje reemplaza a otro, sino que vienen a satisfacer nuevas necesidades. Lo otro es que dudo mucho que Java se quede quieto, tal y como lo explica el autor.

    Finalmente, Ruby no soluciona nada que Python, Java o Perl no esten haciendo ya (proporciona sin embargo un entorno facil para ahcer aplicaciones web las cuales requieren acceso a bases de datos). Un entorno facil de usar? Busquen con Google y van a ver muchos imitadores en otros lenguajes, incluso en Java.

    De hecho, esto es lo que pienso del indice de “suckear” (dios mio, matando al Castellano a carajasos):

    Bad Programmer = Sucks++

  6. 6 BrainX

    Jummm… Vamos a tratar de no escribir todo lo que he pensado.

    De repente me imagine a una congregacion de “programadores” con pancartas y haciendo grafitis, a la cyberpunketos escribiendo “R00BY R00L2″ por toda la ciudad x’D eso fue realmente comico.

    Ahora, yo todavia digamos que no estoy muy familiarizado con la vaina… No he visto todavia una aplicacion en Ruby 100% implementada y corriendo en el mundo real.

    Pero bueno, para no caer en problemas de politicos, que si el rojo es mas bonito que el negro porque es el color de la gema que me gusta, etc…

    Como dijo otro amigo en un comment, quien la caga no es el lenguaje… es el programador.

    Hasta no hace mucho las aplicaciones bancarias estaban hechas en COBOL, si no me equivoco. Tambien he visto vainas hechas en FOXPRO corriendo en una que otra empresa GRANDE con bases de datos enormemente groseras.

    De paso, hace un tiempo no muy lejano la fiebre era un lenguaje por ahi que tenia que ver con una culebra… Ahora, mi pregunta es: No sera que ahora la gente anda fiebrua con la vaina de la piedrita roja?

    Espero estarme equivocando y no ver rodar cabezas (porque podria morir de la risa).

    Ah por cierto… a los que son “resteaos” y “rulean” burda, que tal si se programan alguito en BrainFuck?
    http://en.wikipedia.org/wiki/Brainfuck

    Saluts.

    P.D: Me estan sacando la piedra* (x’D jaja)

  7. 7 RomRod

    como dice el dicho, uno puede escribir Fortran en cualquier lenguaje…

  8. 8 peter

    mire chicos yo les envio este email para que me digan donde puedo hospedar mi pagia web ..

  9. 9 peter

    que les puedo yo enviar ????


RSS feeds

Suscríbete a nuestros RSS Feeds