Programmazione web
Con il termine Programmazione Web si intendono tutte le attività, le tecniche e i rispettivi linguaggi di scripting, che consentono la realizzazione e lo sviluppo di applicazioni per il Web come ad esempio il web design per la realizzazione di siti web, CMS per blog, forum e social network, applicazioni o portali per l'e-commerce, lo scripting client-side e server-side, la configurazione dei web server.
In generale sono possibili due diversi modi di concepire le applicazioni web e che danno vita ai cosiddetti Web statico e Web dinamico. Il primo approccio è quello originario del Web e consiste nella stesura di documenti formattati in codice HTML e modificabili solo dai programmatori nello stesso codice, il secondo, che è tipico della programmazione web, rappresenta invece l'evoluzione attuale delle applicazioni Web al crescere della complessità e dei contenuti da amministrare in funzione anche delle richieste dell'utente e facente uso di linguaggi di scripting elaborati dal server oppure dal client quali ad esempio PHP, ASP, .NET, JavaScript, Python. Questi codici una volta elaborati restituiscono codici in HTML all'utente che ne fa richiesta tramite il web browser che a sua volta lo utilizzerà per visualizzare la pagina dell'applicazione sul terminale dell'utente.
La Programmazione Web come industria
Sin dalla metà degli anni novanta, quella della Programmazione Web è stata una delle industrie nel mondo che si è sviluppata più velocemente. Nel 1995 c'erano meno di 1.000 compagnie nel settore solo negli USA, ma dal 2005 erano già oltre 30.000. Ci si aspetta che l'industria del web cresca di oltre il 20% nel 2010 [1]. La crescita di questa industria è spinta dalla prospettiva del mercato di vendere prodotti e servizi ai loro clienti e di automatizzare il flusso di lavoro. Il settore della programmazione web è quindi un settore florido e in continuo sviluppo.
In più il costo per la creazione dei siti web e dell'hosting sono precipitati drasticamente negli ultimi 5 anni. Per i primi siti web si pagavano decine di migliaia di euro, oggi invece ciascuno può sviluppare un semplice sito web per meno di 1000 euro in base alla complessità e ai contenuti dello stesso. Piccole compagnie di sviluppo web possono offrire pacchetti accessibili a una moltitudine di piccole società e clienti privati che, con un investimento relativamente basso, possono accrescere esponenzialmente il loro giro d'affari. In aggiunta esistono applicazioni e piattaforme pubbliche assolutamente gratuite. Un esempio popolare è LAMP (Linux, Apache, MySQL, PHP) che normalmente sono distribuiti gratuitamente. Il fatto di essere liberamente distribuiti, da solo, ha fortemente contribuito alla crescita di popolarità del web. Un altro elemento che ha contribuito è stata la facilità di utilizzo dei software specifici per lo sviluppo web, come Adobe Dreamweaver o Microsoft Expression Studio (precedentemente Microsoft Frontpage). Con l'uso di questi software, teoricamente tutti possono sviluppare una pagina web in pochi minuti. La conoscenza di Hyper-Text Markup Language (HTML), o altri linguaggi di programmazione non è richiesta, ma raccomandata per risultati professionali.
Oggi gli svilluppatori mirano a realizzare applicazioni web che tradizionalmente sono disponibili solo in ambiente locale: invece di far girare le applicazioni sulla stazione locale, l'utente interagisce con le applicazioni on-line. Questo ha permesso la nascita di nuovi metodi di comunicazione, la decentralizzazione dell'informazione e la distribuzione dei contenuti in rete.
Esempio della drastica trasformazione che la programmazione web ha portato nelle comunicazioni e nel commercio è l'e-commerce. Siti di aste online come eBay hanno cambiato il modo in cui i consumatori consumano e acquistano beni e servizi. Un altro ottimo esempio di come lo sviluppo del software destinato al web abbia apportato nette trasformazioni nel modo di comunicare sono i blog.
Per le grandi imprese e le grandi organizzazioni, i team di web developer si compongono di centinaia di persone. Mentre le organizzazioni più piccole possono necessitare di un webmaster singolo (spesso con ingaggio a progetto). Lo sviluppo di un sito web può essere uno sforzo collaborativo tra dipartimenti piuttosto che di esclusivo dominio di dipartimenti designati.
Suddivisione di Base
La Programmazione Web può essere suddivisa in più aree e una tipica gerarchia di base potrebbe essere la seguente;
Programmazione Client Side
- AJAX Fornisce nuovi metodi per l'utilizzo di Javascript, linguaggi lato server (ASP.Net o PHP) e altri linguaggi al fine di migliorare l'esperienza dell'utente.
- Adobe Flash Player onnipresente piattaforma client-side.
- Javascript Formalmente chiamato ECMAScript, Javascript è un utile strumento client-side (anchesso praticamente onnipresente).
Programmazione Server Side
- ASP (di proprietà Microsoft)
- ColdFusion (di proprietà Adobe)
- CGI e/o Perl (open source)
- Java, J2EE o WebObjects
- PHP (open source)
- Python (open source)
- Smalltalk
- .NET (di proprietà Microsoft)
Database
- DB2 (di proprietà IBM)
- Firebird
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQLite
Considerazioni sulla Sicurezza
Gli sviluppatori web devono tener conto di diverse considerazioni, come la ricerca di errori all'interno dei form, il filtraggio dell'output e la cifratura. Pratiche malevole come l'SQL injection o l'utilizzo di scripts realizzati allo scopo, possono permettere a chi ne fa uso di aver accesso ad indirizzi email, password e contenuti protetti come i numeri di carte di credito.
Tenere un web server al sicuro dalle intrusioni è dunque di fondamentale importanza. Molte tecnologie entrano in gioco quando si trasmettono informazioni via web. Molti sviluppatori spesso fanno uso di diversi metodi di cifratura quando si devono trasmettere o salvare informazioni delicate. Ad esempio l'ausilio di protocolli crittografici quali TSL, o il suo predecessore SSL, permettono una comunicazione sicura e l'integrità dei dati su reti TCP/IP, aiutando a prevenire eventuali frodi informatiche. Una conoscenza di base della sicurezza informatica fa spesso parte delle conoscenze dello sviluppatore web.
Siccome i buchi nella sicurezza di applicazioni web vengono trovati solo dopo la fase di testing e quella di lancio, gli aggiornamenti sulla sicurezza sono di importanza cruciale. È spesso compito dello sviluppatore web tenere le applicazioni aggiornate con patch sulla sicurezza.