=== Imparando.net ===

Strumenti di sviluppo

Per sviluppare "pagine web" esistono, come per ogni ambito di sviluppo, diversi strumenti che agevolano la scrittura del codice (syntax hilighting, completamento ecc.). Inoltre è necessario avere uno stack di strumenti per la pubblicazione, che generalmente includono un server web, un linguaggio applicativo e un qualche gestore di database.
Negli ultimi anni è poi diventata sempre più diffusa la possibilità di sviluppare appoggiandosi su ambienti virtualizzati disponibili nel cloud, quindi verranno presentate le due diverse modalità (desktop e nel cloud) con gli strumenti 1 che mi sembrano più adatti per entrambe le tipologie.
Tutti gli strumenti proposti sono ovviamente gratuiti per ogni tipo di utilizzo.

Sviluppo nel desktop

Questa è la modalità più "antica" e consiste nello scrivere le pagine web sul proprio computer, provarle e testarle in locale e successivamente, quando si è soddisfatti, trasferirle sul server web che le esporrà su Internet. Con questa modalità gli strumenti suggeriti sono:

  • editor: Atom. Atom è attivamente sviluppato da GitHub, il famoso sito di versioning adottato da moltissimi progetti opensource. Possiede una serie infinita di plugin, denominati package, che permettono di estenderne le funzionalità, ad esempio Emmet, ed è ovviamente gratuito, come tutti gli strumenti proposti. Con questo editor è possibile scrivere le proprie pagine HTML/CSS, ma anche pagine PHP.
  • ambiente di prova: Xampp. Xampp è un pacchetto formato da più software che permette di avere sul proprio computer uno stack LAMP già configurato e pronto per funzionare, eventualmente anche come pacchetto portabile da copiare su una pennetta.
    lamp stack
    L'acronimo LAMP storicamente sta per Linux-Apache-MySQL-PHP e rappresenta, come si vede nell'immagine, una pila di software che permettono di distribuire pagine web dinamiche appoggiate su database. Il sistema operativo in realtà può essere uno qualunque, quindi basta scegliere la versione corretta di XAMPP per il proprio sistema operativo, non necessariamente Linux. Inoltre nelle ultime versioni il database MySQL è stato sostituito con MariaDB, ma ai nostri fini è del tutto indifferente.
  • Client FTP: Filezilla. Filezilla è un client FTP grafico e serve per fare l'upload dei file creati sul proprio computer verso il server remoto su cui verranno ospitati per poter essere visti su Internet

Sviluppo nel cloud

Sviluppare nel cloud, a differenza che sul desktop, permette di utilizzare strumenti che non hanno bisogno di installazione e posso essere utilizzati all'interno del browser.
Esistono una serie di servizi che permettono di raggiungere questo scopo, quello che propongo mi sembra quello più completo al momento. Il servizio si chiama Cloud9 e come dice la pagina del sito è un ambiente di sviluppo nel cloud. Dopo essersi registrati e aver scelto il piano di utilizzo gratuito, nella propria dashboard è possibile creare una macchina virtuale a scelta tra alcune già configurate per utilizzi tipici (nel nostro caso un server LAMP). A questo punto nel proprio browser verrà caricata un'interfaccia contenente una serie di strumenti (editor, shell, file browser ecc.) pronti per essere usati per scrivere i propri file direttamente nella macchina virtuale.

Cloud9 environment
Esempio della finestra di Cloud9
Come si può vedere dalla figura è presente una barra dei menù, sulla destra il pannello per visualizzare i file presenti nella propria macchina virtuale, il pannello principale contiene l'editor e il pannello in basso una serie di strumenti, in particolare una shell.
Per verificare il funzionamento di quanto fatto è sufficiente attivare il server e andare con il browser al proprio indirizzo personale fornito da Cloud9.
Per un tutorial su come usare Cloud9 andare qui.

Utili addon per il browser

Quando si sviluppa per il web il proprio browser è la piattaforma attraverso la quale bisogna passare per verificare quanto fatto. Io personalmente uso Firefox, in ogni caso esistono addon che funzionano anche per Chrome che posso aiutare il lavoro del programmatore.

Note

[1] - La velocità con cui cambiano questi strumenti è decisamente notevole, quindi quanto indicato è una buona scelta per la data in cui sto scrivendo (2016-09-10), potrebbe essere sorpassato tra qualche anno.