Incluso los menos
amañados en el mundo de la programación seguramente hemos escuchado aunque sea remotamente disputas sobre lenguajes de programación, cosas del tipo
Fortran es mejor que C, ó
Cobol te permite…, (¡Sigamos! que puedo pegarme todo el post con frases de este tipo xD ); incluso sin conocer los nombres de esos lenguajes de programación con un par de minutos de escucha ya sabremos que es lo que se cuece y una cosa es seguro cuando alguien defiende un lenguaje es poco probable que le hagan cambiar de opinión así que en este post trataremos Python y Java desde un punto de vista productivo, y ver ambas como herramientas las cuales deberíamos usar según nuestras necesidades y/o nuestros objetivos; esto que les cuento en parte me lo ha transmitido
Stephen Ferg el escritor de un articulo que me ha dado la inspiración y me ha dado ese empujón que muchas veces nos hace falta para plasmar y reafirmar ideas que desde hace tiempo, quizás nos hubiese gustado gritar xD (ha hablado mi lado espiritual).
Comencemos hablando de estos dos gigantes: Python y Java. El primero de estos es un lenguaje de programación interpretado y esta entre nosotros desde 1990 y nos da muchas facilidades para comenzar ya que hay muchas cosas hechas que nos pueden servir como ejemplo ó como material para nuestro proyecto. Java esta inspirado en la sintaxis de C++ y nace casi al mismo tiempo que su colega Python aunque a partir de 1995 fue cuando empezó su mayor popularidad, es compilado e interpretado.
En cuanto a estos dos lenguajes lo que al parecer no hay duda es que Python es mucho más productivo que Java:
+ En Java los nombres de variable incluyendo tipos deben ser declarados explícitamente y esta claro que si asignamos un objeto de tipo incorrecto esto generara un error o “excepción de tipo”(hablando con mas propiedad); en cambio en Python no necesitamos declarar nada podemos asignar a una variable un objeto y luego asignarle otro de un tipo diferente. Esta diferencia hace que hablemos de “
estáticamente mecanografiada” (Java) y “
dinámicamente mecanografiada” (Python).
+ Python es mas conciso, necesita menos palabras para realizar una tarea donde Java requeriría muchas mas palabras. El clásico “Hola mundo” en estos lenguajes seria:
Java:
public class HelloWorld{public static void main (String[] args) { System.out.println("Hello, world!");
}}Mientras que en Python:
print "Hello, world!"+ Imaginemos que tenemos una clase a la que se le pueden pasar 1 ó 2 ó 3 argumentos en Java tendremos que crear 3 constructores para dicha clase mientras que Python solo 1 constructor con valores defaults para los argumentos opcionales.
+ De forma general en Java los caracteres de control
( ) { } ; se tienen que usar probablemente en cada sentencia y sino un ultimo ejemplo:
if ( a > b ){ a = b; b = c;} Vs. if a > b : a = b b = cEstas son algunas de las cosas por la que el Ferg en su articulo, califica a Python como un lenguaje de 5 a 10 veces mas pruductivo que Java.
Mas información.En conclusión y a mi parecer, lenguajes como Python nos dan la ventaja de tener que teclear menos, el ahorro considerable esta en el tiempo que necesitamos para realizar la misma aplicación en uno y en otro. Aunque yo con mi poca experiencia me decante mas por lenguajes compilados pienso que deberíamos tener claro que cada lenguaje es una herramienta que debemos tener en nuestro cajón y no cerrarnos a usarla en circunstancias graves ó no tan graves, pienso que todo programador no deberia depender exclusivamente de un lenguaje para crear una aplicación... Bueno y ¿Ruby?...