Opiniones sobre Python

71 views
Skip to first unread message

Dámaso

unread,
Nov 27, 2015, 2:20:03 PM11/27/15
to improve-...@googlegroups.com
Buenas tardes tengan todos,

Por estos dias y por exigencias de mi trabajo estoy empezando a programar en Python. Me gustaria escuchar (y me seria muy util tambien, por supuesto) que piensan de este lenguaje.

Ya yo he encontrado varios libros y muchos links acerca de Python pero como ustedes bien conocen, en esta profesion, los resultados siempre se necesitan para "ayer". Lo que se traduce en que no hay tiempo para leer ni tan siquiera uno de esos libros para entonces empezar a programar.

Por todo esto, repito, me seria muy util escuchar sus opiniones. Opiniones en general, nada especifico por ahora. Ya tendre mas dudas cuando me meta mas en el.

Gracias,

Damaso


Carlos@GMail

unread,
Nov 27, 2015, 2:52:34 PM11/27/15
to improve-...@googlegroups.com
Python 2.7.x o 3.x?


Saludos,
--

---
Has recibido este mensaje porque estás suscrito al grupo "Improve your code" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a improve-your-c...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Dámaso

unread,
Nov 27, 2015, 2:57:59 PM11/27/15
to improve-...@googlegroups.com
Python 2.7

gracias

Oscar Enrique Fraxedas Tormo

unread,
Nov 27, 2015, 4:04:12 PM11/27/15
to improve-...@googlegroups.com

Cada vez que necesito aprender una nueva tecnologia o lenguaje voy a http://www.pluralsight.com/
En 5 horas puedes estar "up and running" con un conocimiento basico.

Regards,
Oscar Fraxedas

Joseph Poozhikunnel

unread,
Nov 27, 2015, 4:19:57 PM11/27/15
to Improve
Python is a great language in terms of string operations and the same program will runs on Mac, Windows or Linux.

Positional delimiting is the only gripe. But maybe you can look at it as a neat indentation for code readability. 

Ernesto Freyre

unread,
Nov 27, 2015, 4:25:17 PM11/27/15
to improve-...@googlegroups.com
Python es un excelente lenguaje de programacion. Lo mismo para hacer scripts de automatizacion, para DSL, para desarrollo web (Django) o para calculo numerico (numpy, scipy) simplemente muy versatil, facil de aprender. multiplataforma si tienes linux o os x probablemente ya este instalado.

El REPL te permite probar codigo rapidamente sin necesidad de compilacion (Ahi te recomendo ipython) y existen literalmente miles de librerias opensource para todo lo que quieras hacer.

Orientado a objetos, dinamic-typing y algunos aspectos de programacion funcional.

En el tema de organizacion de codigo con la indentacion hay opiniones divididas, algunos a favor o en contra. IMHO Indentacion es un plus, mucho mas legible y facil de expresar intencionalidad cuando se anida codigo.

Ej.

Java, C#, C, C++, Javascript, todos puedes hacer esto sin problemas:

ifMethod('some params');
    thenDoThis('other params');

Cuando en realidad ambas instrucciones son independientes una de otra.

En Python esto representaria un error de sintaxis.

Tambien notaras que muchos servicios cloud que incluyen Libs para sus APIs siempre incluyen una version Python.

Saludos

Ernesto


Ramon Araujo

unread,
Nov 29, 2015, 2:30:19 AM11/29/15
to improve-your-code
Pedrito (Damaso),

