Pues que theragingche.com ha cambiado de servidor y lenguaje de programación. Si alguien nota algo raro por favor avisar.

El cambio de servidor ha sido porque no conseguí hacer funcionar python en el antiguo así que me mudé al otro servidor que tenemos en ninefortynine. Lo de cambiar a python es un poco más complicado.

Se debe a dos factores: el primero es que PHP me tiene cansado, si te ponés a pensarlo PHP no es propiamente OO, es una chapuza y el segundo es que Python es mucho más que un lenguaje web, sobre lo que hablaré más adelante. PHP es un lenguaje procedural al que en la versión 3 le metieron clases y en la versión 5 le añadieron muchos extras como interfaces y funciones ‘mágicas’, pero no deja de ser un lenguaje procedural con unos cachitos OO pegados al frente. Los nombres de funciones son una mierda, que si tiene o no guión bajo, que si va verbo-sujeto o sujeto-verbo, que si usan ‘to’ o ‘2’. Parecen tonterías, pero yo me paso la mitad del tiempo mirando la documentación para ver en que orden van los parámetros y como se llaman las funciones. Sin embargo estas no son razones suficientes para cambiar de lenguaje, para ello el lenguaje de destino tiene que tener alguna ventaja, y si las tiene.

Tiene orientación a objetos de verdad mucho mejor que la de PHP y una sintaxis mucho más simple y clara. Para mi esas son las mayores ventajas. Es un lenguaje verdaderamente lindo, comparen:

Python

def quicksort(array):
   if array == []:
       return []
   else:
       pivot = array[int(len(array)/2)]
       for i in array:
           less = quicksort([x for x in array[:] if x < pivot])
           equal = [x for x in array[:] if x == pivot]
           more = quicksort([x for x in array[:] if x > pivot])
       return less+equal+more

PHP

function quicksort($array)
{
        if(!count($array))
        {
                return array();
        } else {
                $less = $equal= $more = array();
                $pivot = $array[floor(count($array)/2)];
                for($i=0; $i<count($array); $i++)
                {
                        $a = $array[$i];
                        if ($a < $pivot) $less[] = $a;
                        elseif ($a == $pivot) $equal[] = $a;
                        elseif ($a > $pivot) $more[] = $a;
                }
                return array_merge(quicksort($less),$equal,quicksort($more));
        }
}

Nada de dolares, nada de punto y comas, el . clásico en vez de ->, las llaves se usan para los ‘hash arrays’ llamados diccionarios y los corchetes para los arrays normalitos. Lo único que te pide es que indentes bien, un mal menor para no tener que usar llaves luego de cada estructura. Viene con funciones tan guays como dir() que te dice todas las propiedades y métodos que tiene la variable o el tipo. Funciones ad-hoc en plan JavaScript. Una utilidad de consola mucho más molona que la de PHP. Si es que la lista no termina.

Pero creo que lo que termino por empujarme a aprender Python es el increíble uso que se le está dando dentro de la comunidad Linux, porque no solo es sirve como lenguaje web sino que su uso como lenguaje para aplicaciones tradicionales esta creciendo tanto como C# en esta área, y como me gustaría empezar a aportar algo de vuelta pensé que aprender Python sería un buen comienzo. Sí, PHP se puede usar para escribir aplicaciones tradicionales, pero quién lo usa?

Algunos detalles: estoy usando una versión bastante modificada de web.py (el software de Reddit) como framework y Cheetah para las plantillas.

 

4 Responses to Movidas

  1. Será muy interesante seguir tus comentarios respecto a Python, acá hay otro interesado en probar nuevos sabores. Así que por favor continúa con tu evolución.

    Tengo una pregunta: ¿el CMS del blog, también corre en Python ahora — o es una futura migración?

  2. Hermann says:

    Sip, la versión actual corre sobre Python.

    Intentaré comentar sobre el lenguaje más a menudo.

  3. […] si, me cansé de mantener mi viejo sistema, que en realidad no era tan viejo. Pero me cansé de tener que preocuparme de que si el spam,  que si mi feed de RSS no valida, que […]

  4. […] código python vs php […]

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Set your Twitter account name in your settings to use the TwitterBar Section.