2010-02-17 14 views
46

Sono uno sviluppatore esperto di Perl con un certo grado di esperienza e/o familiarità con altri linguaggi (esperienza lavorativa con C/C++, esperienza scolastica con Java e Scheme e familiarità con molti altri).Python per un programmatore Perl

Potrei aver bisogno di fare un po 'di lavoro sul web in Python (il più immediato, relativo a Google App Engine). Come tale, mi piacerebbe chiedere a SO overermind buone referenze su come imparare Python per qualcuno che proviene dal contesto di Perl (ad esempio l'enfasi sarebbe sulle differenze tra i due e su come tradurre l'idiomatica perl in idiomatica di Python, al contrario a riferimenti Python generici). Qualcosa incentrato sullo sviluppo del Web è ancora migliore. Prenderò qualcosa - articoli, tutorial, libri, app di esempio?

Grazie!

+0

Schema, Java, vieni a portata di mano. –

+1

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

risposta

59

Recentemente ho dovuto effettuare una transizione simile per motivi di lavoro, ed è stato piuttosto doloroso. Nel bene e nel male, Python ha una filosofia e un modo di lavorare molto diversi da quelli di Perl, e abituarsi a ciò può essere frustrante. Le cose che ho trovato più utili sono state

  • Trascorrere alcune ore attraverso tutte le nozioni di base. Ho trovato il official tutorial piuttosto buono, anche se un po 'asciutto.
  • Un buon libro di riferimento per cercare elementi di base ("come posso ottenere di nuovo la lunghezza di una stringa?"). Quelli che ho trovato più utili sono lo Python Pocket Reference e lo Python Essential Reference.
  • Dai un'occhiata a questo pratico Perl<->Python phrasebook (attività comuni, affiancate, in entrambe le lingue).
  • Un riferimento per l'approccio Python alle "attività comuni". Io uso il Python Cookbook.
  • Un terminale ipython aperto in qualsiasi momento per testare la sintassi, metodi di oggetti introspettivi, ecc.
  • Get pip e easy-install (per installare facilmente i moduli Python).
  • Ulteriori informazioni sui test unitari veloci. Questo perché senza use strict ti sentirai paralizzato, e farai molti errori elementari che appariranno come errori di runtime. Raccomando nose piuttosto che il framework unittest fornito con l'installazione di base. unittest è molto prolisso se sei abituato allo Test::More.
  • Consulta le domande Python su Stack Overflow. In particolare, vale la pena leggere uno Python - Things one MUST avoid e Python 2.x gotcha’s and landmines.

Personalmente, ho trovato Dive Into Python fastidioso e condiscendente, ma è liberamente disponibile online, quindi è possibile formare il proprio giudizio su questo.

+4

Grazie mille. Sono nella stessa barca. – FMc

+3

Eccellente! Copre ogni punto che stavo per chiedere mai! Grazie!!! – DVK

+1

Puoi spiegare "la diversa filosofia e il modo di lavorare"? – JoelFan

2

Scarica il libro from here. Leggilo, respiralo e mangiarlo .. :)

Va bene a tutti.

E updated for Python3.

+2

I second the Dive Into Python. È come la Bibbia dei libri di avviamento di Python. – jellyfishtree

+1

Non dovrebbe il tutorial standard venire prima? Btw, il motore di Google App implica Python 2.5, giusto? –

+0

Sembra che abbia qualche riferimento a Perl, anche se la maggior parte dei confronti sembra essere in Visual Basic ... – DVK

-3

Non vorrei provare a confrontare Perl e Python troppo per imparare Python, soprattutto perché hai una conoscenza pratica di altre lingue. Se non hai familiarità con gli aspetti di programmazione OOP/funzionali e stai cercando di lavorare proceduralmente come in Perl, inizia ad imparare i costrutti/sintassi del linguaggio Python e poi fai un paio di esempi. se stai facendo un passaggio a OO oa paradigmi di stile funzionale, vorrei prima leggere i fondamenti di OO, quindi iniziare con la sintassi e gli esempi di Python ... quindi hai una sorta di progetto mentale su come le cose possono essere costruite prima di iniziare a lavorare con i materiali reali. questo è solo il mio modesto parere però ..

+14

Psst. Gli sviluppatori moderni di Perl usano OO tanto quanto chiunque altro. E, come al solito, TMTOWTDI. ;) –

+13

@jellyfishtree - cercherò di non essere offeso, ma in realtà, questa ipotesi era un po 'fuori luogo. Scrivo completamente il codice OO in Perl (così come in C++) - Ho detto che ero uno sviluppatore esperto di Perl, non una scimmia script - inoltre posso fare programmazione funzionale anche se con molta meno esperienza/qualità :) – DVK

+4

Perl e Python OO i sistemi sono molto simili - Perl ' s uno è stato copiato da Python. –

4

Controlla il official tutorial, che in realtà è abbastanza buono. Se sei interessato allo sviluppo web dovresti essere pronto a quel punto per andare direttamente alla documentazione del framework web con cui lavorerai; Python ha molti tra cui scegliere, con zope, cherrypy, tralicci e werkzeug che hanno tutti una buona reputazione.

Non vorrei provare a cercare le cose specificamente pensate per aiutarvi a passare da Perl, che non devono avere la stessa qualità dei riferimenti che possono essere utili per più persone.

3

This è il sito in cui dovresti davvero andare. C'è una sezione chiamata Getting Started che dovresti dare un'occhiata. Ci sono anche raccomandazioni sui libri. In cima a quello, si potrebbe anche essere interessato a this sui "modi di dire"

7

Essendo un hard programmatore Perl, tutto quello che posso dire è NON COMPRARE "Learning Python" di O'Reilly. Non è da nessuna parte VICINO quanto "Learning Perl", e non c'è un equivalente che io conosca di "Programming Perl" di Larry Wall, che è semplicemente imbattibile.

Ho avuto il maggior successo nel superare i programmi Perl e tradurli in Python, cercando di utilizzare quante più nuove tecniche possibili.

Problemi correlati