Category Archives: JavaScript

biwas di BiwaScheme un interprete Scheme in JavaScript

biwascheme_logo
Sono sempre intrigato dagli interpreti, ne ho parlato qui.

Bello provarli online, ma non solo, prendi BiwaScheme. Mysteryouso e intrigousassay 😯

Intanto c’è un gruppo su G+, da perlustrare — messo tra le cose da fare.
bws
Ma prima di subito si può scaricare l’interprete e installarlo in locale. Serve Node.js, è scritto in JavaScript.
E volendo si può anche modificare, personalizzare. Io ho cominciato con togliere metà del banner:

bs0

è stato sufficiente commentare la riga 103 del file /usr/local/lib/node_modules/biwascheme/bin/biwas così:

  var prompt = prompts.base;
  rl.setPrompt(prompt);

  console.log('BiwaScheme version ' + BiwaScheme.VERSION);
  //console.log('try (+ 1 2), etc. (Ctrl-D to exit)');

  BiwaScheme.Port.current_input = new BiwaScheme.Port.CustomInput(

Facile vero? volendo si può cambiare anche il prompt, mettere qualcosa come bs > per esempio. Basta ricordarsi che occorre sudo, siamo in /usr.

E nella directory cosa non si trova! non sempre facile, ma ci sono i commenti. Ma sono in giapponese 😜

Yutaka Hara è presente qui e qui –e altri posti ancora ma meno accessibili, ho carenze linguistiche, parlo principalmente piemonteis (pron. piemuntèis) dei contadini della zona di Carmagnola 😙

Maggiori info si BiwaScheme si possono trovare in un post di Jakub Jankiewicz, qui: How to use and extend BiwaScheme.
In questo post ci sarebbero altre cose da approfondire, per esempio Dialog –manca solo il tempo.
Inoltre, da viebel | klipse (prossimamente…) un rapido approccio a Scheme, Interactive overview of Scheme’s semantics, complementare alle specifiche di Scheme, disponibili anche sulla home di Biwascheme, queste.
:mrgreen:

Javascript – Strumenti di lavoro

Anzitutto una piccola parentesi per quei pochissimi che non hanno mai provato ad eseguire javascript. Gli strumenti minimi necessari sono un browser ed un editor di testi. Personalemente uso un paio di browser come eredità dei tempi andati quando i due browser maggiori (Internet Explorer e Firefox) si guardavano in cagnesco e quando meno te lo aspettavi un codice perfetto su uno dei due, inaspettatemente, sull’altro aveva effetti fantasiosi. Ora i due non possono più chiamarsi “maggiori” perché superati dall’ultimo arrivato Chrome di Google e, per fortuna, sembra che hanno messo fine alle ostilità allineandosi quasi perfettamente allo standard della W3C, rendendo inutili i vecchi script per il riconoscimento del browser.

Qual è il migliore editor di testi? Ovvio, quello che conoscete meglio. Io uso Textpad da troppi anni e la voglia di imparare nuove cose si è molto affievolita. Un editor molto diffuso ed apprezzato e gratuito, cosa che non guasta mai, è Notepad++.

Un accenno a Brackets, un editor open source per diversi linguaggi (HTML, CSS e JavaScript) su cui l’Adobe sta lavorando e dalle caratteristiche interessanti (completamento automatico del codice HTML e CSS, suggerimenti e chi più ne ha più ne metta). Io l’ho provato prima con un js estremamente grosso (più di 50000 righe di codice) e Brackets non riesce a portare a termine il caricamento. Poi ho provato js più accettabili e al termine del caricamento vengono segnalati errori incomprensibili; segno di un’immaturità del programma. Vedremo in futuro se manterrà le promesse.

Accanto agli editor tradizionali vi sono anche ambienti di sviluppo integrati, come Eclipse e Visual Studio che, con un apposito plugin, permettono di gestire javascript. Entrambi sono gratuiti.

Con il normale editor di testi bisogna, anzitutto, scrivere uno scheletro di pagina HTML:

<!DOCTYPE html>
<html>
<head>
<head>
<body>
< script>

// qui va messo il codice javascript

</script>
</body>
</html>

(Nota: è stato aggiunto uno spazio dopo il segno di minore e prima di script solo per motivi “tipografici”, altrimenti WordPress avrebbe cancellato tutto il tag)
Il codice precedente è perfetto per l’HTML5. Con l’HTML4 la prima riga era un mezzo papier e anche nel tag script bisognava specificare il tipo di script (type=”text/javascript”), che ora non è obbligatorio, o anche, nelle versioni più vecchie, il linguaggio (language=”JavaScript”, attualmente obsoleto). Il linguaggio poteva essere diverso, forse nelle speranze di coloro che hanno ideato l’html. In questo momento probabilmente il javascript è diventato il linguaggio “per eccellenza”, indispensabile se si vuole fare pagine web non troppo banali.

Per la mia pigrizia, poiché non voglio passare la vita a scrivere cose inutili, utilizzo anche Dreamweaver, che è un editor HTML per Windows e per Apple. Infatti tutta quella roba là sopra viene scritta automaticamente appena si crea la pagina web. Poi, per eseguire il codice, si preme il tasto F12 con cui viene richiamato il browser di default.

In mancanaza di Dreamweaver (che costa un pacco di soldi) o di altro strumento ci arrangiamo come possiamo. Scriviamo quindi il primo facilissimo script (Kernighan & Ritchie insegnano):

alert(“Hello world!”);

 

e lo mettiamo là, al posto dei puntini, all’interno del tag script:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
< script>
alert(“Hello world”);
</script>
</body>
</html>

Poi salviamo il tutto con il nome, ad esempio, Hello.htm (o quello che vi pare, basta che il nome del file abbia estensione HTM o HTML). Magari cerchiamo di salvare il file in una certella facilmente raggiungibile, così non ci dobbiamo rovinare la giornata per ritrovare dove abbiamo salvato il nostro lavoro. Anche il desktop va bene (provvisoriamente, perché è proprio brutto vedere il desktop pieno di tutte quelle icone, di solito inutili, che non sappiamo nemmeno da dove scappano fuori). Infine clicchiamo due volte sull’icona di Hello.htm e… voilà… ecco apparire una finestrella (popup modale) con scritto l’ormai usuale saluto.

Non succede niente? Evidentemente si è verificato un qualche errore di battitura.
Già, ma quale? Dobbiamo fare una ricerca da certosini, misurare la lunghezza della virgola per essere sicuri di non averla confusa col punto? Per fortuna i browser hanno i loro bravi strumenti di debugger. In particolare la Console. Con Firefox si apre il menù Strumenti -> Sviluppo web -> Console web e troveremo l’indicazione della prima istruzione che il browser non riesce ad interpretare. Con Internet Explorer si accede alla Console con premendo il tasto F12. Anche con Chrome si può accedere alla Console tramite menù (More Tools -> Javascript Console). A questo punto dobbiamo solo correggere il sorgente e riprovare.

Maurizio.

Javascript? Buona idea…

scriptSecoli fa, quando potevamo sentirci tutti più o meno pionieri dell’informatica, i computer nascevano con un linguaggio di programmazione, normalmente il Basic. La Microsoft si è fatta grande con il vecchio Mbasic, che girava sulle macchine CP/M. C’era una logica in questo: per sfruttare le caratteristiche del computer troppo spesso dovevamo impegnarci a fare un minimo di programmazione. La cosa sorprendente è che spesso avevano più successo questi programmini da quattro soldi che quelli più blasonati e commerciali.

Non so per quale strano motivo, ma da alcuni anni non viene fornito alcun linguaggio col sistema operativo. Come risultato è cresciuta l’ignoranza informatica visto che la maggior parte degli utenti non solo non sa mettere insieme due istruzioni, in qualsiasi linguaggio, ma non sa nemmeno il significato del termine “programmazione”. E questo, purtroppo, vale anche nella scuola. Se ci pensiamo bene in fondo quello che ho detto non è del tutto vero: un interprete di un linguaggio di programmazione è presente sempre, integrato nel browser e cioè il javascript. Inoltre il javascript è un linguaggio completo, semplice ed efficiente e ben poco ha da invidiare ad altri linguaggi ritenuti “importanti”. Già questi sarebbe un ottimo motivo per utilizzarlo.

Come viene giustamente evidenziato da tutte le parti. javascript è un lingaggio tipo script, eseguibile cioè all’interno di un altro programma, di un browser (Chrome, Firefox, Edge, Opera, Safari…); cioè va integrato in un file HTML, con la sua interfaccia grafica semplice ma estremamente efficace. Dopo aver scritto centinaia e centinaia di istruzioni per creare un JPanel con un aspetto minimamente decente, non si può non apprezzare la facilità con cui si riesce a fare in HTML e il CSS qualcosa di molto più bello.

jsnodeMolti sentono però l’esigenza di eseguire un javascript al di fuori del browser, stand alone, in un ambiente autonomo tipo linea di comando, anche per superare le sue innegabili limitizioni, dovute principalmente a motivi di sicurezza:

  • Non può scrivere file sul client o sul server (tramite AJAX può mandare una richiesta di eseguire uno script lato server);
  • Non è multithread;
  • Non può accedere a database; si deve sempre ricorrere ad un altro script lato server.

rhinoAlcuni esempi di software che permettono di eseguire javascript al di fuori del browser sono node.js e Rhino. Quest’ultimo, permette di eseguire JS in ambienti Java. Entrambi sono particolarmente interessanti e spero di poter approfondire la loro conoscenza.

JSON

JSON

120px-ajax_logo_by_gengns-svg

AJAX

100px-jquery_logo_text-svg

jQuery

 

Alcuni acronimi associati al javaScript:

  • JSON: JavaScript Object Notation , un tipo di oggetto particolarmente comodo per l’interscambio dei dati fra funzioni o applicazioni diverse;
  • AJAX: Asynchronous JavaScript and XML, è una tecnica per lo scambio dei dati in backgraound fra client e server;
  • jQuery: è una libreria javascript free.

codice

Come sempre succede, anche javascript ha i suoi detrattori che lo rifiutano anche all’interno di una pagina web ed evidenziano difetti veri o presunti, talvolta fantasiosi e incomprensibili. In realtà, soprattutto oggi, il web non potrebbe funzionare senza javascript; è impensabile costruire una pagina dinamica senza farne uso. Fino a poco tempo fa ci si poteva servire delle applet Java, anche per utilizzare le ottime caratteristiche di quest’ultimo soprattutto nella grafica. Ma negli ultimi tempi il 99% delle applet che si trovano in giro hanno smesso di funzionare perché vengono richiesti livelli di sicurezza sempre superiori. Allora non resta che rimbocarsi le maniche e costruire anche in javascript applicativi simili.

Maurizio.

 

JavaScript – 2

ejsSeconda e ultima (forse) puntata su JavaScript. Avendo già raccontato tutto qui: JavaScript (non è vero, esistono alternative, p.es. Node.js) non mi resta che fare un elenco di risorse disponibili online.
Poi –chissà– potrebbero esserci post sulle cose fatte (ma non da me, non in prima persona almeno).
Ah! una nota personale: vero che JavaScript e Java (è una cosa simile ma diversa) sono molto usati ma io resto dell’idea che per iniziare ci sono strumenti più adatti.
Chi ha detto Python? non è l’unico, per esempio su Windows per gli studenti c’è Microsoft Visual Studio Express, dove avete l’ambiente a finestre cui siete abituati.

Ma per i miei avventurosi giovani amici ecco da dove iniziare a documentarsi; la lista è lunga, potete scegliere.

Quick Links for Javascript Developers
lungo elenco di risorse, proprio come dice il titolo.

Introduction to the JavaScript shell
per iniziare con la shell SpiderMonkey; probabilmente si deve lanciare con js24 e non js come indicato.

JavaScript
la Wiki contiene esempi, ottima per iniziare.

JavaScript Development Tools
la ricca pagina di Robert Campbell dell’Università del Maryland.

RosettaCode Category:JavaScript
Rosetta è una raccolta di programmi tipici nei pi svariati linguaggi di programmazione; JavaScript è presente in massa.

JavaScript Shell in browser
invece del terminale potete testare il codice direttamente nel browser,

Infine, ne ho già accennato nel post precedente, c’è Eloquent JavaScript, altamente raccomandato. Ovviamente fa riferimento a una versione diversa da quella che propongo, quindi attenzione.

In conclusione se si opta per JavaScript considererei anche il browser, avete l’interfaccia gratis 😀
Ma concentrarsi sul terminale (come si faceva una volta e come fanno quelli di Linux (a volte, non sempre) vi libera da tutti gli impicci della grafica, applicandovi al codice. Considerate anche l’installazione di una IDE, p.es. Geany.
Oppure c’è sempre l’ipotesi Visual Studio, indicata all’inizio.

Dai che siete in ritardo :mrgreen: (sì, anch’io) :mrgreen:

JavaScript

JavaScript-logoQuando qualcuno mi chiede quale linguaggio io di solito rispondo “Python” e subito dopo mi rendo conto che sarebbe stato meglio dire “dipende“. Anche perché la risposta poteva essere più lunga e il dialogo facilitato. Ma sapete com’è 🙄
Oggi (OK, è vecchia ma adesso devo rispondere per davvero) invece la richiesta è molto più specifica; e non so rispondere, aiuto 😳
Si può usare JavaScript fuori dal browser; può essere utile per imparare a programmare, per esempio nella scuola?

Volendo si può, anzi è facilissimo, c’è –per esempio– SpiderMonkey.
Con Ubuntu s’installa con sudo apt-get install libmozjs-24-bin.
Per Windows lo trovate googlando. A me ha proposto un posto che non avrei mai immaginato, Stanford University, qui: SpiderMonkey JavaScript Shell.
Quindi se si insegna lì si può usare. Anzi adesso provo anch’io:

j0

OK, continua, ma voglio provare davvero, interattivamente:

j1

Eseguire uno script (t.js):

var total = 0, count = 1;
while (count <= 10) {
    total += count ;
    count += 1;
}
print("la somma dei primi 10 numeri è", total);

j2

e anche (fac.js):

//calcolo del fattoriale
function fac(n) {
if (n == 0)
return 1;
else
return fac(n - 1) * n;
}

/* test per 10! */
print("10! =", fac(10));

j3

Il passo successivo sarebbe quello di passare sulla linea di comando uno o più parametri(fac-p.js):

function fac(n) {
if (n == 0)
return 1;
else
return fac(n - 1) * n;
}

N = scriptArgs[0];
print(N, "fattoriale =", fac(N));

j4

Ma serve documentarsi, per esempio leggere Eloquent JavaScript di Marijn Haverbeke.

marijnMarijn (ahemmm ij in olandese… ei, forse) è un tipo interessante: Prolific coder. Person behind CodeMirror, Eloquent JavaScript, and Tern. Free-lancer.

Ulteriore problema con JavaScript: ne esistono diverse versioni, chissà se davvero SpiderMonkey è quella che fa per me?

Quindi: chissà? qualcuno lo usa? interessa? :mrgreen: