Cargando



Python - Extendiendo el Lenguaje

En este tutorial veremos un poco como es la arquitectura en Python cuando decidimos escribir algunos componentes en otros lenguajes de forma de acelerar el rendimiento sin tener que renunciar a la facilidad de escritura de nuestro lenguaje.


feb 16 2014 18:28
Profesional
Python está hecho para ser fácilmente entendido por los programadores, esto ayuda a que la velocidad de desarrollo sea multiplicada por cada programador involucrado en nuestros proyectos, sin embargo como todo en la vida por alguna ventaja tendremos una desventaja, tal vez para el día a día trabajando con Python solo sea ventajas, sin embargo existen algunas situaciones en las cuales el rendimiento de de este no será suficiente, como por ejemplo en simulaciones altamente complejas, en renderizado de gráficos, etc.

Para recuperar terreno y derrotar estas desventajas, Python nos permite desarrollar en otros lenguajes como C la escritura de pequeñas piezas que podemos utilizar para sobreponernos a los cuellos de botella de rendimiento.

Jython y IronPython

Estas dos implementaciones nos permiten acceder de forma muy sencilla a módulos de JAVA para Jython o de C# en .NET Para IronPython, esto hace que sencillamente implementemos los módulos y las clases que necesitemos y como por arte de magia pasen a formar parte de nuestro software sin mayores traumas.

Veamos un ejemplo para Jython, en el siguiente código escribiremos una clase en JAVA:

public class JythonTest {
   public void greeting() {
	  System.out.println("Hello, world!");
   }
}


Podemos ver en el ejemplo que no es más que una simple clase con un método void que nos retorna una impresión de un mensaje, en este caso el icónico Hello, world!, ahora en la siguiente imagen veremos cómo podemos hacer el llamado a este código desde nuestra consola de Python con Jython:

python_extendido.jpg


Observamos en este caso que la importación se hizo como si otro módulo de Python se tratase, esto nos da una gran ventaja, imaginemos que todos los métodos que necesitamos ya están hechos, sería un desperdicio de tiempo volver a hacerlos solo para cumplir con la estructura de Python, sin embargo al poder importarlos de esta forma ya nos habremos ahorrado unas cuantas horas de trabajo y sufrimiento.

Cuando trabajamos con IronPython sucede algo similar al momento de importar un código hecho en C#, veamos el siguiente ejemplo en código:

using System;
namespace FePyTest {
   public class IronPythonTest {
	  public void greeting() {
		 Console.WriteLine("Hello, world!");
	  }
   }
}

Como vemos es sencillamente el mismo ejemplo anterior solo que esta vez seguimos las directrices de C#, una de las partes más características es el uso de un namespace, veamos en la siguiente imagen como nos quedaría el ejemplo al llamar este método desde la consola de Python:

python_extendido2.jpg


Acá vemos como llamamos a nuestro módulo sys, lo que nos permite cargar el archivo C# compilado en una librería DLL, luego importamos el namespace de la clase, instanciamos la misma y al final hacemos el llamado al método.

Con esto vimos cómo lograr extender Python, donde no solo dependemos de su simpleza a la hora de desarrollar, sino que también apelamos a su inteligencia al permitirnos tomar la fortaleza de otros lenguajes de forma que podemos cubrir sus debilidades y ampliar de manera extensa los límites de su funcionalidad y versatilidad.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X