Forum >> Principianti >> Dal Mondo PHP al Mondo PYTHON

Pagina: 1

Ciao Ragazzi,



sono sviluppatore PHP da oltre 10 anni.

Mi piacerebbe aggiungere alle mie skill la conoscenza e l'utilizzo di Python.

Sviluppo essenzialmente applicazioni web based. Vorrei chiedervi:

quali sostanziali vantaggi riscontrerei utilizzando Python rispetto a PHP per

continuare a lavorare nel mio ambito web based?




grazie e perdonate la domanda, ma ho cercato nel forum e non ho trovato domande simili.
Mah, non è una risposta semplice... dipende molto da che cosa hai fatto davvero in questi 10 anni... diciamo che se sei stato esposto a qualche altro linguaggio... "serio"... e temo che questo non includa javascript (ehm)... allora più o meno dovresti avere una mezza idea di che cosa aspettarti... per esempio, Python è un linguaggio OOP ma nel senso "serio" del termine (quello di java, o di C#... etc etc.), non nel senso di "classi? ah sì aspetta che vedo se riesco a cucirle al volo nel linguaggio dopo vent'anni" di php. Eccetera.


Se invece hai visto solo php nella tua vita... mah, potresti semplicemente non capire qual è il problema a cui un linguaggio come Python offre una soluzione. Se per te "php ha sempre funzionato, bene o male", allora il consiglio è di non cercare nemmeno di fare confronti. Immagina di trasferirti su Marte e ricomincia tutto daccapo, come se non avessi mai programmato nella tua vita. Non cercare assolutamente di riprodurre in Python le cose che facevi in Php, non fare confronti, non chiederti niente, tappati le orecchie. Tra un paio d'anni, dopo che Python ti sarà un po' più familiare, potrai vedere quanta differenza c'è con php, e dove.


Poi c'è da dire anche un'altra cosa: di solito quando uno dice "lavoro in php" non lo dice nel senso in cui si dice "lavoro in python"... Soprattutto di questi tempi è tutto sommato abbastanza raro che uno "sviluppatore php" scriva effettivamente codice php duro-e-puro... In genere si lavora coi framework (per tacere di quelli che dicono "sviluppo in php" e in realtà fanno skin per wordpress), e i framework php (ameno i migliori) fanno un lavoro dannato e fantastico per nascondere sotto il tappeto i disastri di php. Quando lavori con Laravel, per dire, puoi seguire pattern più moderni (nel senso, di almeno 10 anni fa)... url routing, view, un discreto ORM, migrazioni per il database... che se non sono proprio al livello di quello che puoi trovare in Python comunque ti mantengono psichicamente sano. A questo punto, quando passi a Django trovi le stesse idee e magari se non sei proprio "sensibile" non ti accorgi nemmeno del valore aggiunto... Ma insomma, l'adattamento è più facile...

Se invece hai ancora in mente il php di 10 anni fa, con codice martellato a forza dentro la pagina html, allora... fai conto di trasferirti su Marte, si diceva.


A parte tutto questo, ovviamente c'è poi il fatto che php è solo "php per il web", mentre Python è molto molto di più... il che magari non ti importa un granché ma insomma almeno uno ha la possibilità di cambiare lavoro, volesse mai...

Ciao, che dire?



Grazie mille per la risposta.




Lavoro con Laravel da quando è stata rilasciata la prima versione. Prima utilizzavo CodeIgniter.

Non farei mai confronti e non cercherei mai di riprodurre cose fatte con PHP in Python seguendo la medesima logica.




A me interessa comprendere, ad esempio, se con Django riesco a mantenere le medesime promesse che ho con PHP.

E se partendo da Django riesco ad apprendere Python alla stregua di partire solo ed esclusivamente con Python.




Io sono interessato ad applicazioni web based, voglio ribadirlo. E vorrei realizzare già applicazioni con Django pratiche, già

per la mia azienda, lontano da "hello world".




Però la mia perplessità è se partire con Django sia la partenza giusta per affrontare Python. Oppure bisogna avere più un approccio purista.




Grazie ancora per la risposta, spero di avere ulteriori ragguagli.
> se partendo da Django riesco ad apprendere Python

No, no questo assolutamente no. Per lavorare in Django occorre una buona conoscenza di Python. Sperare di imparare Python attraverso Django è mettersi in una strada veramente in salita.


Tra l'altro sotto questo aspetto Django è ingannevole... nel senso che Django (che è scritto in Python) fa uso di artifici estremamente complicati (nel senso: se leggi il codice sorgente di Django ti trovi di fronte a un Python *molto* complicato) per mettere a disposizione degli strumenti che risultano semplici da usare... Ma il rischio per chi non conosce bene Python è pensare che quegli strumenti esistono "normalmente" anche in Python, mentre invece sono tipici solo di Django... per dire, che una feature che trovi in una classe Django la trovi anche in una normale classe Python...


Direi che prima devi dare una bella scorsa a Python. Per fortuna non è un linguaggio difficile da imparare, e ci sono ottime risorse (l'acquisto del Lutz da Feltrinelli è sempre una ottima idea). Poi imparare Django non è troppo complicato, anche perché Django è uno dei framework meglio documentati del mondo... anche se è praticamente tutto in Inglese... qui non scappi.




Grazie.
In effetti ho pensato a Django perché vorrei partire da applicazioni web based.

Realizzare applicazioni standalone con Python mi crea un horror vacui: non saprei cosa fare.




Non avrei fatto l'errore di immaginare Django = Python, questo no.




Alla luce di questo, continui a consigliarmi Python from scratch, e quindi partire dal libro di Lutz (che già ho)?




Grazie ancora per il supporto: lo sto trovando prezioso.



Sì certo, Lutz a manetta per un po' di mesi, e poi se vuoi sei pronto per Django...


Detto questo, c'è sempre un gigantesco punto interrogativo da tener presente... ed è CHE COSA vuoi fartene di imparare Python... voglio dire, se è per hobby nessun problema. Se è per ragioni professionali (magari future, o anche solo speranze) devo dirti che sicuramente, stra-sicuramente imparare Python ti dà più vantaggi di php: i lavori che richiedono Python, specialmente in Italia, sono molti meno, ma è anche minore la concorrenza e i compensi sono più alti... MAAaaaa (e ti pareva che ci fosse un ma), devo anche dirti che forse la forbice sta iniziando a chiudersi, e inizia a chiudersi soprattutto nel campo che interessa a te. Ormai Python/Django è il nuovo Php, non certo in termini di qualità tecnica (su questo, pur con tutti i miglioramenti obiettivi che Php ha fatto in questi anni, non c'è comunque paragone) ma in termini di numero di sviluppatori... quasi-amatoriali. Mi spiego: una volta il tipico smanettone senza troppo criterio si offriva di fare il sito del panettiere, e lo faceva in Php. Oggi lo stesso individuo, con le stesse skill (poche), comincia a fartelo in Django...


Se sei in un mercato "basso" (e senza nessuna offesa: conosco gente bravissima che fa SEO per i siti delle autofficine, e ci guadagna ed è *veramente* brava in quello che fa), fino a poco fa potevi dire "mi sposto in Python e la concorrenza diventa un decimo". Adesso non è più tanto così. Solo per dirtelo, nel caso.


Di conseguenza ho paura che il valore aggiunto di imparare Python sia anche e soprattutto nell'altro che puoi farci, nelle opzioni diversificate che ti offre, dello sguardo più ampio che puoi avere. Ma se vuoi imparare Python solo per Django, e vuoi usare Django solo per fare quello che già fai con Laravel... mah, la mia impressione è che Django è fantastico... però Laravel resta un bel prodotto, e da un punto di vista *puramente professionale* non aspettarti salti enormi di risultati.


Cioè, non vorrei che ti facessi aspettative professionali... Invece se la tua curiosità è puramente sul piano della programmazione, allora con Django ti toglierai un bel po' di soddisfazioni.




Mi hai dato un contributo preziosissimo. Ho esaurito le domande. E ho compreso.
Lavoro su applicazioni enterprise da 5 anni, quindi è chiaro che affiancare Python/Django (non direi sostituire) a ciò che già realizzo in PHP è per una questione professionale, squisitamente professionale.




Grazie ancora.
Allora è probabile che in quel mondo il passaggio a Python/Django ti farà fare un salto di qualità... soprattutto se Python è integrato (o riesci a integrarlo) anche nel resto del workflow della tua azienda... A quel punto, per dire, puoi fare data analysis in Python e avere il backend del sito in Django... la qualità della vita migliora...


Pagina: 1



Esegui il login per scrivere una risposta.