Software adoperato : Macromedia Dreamweaver; software utilizzato per progettare e costruire siti Web
Storia Software: Dreamweaver nasce, come editor visuale, nel 1997 ed il suo bellissimo nome ( tessitore dei sogni ) risulta veramente azzeccato. Nel corso degli anni si arriva alla versione 4, che consente anche un eccellente controllo del codice e che riscuote un crescente successo anche fra gli utenti avanzati, tra i più riluttanti ad adottare editor visuali. Oggi, infatti, Dreamweaver è utilizzato in tutto il mondo da circa l'80% dell'utenza professionale, perché offre molteplici vantaggi, non ultimo, quello di generare il codice più corretto e "pulito" tra gli editor della sua categoria .
Editor visuali e editor testuali
Gli strumenti per realizzare pagine web sono definiti editor HTML. Questi si dividono in due grandi categorie:
-
editor visuali o, dall'inglese, WSYIWYG - What You See Is What You Get, ovvero ciò che vedi e ciò che ottieni (il risultato finale) - poiché consentono all'utente di realizzare le pagine in maniera visiva, quasi come se si stesse lavorando all'interno di un browser virtuale, generando automaticamente il codice sottostante;
- editor di testo o di codice, perché l'utente non modifica visualmente gli elementi di una pagina - immagini, tabelle, frames, ecc. - ma interviene direttamente sul codice.
Questa divisione, più netta nella seconda metà degli anni '90, è adesso più sfumata. Infatti gli editor visuali consentono un facile intervento diretto sul codice, mentre gli editor testuali, per contro, consentono rapide anteprima di pagina e l'inserimento di elementi della pagina tramite comandi che risparmiano buona parte della scrittura diretta del codice.
Entrambi gli editor presentano vantaggi e svantaggi : se da un lato gli editor visuali consentono un più rapido apprendimento e spesso velocizzano il lavoro, dall'altro gli editor testuali consentono un assoluto controllo del codice, risultando così, spesso più graditi agli utenti avanzati e velocizzano il lavoro quando si vuole inserire codice personalizzato.
|
Cronologia del WWW
1980 Tim Berners-Lee (CERN) sviluppa il programma "Enquire-Within-Upon-Everything" che consentiva di effettuare link tra diversi nodi.
1989 Tim Berners-Lee diffonde due documenti per raccogliere opinioni sul suo lavoro presso il CERN.
1990 Il documento di TBL viene riformulato con l'appoggio ufficiale del CERN; viene coniato il nome World-Wide Web.
1991 Sviluppo dei primi client ed apertura del WWW server del CERN.
1992 Sviluppo del client con interfaccia X; viene rilasciata la lista dei primi 26 server WWW.
1993 Viene rilasciato il primo browser per Macintosh; viene rilasciato X-Mosaic di Marc Andreessen (NCSA); i server HTTP sono circa 50.
1994 Viene fondata la Mosaic Corporation (oggi Netscape Corp.); i siti WWW sono 1.500. A dicembre si tiene il primo meeting del "W3 Consortium" presso il MIT; il CERN, a causa di problemi di budget, decide di sospendere il supporto del progetto WWW.
1995 Viene fondata la "Web Society" a Graz (Austria): partecipano la Technical University di Graz, il CERN, l'Università del Minnesota e l'INRIA (Francia). |
| "Cosa c'è dentro al calcolatore che esegue il lavoro?" Non importa chi e come esegue le azioni, ma solo che queste vengano fatte con il massimo scrupolo e precisione. Quello che importa quindi è la regola assolutamente precisa ed ineluttabile (senza fantasia) che presiede al comportamento della macchina, quello che prende il nome di algoritmo . L'algoritmo è quindi la precisa descrizione di tutto quello che si deve fare, passo per passo, prendendo in considerazione tutte le possibilità in modo che chi lo esegue non venga mai a trovarsi in una situazione inaspettata, per esempio cimentarsi in bug e in conseguenti blocchi (crash).
Gli argomenti rilevanti di questo campo possono essere divisi in due: da una parte c'è la discussione del concetto di algoritmo e della sua rappresentazione, la macchina di Alan Turing , cioè del "cosa fare e come farlo", dall'altra quella dei linguaggi di programmazione , cioè del "come esprimerlo". Le due cose nella realtà sono andate ovviamente di pari passo, interagendo tra loro, ma in una discussione concettuale è bene tenerle distinte.
Un poco più su come livello di astrazione ci sono i cosiddetti linguaggi imperativi , in cui l'idea di fondo è che il programmatore ha ancora l'obbligo di definire in tutti i dettagli l'algoritmo che sta costruendo, ma ha a disposizione strumenti che richiamano più un linguaggio naturale che la macchina che lo esegue.
Importante è qui l'idea di programmazione strutturata , con il famoso teorema di Jacopini-Böhm, che dice sostanzialmente che si può programmare senza i "goto", sostituiti dai concetti di blocco , di alternativa e ciclo . Importanti sono anche i concetti di procedura e programmazione ricorsiva , e di struttura dati con puntatore , i quali, assieme al controllo di tipo , sono i primi rudimentali elementi del concetto di tipo di dati astratto (ADT, Abstract Data Type) della programmazione ad oggetti.
In questa categoria si possono far rientrare, pur con la difficoltà che tutte le classificazioni comportano, tutti i linguaggi più noti, a cominciare dal Fortran per proseguire con tutti i suoi eredi più o meno diretti, cioè Algol, Pascal, Modula e Ada da una parte, BCPL e C dall'altra.
Un altro tipo di evoluzione dei linguaggi è quello verso la cosiddetta programmazione ad oggetti (OOP, Object Oriented Programming), settore che attualmente attrae il maggior numero di studi ed attività, promettendo un rivoluzione nella capacità di costruire programmi per sistemi complessi. Una caratteristica dei linguaggi imperativi che li rende inadatti a questo scopo è infatti quella che con essi il programmatore ha sempre l'impressione di dover partire da zero, anche quando riutilizza parti di programmi scritti da altri.
La capacità di utilizzare il lavoro di altri viene, nei linguaggi OO, dai concetti di incapsulamento , ereditarietà e polimorfismo . Questi permettono di dare al linguaggio che li implementa, sia la potenza dell' a strazione matematica che la flessibilità del linguaggio naturale . Queste due cose sono spesso in contraddizione e non a caso esistono diversi tipi di linguaggi OO, che propendono verso uno o l'altro dei due versanti.
La differenza è nei due modi in cui possono essere implementati i controlli di tipo . Se il controllo è dinamico si hanno i linguaggi alla Smalltalk, flessibili ed espressivi come i linguaggi naturali, ma anche con i problemi di imprecisione di questi, se invece è statico si hanno i linguaggi alla Eiffel, perfetti per implementare il metodo "astratto" della matematica moderna, con tutta la sua potenza e precisione, ma anche, di conseguenza, meno "facili".
I linguaggi OO sono derivati tutti dal capostipite Simula, da cui direttamente discendono Beta ed Eiffel. Simula ha però trovato una reinterpretazione terminologica e quasi "filosofica" in Smalltalk, che ha finito per trovarsi al centro dell'attenzione, come fosse il progenitore della specie.
Nella realtà però, la purezza di impostazione che caratterizza i linguaggi appena citati non ha trovato gran riscontro, forse perché le idee innovative faticano sempre ad affermarsi. Così in giro si sente parlare prevalentemente di linguaggi "misti", che altro non sono che linguaggi imperativi a cui sono stati sovrapposti i costrutti tipici della OOP: dal C sono derivati Objetive-C, C++ e Java, dal Pascal l'Object Pascal (Delphi), dal Modula-2 Modula-3 e da Ada Ada 95. Qualcuno di questi concetti è filtrato addirittura nella struttura del Basic. |