Arrivando sul sito di PythonAnyware si potrebbe cadere nell'equivoco e bollarlo come l'ennesima Python shell che gira nel browser sulla falsariga dell'interprete implementato su Appengine, Codepad oppure Ideone. Questo però sarebbe un grave errore per diversi motivi.
Posto che le shell Python integrate nei browser sono molto utili soprattutto per i principianti e per i corsi di programmazione introduttivi, di per sé non rappresentano certo una novità dal punto di vista tecnologico. Il valore aggiunto di PythonAnyware invece si percepisce già prima di avviare la shell: appena fatto il login infatti si accede ad una dashboard personale attraverso la quale possiamo scegliere quale versione di Python eseguire fra 2.6, 2.7 e 3.2, con o senza l'interfaccia di IPython. E per la versione 2.7 possiamo addirittura utilizzare l'interprete PyPy. La lista dei package installati è impressionante: si va da NumPy, SciPy, Mechanize, fino a BeautifulSoup, pycrypto solo per citarne alcuni.
La shell viene caricata in un iframe ed è realizzata interamente con codice HTML rendendola di fatto portabile su più piattaforme e più browsers, comprese le versioni mobili di Apple. àˆ possibile tenere aperte diverse shell (in numero variabile in accordo con il profilo di account scelto), condividerle con altri utenti o terminarle al bisogno.
Il servizio è dotato di un editor di testo piuttosto evoluto con colorazione della sintassi e indentazione automatica attraverso il quale l'utente può creare, modificare ed eseguire i propri script. I file vengono memorizzati in un'area di storage di dimensioni variabili a seconda del profilo dell'account ma se lo spazio non dovesse bastare o se si volesse un'integrazione più fluida con il filesystem del proprio PC, PythonAnywhere consente di utilizzare un account Dropbox rendendo accessibile dalla dashboard la propria cartella condivisa sul popolare servizio di storage.
Se doveste chiedervi qual è lo scopo di una shell così sofisticata, basta scorrere la lista delle features perché si apra un mondo. Difatti ciascuna shell può contenere uno script wsgi che risponde ad un determinato URL. Unite questo fatto alla possibilità di avviare una shell bash dalla quale invocare git ed interagire con il filesytem. Aggiungete la disponibilità di un wizard attraverso il quale preconfigurare un'applicazione Django o web2py. Mescolate il tutto con la possibilità di sfruttare un database MySql, una serie di cronjobs con i quali eseguire determinati script periodicamente e otterrete così la vera essenza di Python Anywhere: deployment di applicazioni web alla velocità della luce.
PythonAnywhere si appoggia completamente sull'infrastruttura EC2 di Amazon per cui non dovrebbero esserci motivi per non ritenere il servizio affidabile; se da un lato mi riserverei di fare ulteriori test e approfondimenti prima di adottarlo in un contesto professionale, dall'altro mi sento di consigliarlo caldamente a chi pensa di farne un utilizzo personale: il profilo free offre più risorse del corrispondente su Heroku, il deployment è più semplice che su Openshift, tutto il sistema è in generale molto più flessibile di AppEngine.