Otras recomendaciones desde el punto de vista aprender rapido (como la de Fraxedas) seria:
- Buscate cualquier "Python cheatsheet" (googlea esto y veras)
- Siempre me trato de guiar por las famosas Style Guides (normalmente disponibles en GitHub como esta: https://google.github.io/styleguide/pyguide.html) Eso no quiere decir que sea la mejor. Pero te ayudara rapidamente a orientarte manteniendo un estilo consistente en las cosas que haces, aun mas si es en equipo.
- Por ultimo, si te alcanza el tiempo y para ver las cosas "a ojo de vuelo de pajaro" JAJAJAJA, recuerdas? Bueno, ahi te recomiendo leas alguito sobre Python application architecture, por ejemplo (http://docs.python-guide.org/en/latest/writing/structure/)

Abrazo,

Ramon Araujo


Javier de Paula

unread,
Nov 29, 2015, 8:16:41 PM11/29/15
to improve-...@googlegroups.com
Abre un Shell de Python (type Python in the command line) y luego escribe 'import this':

El resultado, es un print de los lineamientos del Zen de Python. No te los voy a copiar acá, pero cuando los leas, te darás cuenta, en cuanta medida, es Python un lenguaje que se preocupa por la legibilidad y simplicidad del código. El hecho de utilizar la indentación para definir los scopes, es un ejemplo de lo anterior.

Python es además extremadamente versátil, como dijo Ernesto arriba y la manera de hacer y estructurar el código es genial. La comunidad de Python, es muy activa, y antes de agregarse cosas al lenguaje, se pasa por muchas fases de análisis. Siempre custodiada por Guido Van Rossum, el creador. Imagina que Python 3.x no tiene backwards compatibility con Python 2.x, los tipos decidieron cambiar algunas cosas para mejorarlo aún más, (hasta el operador de división '/' es diferente). 

Hay mucho q decir de Python, pero no cabría ni en 10 listas de distribución. Algo más, los Guidelines para programar son los famosos PEP, hay muchos, hasta incluso para el formato de la documentación. Te recomiendo los tengas siempre abiertos, cuando estés programando, especialmente el PEP-8. Mi editor preferido PyCharm, aunque Atom y Sublime son especialmente buenos también.

mis 2 cts,

Javi

Erlis Vidal

unread,
Nov 30, 2015, 11:14:34 AM11/30/15
to improve-...@googlegroups.com
Damaso,

Ya queda poco que decir, pero yo agregaria que Python es un lenguaje que todos deberiamos aprender. El ser multiparadigma significa mucho para mi, pues nos brinda una camino facil al aprender (podemos basarnos en el paradigma que mas conocemos) y luego atravesar caminos desconocidos de otros paradigmas.

A mi entender un lenguaje de programacion es mucho mas que la sintaxis. Esto lo aprendemos rapido, para mi lo interesante es aprender el ecosistema, la comunidad. Asi que de ya te aconsejo que te subscribas a una lista de discusion y comiences a leer articulos de las herramientas que tienes en python. No te preocupes con leer los libros, el dia a dia te va a dar mas conocimiento.

Aqui te dejo algo que te puede resultar util. iPython on a web page.

https://www.pythonanywhere.com/try-ipython/

Salu2

Dámaso

unread,
Nov 30, 2015, 2:08:10 PM11/30/15
to improve-...@googlegroups.com
Perfecto,

Esto es lo que me hacia falta. Muchisimas gracias a todos.

Damaso

Karel Alfonso

unread,
Dec 1, 2015, 8:06:18 PM12/1/15
to improve-...@googlegroups.com
Hola Damaso,

   Yo estoy casualmente usando Python en uno de los proyectos en los que estoy trabajando. Desde mi punto de vista es mas fácil de aprender que Ruby. También tiene elementos de programación funcional, que no se mencionan en el articulo anterior, usando Iterators y Generators.

   Depende de la forma en que estés trabajando hay otras areas a considerar cuando uno decide usar un lenguaje determinado. En nuestro caso estamos haciendo BI (business intelligence) y los desarrolladores no tienen experiencia en programación, mas bien con SQL. De modo que el código es un reguero, sin pruebas de ninguna tipo y el deployment completamente manual. Estamos haciendo un refactoring a varios niveles y para ello tuvimos que poner en el proyecto varias herramientas en Python:

  • Dependency management: pip y virtualenv
  • Build automation: PyBuilder. Muy parecido a Rake, Maven (desde el punto de vista de como organizas el codigo), Gradle, etc.
  • Testing: PyTest. Inicialmente comenzamos con Nose tests pero decidimos usar PyTest al final. Si necesitas usar mocks en tus prueba "mockito" o "fluentmock" son las opciones mas faciles
  • Test coverage: "coverage". Si usas PyTest tienes que usar "pytest-cov" (o algo asi).
  • Code analysis: PyLint
  • Database access: SQL Alchemy. Lo puedes usar como ORM o con SQL directo
  • Automated database migrations: SQL Alchemy migrations. Tuvimos que hacer algunas pequen~as modificaciones para poder escribir las migrations directamente en SQL code en vez del DSL que te brinda SQL Alchemy (muy parecido a Rails migration)
  • IDE: PyCharm (all the time).
  • Deployment: Python Wheel. En dependencia como haras el deployment de tu aplicacion. En nuestro caso tenemos un deployment pipeline de modo que cada build produce un paquete binario Python Wheel que se despliega a cada entorno (test, uat, prod)

 Libros hay varios, pero recientemente un colega de ThoughtWorks en Brasil publico uno de los últimos libros en Python con un buen rating en O'Reilly y Amazon: "Fluent Python"

Espero que esto te ayude a comenzar con Python. Yo no tengo mucha experiencia en el lenguaje pero hasta ahora estoy contento con lo que he visto y comparado con Ruby mucho mas fácil IMHO de aprender.

 Saludos,

Karel

 
 
image
 
 
 
 
 
Fluent Python
Python’s simplicity lets you become productive quickly, but this often means you aren’t using everything it has to offer. With this hands-on guide, you’ll learn how...
Preview by Yahoo
 

 
 
image
 
 
 
 
 
A Rubyist's confessions on Python
How a Rubyist feels about Python after using it for 6+ months
Preview by Yahoo
 

 
 
 
 
 
 
Functional Programming HOWTO — Python 2.7.11rc1 documentation
Functional Programming HOWTO Author: A. M. Kuchling Release: 0.31 In this document, we’ll take a tour of Python’s features suitable for implementing programs in a functional style.
Preview by Yahoo
 




Reply all
Reply to author
Forward
0 new messages