Indice
Oggi parliamo di Python e Django, base dello stuck tecnologico che abbiamo scelto in SAEP ICT per lo sviluppo delle nostre soluzioni B2C e B2B. I vantaggi di questa scelta li spiega in una breve intervista Fiamma, che in SAEP ha seguito lo sviluppo della maggior parte dei progetti basati
Ciao Matteo, innanzitutto raccontaci almeno un po’ di te: come sei arrivato in SAEP ICT e che tipo di percorso hai fatto in azienda.
Chi sono? Un giovane sviluppatore ( o almeno cerco di esserlo ), simpatico collega/amico di giorno, super compagno la sera ( santa Sara ) e volenteroso soccorritore di notte. Due citazioni che mi rappresentano?
“Life is like riding a bicycle. To keep your balance, you must keep moving” - Albert Einstein
“Cercate di lasciare questo mondo un po' migliore di come l'avete trovato” - Robert Baden-Powell
Sono arrivato in SAEP ICT grazie ad un carissimo amico. Mi disse che da lui stavano cercando ragazzi con tanta voglia di crescere e di imparare e così mi sono lanciato in un colloquio: ora eccomi qui. Che dire? La strada è indubbiamente ancora lunga e il cammino è appena iniziato: sono ancora alle pendici di questa grande montagna che è l’informatica.
Fortunatamente ho avuto la possibilità di seguire e affrontare progetti in ambiti diversi e questo mi piace perché a parer mio nella vita bisogna imparare ad essere flessibili, ma allo stesso tempo riuscire a specializzarsi almeno su una tecnologia.
Veniamo all’argomento principale: puoi spiegarci in parole semplici cos’è Python, cos’è Django e come li hai utilizzati nei progetti in SAEP ICT?
Partiamo da Python: un linguaggio di programmazione ad alto livello, rilasciato per la prima volta nel 1991. Combina una grande potenza con una sintassi molto chiara. Negli ultimi anni Python sta letteralmente spopolando sia come numero di sviluppatori che lo usano attivamente che come numero di applicazioni sviluppate e rilasciate.
Risulta essere il linguaggio che sta crescendo maggiormente all’intero della community dei developer e addirittura molte pubblicazioni dichiarano che ormai ha superato PHP, Ruby, … fino a raggiungere i livelli di Java.
Ora due brevi parole su Django, il più potente Web Framework Python, ovvero un insieme di componenti che ti aiutano a sviluppare più velocemente e facilmente.
Attualmente, con la richiesta di applicativi sempre più complessi, la concorrenza in crescita e la tecnologia che si aggiorna di giorno in giorno, utilizzare frameworks diventa d’obbligo perché non puoi permetterti ogni volta di "reinventare la ruota". Devi insomma già partire con delle basi ben solide per ottimizzare i tempi e risorse.
Partiamo dalla costruzione di CMS - Content Management System custom, implementando l’intero applicativo sia lato frontend che backend, fino ad arrivare a sistemi più complessi come CRM, B2B e B2C che comunicano tramite un’architettura REST con interfacce utente sviluppate per lo più con Angular ( framework front-end ).
Python puro invece lo troviamo nelle soluzioni IoT che abbiamo sviluppato sia per clienti che per prodotti interni aziendali.
Secondo te quali sono i principali vantaggi dello sviluppo con questo stack tecnologico? Quali le eventuali criticità?
Primo vantaggio fra tutti secondo me è che Django è open-source.
Essendo poi un framework Python, chiaramente si porta dietro tutti i vantaggi di quest’ultimo.
Ricco di librerie e con un supporto dalla community molto attivo, è performante e soprattutto è portabile, quindi puoi usarlo su diverse piattaforme senza avere problemi. È sicuro.
Utilizza la tecnica ORM, ovvero una tecnica di programmazione che favorisce l'integrazione di sistemi software aderenti al paradigma della programmazione orientata agli oggetti con sistemi RDBMS.
Ovviamente non è solo oro quel che luccica: Django è veloce da avviare e immediato per implementare soluzione web smart, ma come sempre per sviluppare sistemi ad alta complessità tecnologica ci dovrai mettere del tuo: un buon linguaggio di programmazione e un buon framework aiutano moltissimo, ma non possono sostituirsi all'abilità, all'esperienza e alle dure di lavoro di un buon sviluppatore.
L’aspetto forse più critico di questo stack è il deploy, poiché non è consigliato farlo tramite FTP come avveniva sui vecchi programmi in PHP ma, per sfruttare appieno i benefici della continuous integration, bisogna farlo predisponendo meccanismi semi-automatizzati.
Fortunatamente tuttavia, vista la rapidissima crescita, servizi come Google Cloud hanno rilasciato guide ufficiali per poter stanziare l’intero progetto sulle loro macchine seguendo brevi step che in pochi minuti ti permettono di avere tutto online.
Python è un linguaggio diffuso? Quali sono le applicazioni più note sviluppate in Python?
Come detto sopra, Python è cresciuto tantissimo. Lo utilizza la NASA per lo sviluppo di sistemi di controllo, Yahoo! Per i servizi internet, Google, YouTube e RedHat lo usano. Altri nomi che invece usano Django? Instagram, Spotify, Washington Post, Dropbox e persino Mozilla che ha abbandonato PHP.
Che vantaggi ha il cliente finale dall’utilizzo di un applicativo sviluppato in Python/Django?
Il cliente si trova tra le mani un prodotto sicuro e veloce. Inoltre può star certo che per i prossimi anni può mantenere e far ampliare la propria applicazione con estrema facilità, abbattendo quindi i costi di sviluppo.
Resterai fedele al binomio P&D o hai voglia di provare anche altre combinazioni (es. con Ruby) o linguaggi?
Non posso dirti cosa succederà domani, posso dirti però con certezza che oggi scelgo P&D al 100%.
Grazie Matteo per la tua disponibilità e buona continuazione con Python & Django: alla prossima!/p