Contenido

Pycript, el javascript con sabor a Python

15 ene

+ 8

Si conoces Python habrás notado que la generación de código limpio es una norma muy inculcada en la filosofía del lenguaje. Esto ayuda sustancialmente a la creación de un código que prácticamente todo aquel que haya desarrollado alguna en Python podrá entender (aunque tambien se pueden hacer desastres :D).

Por el contrario, Javascript, es archiconocido por la filosofía de minimizar, hacer todo en el menor número de líneas posibles, esto tiene sentido ya que el lenguaje ha de viajar hasta el cliente y allí ejecutarse. De esta forma, todo lo que podamos bajar, son bytes de menos que enviar.

Aza Raskin se ha propuesto unir estas dos filosofías e implementar Pyscript, una implementación en Javascript que nos permite desarrollar en Javascript usando la sintaxis de Python [Ver Demo]

// Pyscript
function triangle(a,b):
  if a > 0 && b > 0:
    function sqroot(x):
      if x > 0:
        return Math.pow(x,.5)
      else:
        return 0
    return sqroot( a*a + b*b )
  else:
    return 0
// Javascript
function triangle(a,b){
  if(a > 0 && b > 0 ){
    function sqroot(x){
      if( x > 0 ){
        return Math.pow(x,.5);
      }
      else {
        return 0;
      }
    }
    return sqroot( a*a + b*b );
  }
  else {
    return 0;
  }
}


¿Como usarlo?

Se trata de un fichero .js que podemos descargar directamente desde aquí y que nos permitirá incluir código Pyscript en unos tags personalizados para dicho código.

<script src="pyscript.min.js"></script>

Una vez añadido este código, ya podremos generar nuestros bloques de código.

<script id="input" type="text/pyscript">
  var el = document.getElementById("string")
  for var i=0; i<5; i++: el.innerHTML += "hello! "

  var count = 0
  for var i=0; i<5; i++:
    count += 1
    if count==2:
      count *= 5

  document.getElementById("count").innerHTML = count;    

  function triangle(a,b):
    function sqroot(x): return Math.pow(x,.5)
    return sqroot( a*a + b*b )

  document.getElementById("triangle").innerHTML = triangle(3,4);
</script>

Como experimento es muy interesante, pero por el momento no debería tomarse más enserio debido a que la filosofía de Javascript (que hemos visto antes) es así por algo, las conexiones más lentas lo agradecerán :D

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.