2010-02-17 8 views
46

Soy un experimentado desarrollador de Perl con cierto grado de experiencia y/o familiaridad con otros idiomas (experiencia laboral con C/C++, experiencia escolar con Java y Scheme, y familiaridad con muchos otros).Python para un programador Perl

Es posible que deba realizar algún trabajo web en Python (lo más inmediato, relacionado con Google App Engine). Como tal, me gustaría pedirle a SO overmind buenas referencias sobre cómo aprender mejor Python para alguien que proviene de Perl background (por ejemplo, el énfasis estaría en las diferencias entre los dos y cómo traducir idiomáticos perl en idiomáticos de Python, en oposición a las referencias genéricas de Python). Algo también centrado en el desarrollo web es aún mejor. Tomaré cualquier cosa: artículos, tutoriales, libros, aplicaciones de muestra.

Gracias!

+0

Scheme, Java no viene a la mano. –

+1

http://www.python.org/doc/2.5.4/tut/tut.html –

Respuesta

59

Recientemente tuve que hacer una transición similar por motivos de trabajo, y ha sido muy doloroso. Para bien o para mal, Python tiene una filosofía y una forma de trabajar muy diferentes a Perl, y acostumbrarse a eso puede ser frustrante. Las cosas que he encontrado más útiles han sido

  • Dedique unas pocas horas pasando por todos los conceptos básicos. Encontré el official tutorial bastante bueno, aunque un poco seco.
  • Un buen libro de referencia para buscar cosas básicas ("¿cómo consigo la longitud de una cadena otra vez?"). Los que he encontrado más útiles son Python Pocket Reference y Python Essential Reference.
  • Eche un vistazo a esta útil Perl<->Python phrasebook (tareas comunes, una al lado de la otra, en ambos idiomas).
  • Una referencia para el enfoque de Python para "tareas comunes". Yo uso el Python Cookbook.
  • Un terminal ipython abierto en todo momento para probar la sintaxis, métodos de objetos introspect, etc.
  • Obtenga pip y easy-install (para instalar módulos de Python fácilmente).
  • Obtenga más información sobre las pruebas unitarias rápidamente. Esto es porque sin use strict se sentirá lisiado, y cometerá muchos errores elementales que aparecerán como errores de tiempo de ejecución. Recomiendo nose en lugar del marco unittest que viene con la instalación central. unittest es muy detallado si estás acostumbrado a Test::More.
  • Consulte las preguntas de Python en Desbordamiento de pila. En particular, vale la pena leer las páginas Python - Things one MUST avoid y Python 2.x gotcha’s and landmines.

Personalmente, encontré Dive Into Python molesto y condescendiente, pero es libremente accesible en línea, para que pueda formar su propio juicio sobre eso.

+4

Muchas gracias. Estoy en el mismo barco. – FMc

+3

¡Excelente! Cubre cada punto de bala que alguna vez iba a preguntar! ¡¡¡Gracias!!! – DVK

+1

¿Puedes explicarnos la "filosofía y forma de trabajar diferentes"? – JoelFan

2

Descargue el libro from here. Léelo, respíralo y cómelo ... :)

Es bueno para todos.

Y updated for Python3.

+2

Estoy segundo en Dive Into Python. Es como la Biblia de los libros de inicio de Python. – jellyfishtree

+1

¿No debería el tutorial estándar ser el primero? Por cierto, el motor de la aplicación de Google implica Python 2.5, ¿verdad? –

+0

Parece que tiene algunas referencias a Perl, aunque la mayoría de las comparaciones parecen ser para Visual Basic ... – DVK

-3

No trataría de comparar Perl y Python demasiado para aprender Python, especialmente porque tiene conocimientos de otros idiomas. Si no está familiarizado con los aspectos de programación funcional/OOP y solo está buscando trabajar procesalmente como en Perl, comience a aprender las construcciones/sintaxis del lenguaje Python y luego haga un par de ejemplos. si está cambiando a OO o paradigmas de estilo funcional, primero leería los fundamentos de OO, luego comenzaría con la sintaxis y ejemplos de Python ... para que tenga una especie de modelo mental de cómo se pueden construir las cosas antes de comenzar a trabajar con los materiales reales esta es solo mi humilde opinión, sin embargo ...

+14

Psst. Los desarrolladores modernos de Perl usan OO tanto como cualquier otra persona. Y, como de costumbre, TMTOWTDI. ;) –

+13

@jellyfishtree - intentaré no ofenderme, pero en realidad, esa suposición era un poco fuera de lugar. Escribo el código OO completo en Perl (y también en C++). Dije que era un experimentado desarrollador de Perl, no un mono de script, además puedo hacer programación funcional aunque con mucha menos experiencia/calidad :) – DVK

+4

Perl and Python OO los sistemas son muy similares - Perl ' s fue copiado de Python. –

4

Mira el official tutorial, que en realidad es bastante bueno. Si está interesado en el desarrollo web, debe estar preparado en ese momento para acceder directamente a la documentación del marco web con el que trabajará; Python tiene muchos para elegir, con zope, cherrypy, pilones y werkzeug teniendo buena reputación.

No trataría de buscar cosas específicamente destinadas a ayudarlo a hacer la transición desde Perl, que no son tan de alta calidad como las referencias que pueden ser útiles para más personas.

3

This es el sitio que realmente debería visitar. Hay una sección llamada Getting Started que debe consultar. También hay recomendaciones sobre libros. Además de eso, también puede estar interesado en this en "frases hechas"

7

Al ser un incondicional Perl programador, todo lo que puedo decir es NO COMPRE de O'Reilly "Learning Python". No hay ningún lugar CERCA tan bueno como "Learning Perl", y no hay un equivalente que conozca de "Programming Perl" de Larry Wall, que es simplemente inmejorable.

He tenido el mayor éxito pasando los programas de Perl y traduciéndolos a Python, tratando de hacer uso de tantas técnicas nuevas como sea posible.

Cuestiones relacionadas