viernes, 17 de agosto de 2012

Python Parte 1

Bueno empezando con esta serie de notas introductorias voy a ir por lo que mas me gusta y divierte.... Python.

Python deberia ser muchas veces la eleccion mas obvia, pero no siempre es asi para todos. A mi me tomo unos cuantos años llegar a este lenguaje. Queme bastante tiempo con PHP, Java, Perl... etc.

Python salio para mi como la respuesta logica que no queria ver. Habia visto su codigo varias veces, sabia que habia hecho mucho en el mundo del software libre y mas en linux. Hace cosa de unos años ya se hizo por primera vez en argentina la PyCon, no puedo decir todo lo agradecido que sigo aun a esta gente por mostrar que es un lenguaje super amigable, claro, ordenado y versatil.

Pero vamos a lo que realmente importa, lo que quieren saber y no leerme durante 20 minutos de mi llegada a esto.



Hay muchas cosas que van a ir descubriendo de python, pero mi recomendacion mas simple es que olviden comparar, que vean esto con los ojos de un chico que descubre, no tengan miedo a experimentar, esa es la base de aprender, no tengan miedo de preguntar que nadie nacio sabiendo.

Python es objetos, en python es todo un objeto, no lo olviden nunca.

Una de las cosas que este lenguaje tiene de maravilloso es que es multi proposito, van a poder ir desde una app de terminal a una con UI o una web con mucha facilidad, sin agregados locos, sin tener que gastar un solo peso para ir un paso mas alla. En python todo suma asi que lo que aprendan siempre lo van a usar... y cuando terminamos de aprender y somos masters of universe en esto... nunca!!!  Eso es otra cosa que tiene, es tan completo, lo que se denomina que tenga las ‘pilas puestas’, que van a encontrar librerias y funciones para todo lo que quieran hacer y siempre va a encontrar algo nuevo y una mejor manera de aboradar un problema para solucionarlo.

Bueno todo muy lindo hasta aca pero ahora seguro que van a decir... este nos sacude con un super IDE, que necesitamos un trillon de gigas y 18 micros... pues no, para poder trabajar con el solo se necesita un editor de textos, si soporta colorear la sintaxis mejor y si tiene autocompletado mejor aun, mi preferencia es NINJA-IDE, es liviano, rapido y se puede usar tanto en entornos linux como en esos otros...

Para poder instalarlo en esos otros S.O. podemos ir a la pagina principal en http://www.python.org y de la seccion download por el modico espacio de 15 megas (aprox) descargan el lenguaje completo, hay instaladores para casi todos los sistemas, no tienen excusas, estan en sus versiones instaladores binarios o si lo prefieren descargar los fuentes tambien pueden hacerlo.

Si el SO que usas es Linux seguro ya dispones de la instalacion o sea que lo unico que te queda por hacer es abrir una terminal y probar de tipear ‘python -V’ para ver que version tienen instalada.

Seria raro que no este instalada pero en el peor de los casos por medio de apt-get, yum o el medio que usen para sus distros van a poder descargarlo.

No voy a detenerme mucho mas en como instalarlo ya que es seguro que esten lo bastante avanzados en estos menesteres si han decidido empezar a programar.

Pero vamos a ser un poco mas formales y  hacer la declaracion de que y como es python:

Segun Wikipedia:

Python es un Lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y multiplataforma.

Y esto quiere decir... bueno primero que no hay que correr un compilador como lo hace Java, C o C++ esto se trata de escribir tu codigo, guardarlo en un archivo y tan simple como hacer python nombre_file.py y veras el resultado en el acto, claro si no hay errores de codigo.
Es verdad, es un lenguaje tan limpio y ordenado que no hace falta mucho para que puedas leer lo que ha escrito otro, en esto hay una serie de documentos que se hacen cumplir de forma muy estricta, el principal se llama o es PEP 8 y este viene a ser como un decalogo de buenas formas de escribir en python y como se debe respetar la sintaxis, si cumplis con esto tenes muchisimo trabajo resuelto, no solo para otros que deban trabajar sobre lo que estes haciendo sino para vos mismo cuando dentro de unos meses debas leer y modificar el codigo.
Multiparadigma... que soporta mas de un estilo de programacion, Orientado a objetos, como dije en python todo es un objeto, esto hace que sea muchisimo mas facil y dispondras de  herencia, abstracción, polimorfismo y encapsulamiento.
Es imperativo por que dice como debe hacer las cosas la maquina, esto es como en la mayoria de las cosa de nuestro equipo
Es interpretado por que necesita de un interprete que haga esa traduccion de lo que hemos escrito a un codigo que la maquina pueda entender y ejecutar.
Es dinámicamente tipado  porque una misma variable puede tomar valores de distinto tipo en distintos momentos.
Es tipado por que el chequeo de tipificación se hace mientras estamos en tiempo de ejecución de nuestra app al contrario de otros lenguajes que lo hacen en tiempo de compilacion.
Y finalmente es multiplataforma por que corre en distintos SO solo debemos tener instalado el interprete correcto para ese SO y nuestro codigo se ejecutara sin modificaciones extrañas.

Bueno si ya se aguantaron leerme esto vamos a lo que cuenta... hagamos nuestro primer HolaMundo...

Abrimos una terminal, para los otros es CMD... en linux basta escribir python y dar enter, deberiamos ver algo asi...

Python 2.7.3 (default, Aug  1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

si estamos en otro SO debemos ir a la carpeta donde esta instalado...

C:\>cd\Python27

C:\Python27>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>

y ahora lo mejor...

tipeamos lo siguiente y pulsamos enter:

print(‘Hola Mundo’)
y obtenemos
Hola Mundo

Bueno hasta aca por hoy... estoy seguro que van a querer saber mas y probar, no me van a querer esperar a que escriba.... le recomiendo que se bajen (es FREE) inmersion en python:
http://code.google.com/p/inmersionenpython3/
Si bien es para la version 3 y estamos probando con 2.7 les va a ser util igual y de paso van a ir acomando para cuando ya se use de manera mas general el 3.0.
Si tiene dudas o demas, consulten si miedo. Tardo en contestar pero contesto !!!
Saludos.

Sitios de interes:
http://www.python.org
http://ninja-ide.org/
http://python.org.ar/pyar/