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:

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • Roberto Gambuzzi  Il 18 febbraio 2015 alle 15:23

    Il javascript come linguaggio per apprendere non è il massimo. Tipizzato dinamico (più o meno) debole, dove tutto è un oggetto, o una funzione, o un incrocio dei 2… insomma per quanto la differenza fra classi, struct, funzioni contenenti funzioni stia venendo a mancare con l’avanzare dei linguaggi, partire studiandole e sapendo la differenza fra una classe ed una struct credo si obbligatorio. ( più C++ per tutti 🙂 )

  • Theodore  Il 18 febbraio 2015 alle 17:21

    Fuori dal browser un esempio che sta venendo usato moltissimo è node.js, un REPL modellato attorno a v8 e libuv.
    v8… diciamo che spidermonkey : mozilla = v8 : google.
    Libuv è una libreria che all’inizio trattavasi solo di eventi gestiti meglio che in libevent, ma è diventata sempre di più qualcosa di simile ad sdl (astrazione su hardware, threads, ipc) ma senza codec e grafica 😉
    Ci stanno infilando sempre più roba, ed è molto gradevole nel suo campo di applicazione (raccogliere dati tramite web quando i dati appartengono a milioni e milioni di clients che usano il browser e si vuole presentargli qualcosa di bellino e sbrilluccicante) e in genere ovunque si necessiti di web apps altamente scalabili e sviluppate in fretta.
    Ma ancora pur avendo node-webkit nessuno ci ha fatto un line mode browser done right 😦

Trackback

  • JavaScript – 2 | Ok, panico su 20 febbraio 2015 alle 10:07

    […] 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 […]

  • Approssimazioni numeriche | Ok, panico su 9 aprile 2015 alle 09:35

    […] con i linguaggi? Certo, ecco JavaScript, nella versione interattiva di cui ho parlato tempo fa, qui e […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: