WordPress diventerà un’applicazione Desktop? Non proprio…

Questa settimana non voglio andare a descriverti qualcosa di tecnico (anche se qua e là ti fornirò qualche pillola interessante), piuttosto voglio parlarti di una cosa che la settimana scorsa ha fatto il giro del web per diverse volte: Calypso.

Dal nome di una divinità esiliata su un’isola e figlia del mare oggi abbiamo un esempio concreto di come un’azienda che conta centinaia di dipendenti (molti dei quali sviluppatori) è in grado di cambiare le carte in tavola e proporre ai propri utenti (e clienti) una soluzione al passo con i tempi che utilizza le ultime soluzioni per garantire un’esperienza fluida e reattiva.

Però, come ormani dovresti sapere, wpAndMore non è un sito di news all’interno del quale parliamo soltanto delle ultime novità; ed è proprio per questo motivo che dopo aver introdotto questo nuovo componente di WordPress.com andremo ad analizzare da vicino le componenti tecnologiche che hanno permesso questa transizione.

Ho deciso di scrivere questo articolo con la speranza che possa aiutare anche te a capire dove sta andando lo sviluppo WordPress e sopratutto per condividere questa storia che spero possa aiutare anche te e la tua azienda a rimanere al passo con i tempi.

Se credi che questo possa esserti utile, no esitare a continuare a leggere 😉

Come ben sai WordPress è un’applicazione basata su PHP e MySQL, due tecnologie decennali che hanno permesso a questo potente CMS di crescere nel tempo e di arrivare a conquistare il 25% del web (anche questa è una notiziona che recentemente ha fatto il giro del web).

Calypso, però, è un’applicazione desktop che ti permetterà di gestire i tuoi blog WordPress.com e tutte le installazioni della versione Open Source che hanno installato al proprio interno il plugin Jetpack.

Ti ho già parlato diverse volte delle potenzialità di questo plugin e non è mia intenzione tornare nuovamente ad affrontare questi argomenti, se sei curioso di scoprire perché ritengo questo un plugin che deve essere presente su qualsiasi installazione WordPress ti consiglio di leggere gli articoli collegati perché lo scopo di questo è un’altro.

Quello che voglio fare è rispondere alla domanda che forse ti sei posto anche tu: perché un’applicazione Desktop?

Per rispondere a questa domanda dobbiamo analizzare alcuni punti che sono stati essenziali alla creazione di questa nuova soluzione in modo da avere un quadro completo della situazione, ma prima di fare questo ti lascio la stessa grafica condivisa dagli sviluppatori di WordPress.com che mostra chiaramente le differenze tra un sistema basato in PHP e uno basato su JavaScript:

whats-new-wpcom2

Un team che si sposta da PHP a JavaScript

Precedentemente ti ho ricordato che WordPress basa le sua fondamenta sul linguaggio PHP che gli ha permesso di essere eseguito su qualsiasi server che contiene una versione di questo linguaggio (non credo di fare un grosso errore se dico che lo troverai sul 95% dei server web), ma oggi il mercato è cambiato e il web sta correndo anche grazie a nuove tecnologie. Proprio come detto da Matt Mullenweg in una recente intervista su PostStatus: il miglior modo per predire il futuro è crearlo! (evidenzia per condividere)

Negli ultimi anni il linguaggio JavaScript ha vissuto una seconda rinascita che gli ha permesso di estendere le sue funzionalità fino a raggiungere la gestione di un server web grazie a Node.js, per quanto questa possa sembrare un’informazione di poco interesse per una piattaforma come WordPress devo confessarti che non lo è affatto.

Circa un anno e mezzo fa il team di WordPress.com si è riunito cercando di rispondere alla domanda: se dovessimo creare oggi questa soluzione, quali tecnologie potremmo utilizzare?

Ovviamente con un progetto di tale portata non è possibile pernsare di fare tabula rasa e eliminare il lavoro fatto nell’ultimo decennio, ma grazie all’introduzione delle REST API e alle conoscenze del team Cloudup (startup acquisita da Automattic diverso tempo fa) è stato possibile scoprire come riutilizzare le conoscenze di questo team all’interno della ristrutturazione della codebase di questo CMS.

Le conoscenze condivise hanno permesso a un team fortemente skillato su un linguaggio come il PHP di comprendere e sfruttare le nuove potenzialità offerte da un linguaggio veloce come JavaScript e la possibilità di ottenere le informazioni grazie alle chiamate API ha permesso di alleggerire il lavoro svolto dai server web in PHP e delegarlo alla costruzione modulare delle pagine che compongono Calypso.

Utilizzo di GitHub al posto di Trac

Il team di sviluppatori, composto inizialmente da dieci persone, oggi supera i 100 componenti che nell’arco di questi 20 mesi si è trovato non soltanto a dover sviluppare un concetto del tutto nuovo (come un’applicazione web basata sulle API piuttosto che sulle chiamate al database), ma si è trovato anche a dover imparare un nuovo linguaggio di programmazione!

Come dicevo nell’apertura dell’articolo, questo non è sicuramente un compito semplice visto che il team di WordPress.com è numeroso dal punto di vista degli sviluppatori, ma grazie agli strumenti offerti da GitHub è stato possibile mettere in atto un cambiamento in modo veramente molto semplice.

Ti ho già presentato precedentemente questo sistema di controllo versione e all’interno della nostra scuola online abbiamo un corso dedicato completamente gratuito, quindi spero che non ti arrabbierai se proseguendo nell’articolo darò alcune cose per scontato.

Questo cambiamento è stato molto apprezzato da parte di tutto il team perché al posto di utilizzare il classico Trac, soluzione usata per mantenere traccia delle modifiche sin dalle prime versioni del CMS, GitHub presenta degli strumenti ancor più specifici per il controllo del codice inviato da parte dei propri collaboratori.

Con le Pull Request e la necessità che questa comporta nel revisionare il codice inviato da parte dei collaboratori ha permesso al team di sviluppo di velocizzare sia l’inserimento delle nuove feature, ma anche (e forse sopratutto) ha permesso agli stessi di migliorare l’apprendimento di JavaScript scoprendo come gli altri scrivevano e utilizzavano questo linguaggio.

Poter abbattere i tempi di apprendimento ha permesso di sviluppare un’applicazione web, mobile e desktop nell’arco di soli 20 mesi.

Spero tu possa capire che cosa questo significhi visto che WordPress.com ha ben 35+ milioni di utenti e non si può permettere di inserire delle modifiche senza essere certi della loro buona integrazione. Causare un disservizio con una mole di utenti così grande connessa da tutte le parti del mondo avrebbe rischiato di scatenare un grave colpo all’immagine che questo CMS ha sviluppato negli anni.

Ma torniamo un attimo al nostro interesse, lo sviluppo!

Come è stato possibile che un team di sviluppatori web, per quanto grande questo possa essere, sia stato in grado di creare un’applicazione desktop? Ebbene la risposta è molto più semplice di quel che si pensa perché risiede nel cuore di un’altra applicazione desktop che (spero) tu usi quotidianamente: Atom.

Non ho fatto molte ricerche a riguardo, ma non credo di fare un grosso errore nel dire che questa è la prima applicazione del suo genere. Un editor di testo multipiattaforma che è stato scritto utilizzando soltanto delle tecnologie web come HTML, CSS e JavaScript.

Tutto questo è stato possibile grazie ad Electron, un framework open source messo a disposizione dalla stessa GitHub che ad oggi permette di creare delle complete applicazioni desktop sfruttando i moduli di Node.js e Chromium che, assieme ai linguaggi elencati precedentemente, rende possibile la creazione di applicazioni desktop anche agli sviluppatori web.

electron

Non voglio andare nei tecnicismi, un po’ perché ti presenterò questo framework nel dettaglio all’interno di html5AndMore e ti mostrerò come sia possibile lavorare con questa soluzione in un corso su skillsAndMore; ma la cosa che ritengo veramente interessante è che questa tecnologia apre un mare di nuove possibilità a tutti noi sviluppatori web che desiderano entrare all’interno del mercato desktop.

Che cosa puoi fare con Calypso

Prima di concludere questo articolo voglio presentarti al meglio le funzionalità di questa nuova applicazione (al momento disponibile per Mac) e discutere con te quali saranno gli sviluppi futuri di questa tecnologia che anche tu potrai sfruttare.

Dico che potrai sfruttare anche tu perché Calypso ha un repository dedicato su GitHub dal quale è possibile seguire passo passo i suoi sviluppi, ma sopratutto ti permetterà di scoprire come sia possibile utilizzare queste tecniche all’interno del tuo lavoro offrendo nuovi servizi per i tuoi clienti.

Quindi Calypso è un’applicazione desktop e allo stesso tempo è la nuova interfaccia del portale WordPress.com una volta eseguito il login, praticamente ha sovrascritto tutta la parte amministrativa di questo immenso portale, ma la scelta non è stata fatta a caso…

Come discusso precedentemente, il cambio da un sistema basato su PHP (che deve essere eseguito completamente sul server web) ad un sistema JavaScript che può caricare modularmente i componenti della pagina ha creato un’esperienza utente quasi istantanea. Che si utilizzi via browser o dalla comoda applicazione, le pagine si caricano quasi instantaneamente e questo permette un’esperienza d’uso molto più fluida.

Anche se importanti, le prestazioni non sono l’unica cosa che è stata migliorata.

Se hai attivato il modulo di Jetpack relativo alla gestione del sito e dei suoi aggiornamenti attraverso il portale WordPress.com, con Calypso puoi gestire qualsiasi sito web collegato al tuo account. Potrai gestire i tuoi aggiornamenti, renderli automatici e scrivere direttamente i tuoi articoli da questa applicazione, un po’ come sto facendo io 😉

calypso-wordpress

L’editor di testo è veramente fluido e ci permette di utilizzare le stesse scorciatoie da tastiera alle quali eravamo abituati e anche la sintassi Markdown, insomma per noi sviluppatori scrivere in WordPress è diventato soltanto più divertente!

Ovviamente, come regola vuole, tutto il progetto è completamente responsive e si adatta alla perfezione a qualsiasi risoluzione in modo che tu possa aggiornare il tuo sito con qualsiasi dispositivo.

Conclusioni

Spero che tu abbia capito quale fosse il mio obiettivo creando questo articolo. Non soltanto voglio festeggiare il nuovo traguardo di WordPress.com, ma piuttosto voglio renderti partecipe di una rivoluzione che sta coinvolgendo tutto il web (e anche i desktop).

Oltre a questo, per il nostro interesse da sviluppatori WordPress, la scoperta del linguaggio JavaScript è una cosa che dovremmo tenere tutti sott’occhio. Negli ultimi anni questo linguaggio è utilizzato praticamente ovunque e dimostra di essere incredibilmente veloce, sia da apprendere che da eseguire.

Per questo motivo ti consiglio di iniziare a conoscerlo e studiarlo nel dettaglio. Se non sai dove andare ti posso consigliare il nostro corso gratuito ma la cosa più importante è capire come questo sia integrabile all’interno di WordPress e delle tue conoscenze in generale.

Spero che tu abbia capito, un po’ come hanno fatto gli sviluppatori di WordPress.com, che basare le nostre conoscenze su di un unico linguaggio senza osservare come si trasforma il mercato è una pratica che talvolta risulta limitante, sopratutto in un mercato competitivo e in continua evoluzione come lo sviluppo web.

Lascia il tuo Pensiero

4 Responses to “WordPress diventerà un’applicazione Desktop? Non proprio…”

    • Andrea Barghigiani

      Ciao Marco,

      diciamo che per il .org ci sono già molti tentativi e soluzioni che stanno implementando le API che si stanno facendo strada anche su questa piattaforma. Il discorso da fare è che le REST API che vengono utilizzate per questa applicazione sono quelle messe a disposizione da Jetpack e che sono diverse da quelle che potrai trovare all’interno del plugin che implementa le API del .org.

      C’è una distinzione da fare che sarebbe troppio ampia per un singolo commento e che molto probabilmente andremo ad approfondire in un nuovo articolo; il discorso è che già oggi puoi utilizzare questa applicazione per aggiornare e creare i tuoi articoli. Tutto quello che devi fare è installare Jetpack nella tua installazione WordPress e collegarlo all’account WordPress.com e il gioco è fatto.

      Se hai bisogno di altri chiarimenti non esitare a chiedere, magari mi offri nuovi spunti per il nuovo articolo 🙂

      Rispondi
  1. Samuele Valerio

    JavaScript è meritatamente il linguaggio di programmazione lato client più diffuso sul Web, sono anni che migliora silenziosamente l’usabilità del Web…Lettura interessante, grazie per la condivisione!

    Rispondi
    • Andrea Barghigiani

      Grazie a te Samuele per aver letto con piacere questo articolo! Anche noi stiamo approfondendo molto l’argomento JavaScript visto che sta diventando sempre di più un linguaggio a tutto tondo, sicuramente sarà sempre più utile 😀

      Rispondi