Newsgroup: it.lavoro.informatica
Titolo: piccolo ranting su node js come scripting language

Usato ovunque, ad esempio AWS Labmda, ma secondo me e' una follia. Al 99% l'asincroncita' non serve ed incasina enormemente lo sviluppo, tra promise e ricerche di api equivalenti che finiscono con "Sync". 
 
Poi per carita' per applicazioni che beneficiano veramente dal multithreading ci puo' stare. Per il resto e' un semi-suicidio. 

 Al 99% l'asincroncita' non serve ed incasina enormemente lo sviluppo, tra promise e ricerche di api equivalenti che finiscono con "Sync". 
 
Opinabile. La direzione, oggi, e` proprio verso la collaborazione tra sistemi asincroni. Come fai a progettare sistemi distribuiti se non avendo pezzi che si muovono indipendentemente? 


ok nei contesti che hai citato va bene infatti. Io critico l'uso persavisvo che se ne fa in contesti dove cio' non serve. Ad esempio scripting, utilities varie. 
 
Ad esempio qui ho una AWS lambda che determina alcune proprieta' di un file multimediale (immagini ecc) prima di far partire la pipeline di transcodifica eccetera. 
Tutte le callback (o promise) che Node mi forza ad usare sono completamente inutili perche' il processo e' semplicemente sequenziale. Python sarebbe stato 100 mila volte piu' facile da scrivere, leggere e testare.
 
Peccato non conosca python :D , ho una mezza idea di riscriverlo in clojure o impararmi python una volta per tutte.

 
 
A parte la risposta di 4andre4 posso dirti che a volte anche se 
tecnicamente la scelta non è la migliore, le persone che hanno il potere 
di decidere vanno in base ad altri criteri, tra cui la "moda" o quello 
che gli "piace" di più o semplicemente perché è quello che sanno fare 
meglio. O semplicemente perché è quello che "vende" meglio.
 
JavaScript è orribile ma è diventato famoso e diffusissimo. Come il PHP 
ha permesso a tante persone che avrebbero dovuto fare altro di mettere 
le mani nella programmazione. E adesso ce lo ritroviamo ovunque.
 
Se non ci fosse Node, Python taglierebbe almeno della metà la 
disponibilità di programmatori e quindi potenziali clienti.
Java&linguaggi JVM richiedono un ecosistema immenso e pesante. Go non ne 
parliamo.
Tutto è possibile, molti di questi linguaggi che ho citato sono 
supportati, ma JavaScript rende la vita più "semplice" ( = produttività 
e profitto), anche se tecnicamente e tecnologicamente discutibile.

 Tutte le callback (o promise) che Node mi forza ad usare sono completamente inutili perche' il processo e' semplicemente sequenziale. 
 
Evidentemente il tuo sistema e` stato sovraingegnerizzato. Succede spessissimo. Io lavoro attualmente su un sistema dove vengono usate tre tecnologie (ereditate da chi c'era prima) che si potrebbero buttare dritte dritte nel cestino e sostituire con un'altra, ma una sola :)

 o impararmi python una volta per tutte.
 
Mai fidarsi.
I linguaggi/framework o quel che cavolo e', sulla carta,  sono come i
politici promettono (promise? ;-) ) la luna ma come disse qualcuno,
a proposito di non mi ricordo quale linguaggio (PHP?), rende semplici
le cose normali/complicate e impossibili le cose semplici ;-)
 
Naturalmente la mia e' solo una *personalissima* opinione.
Delle cose che hai scritto mi fido sulla parola.
Spero tu non sia un linguaggio ne un framework  ;-)
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 Java&linguaggi JVM richiedono un ecosistema immenso e pesante.
 
Java richiede la JVM. Punto. Quale ecosistema immenso e pesante? Un'applicazione Java utilizza librerie esattamente come qualunque altra. Se devi scrivere un'applicazione enterprise in Python, hai bisogno dello stesso "ecosistema". Non dipende dal linguaggio, dipende dal tuo obiettivo.

 Si`, ma non dici perche` e` diventato famoso e diffusissimo :) Te lo sei chiesto? 
 
Io si. Adesso dimmelo tu.
Che sai sempre tutto (spesso sbagliato)
 
La parte che ho tagliato e' il famoso Antani.


 Che sai sempre tutto (spesso sbagliato)
 
Lo vedi che sei ossessionato? Stai calma, Sandrina. Se io sappia o non sappia, se quello che dica sia o non sia sbagliato, tu non puoi saperlo, perche` non hai i mezzi tecnici, culturali e cognitivi per capirlo. Smettila di sporcare ogni thread con le tue solite stupidaggini da troll.

 
 
 
ecco!
sopratutto quelli interessantissimi, come questo!

On Thursday, 28 February 2019 17:42:41 UTC, Cicap  wrote:

Io sto facendo lambda in Ruby. Detesto node.js con tutte le mie forze.
 
  ngw

 Evidentemente il tuo sistema e` stato sovraingegnerizzato. Succede spessissimo. Io lavoro attualmente su un sistema dove vengono usate tre tecnologie (ereditate da chi c'era prima) che si potrebbero buttare dritte dritte nel cestino e sostituire con un'altra, ma una sola :)
 
Puo' essere, infatti si poteva riscrivere senza una Promise e l'ho fatto :)


perche' lo detesti? Vediamo se siamo sulla stessa linea :)
 
In realta' come dice Andrea ES6 e' piuttosto piacevole da usare, e' l'asincronicita' quasi forzata che mi da qualche problema.


Detesto avere a che fare con callback/errback pagliacci pazzi e cazzi buffi. Avendo lavorato con Elixir so come può essere una piattaforma del genere, quindi quando vedo l’accozzaglia di promises dico “anche no, grazie”.
 
 ngw

 
 
Vero. Ma poi devi fare i conti col mercato. La storia ci ha insegnato 
che non sempre vince il migliore (VHS?).
 

 Con Java liscio non vai lontano a meno che non reinventi la ruota.
 
E perche`, con C liscio o C++ liscio vai da qualche parte? E` anche peggio.
Come dicevo nel messaggio precedente, se devi costruire un'applicazione enterprise, hai bisogno di un'infrastruttura come si deve.
Quella infrastruttura dovrai procurartela comunque, a prescindere dal linguaggio che usi. 
Ma poi, l'ecosistema Java non e` criticabile per nulla. Esiste qualcosa come Spring, che e` assolutamente insostituibile in termini di facilita` di scrittura di codice robusto.
 

 Esistono vecchie tecnologie anche per Java: Struts o Tiles, ma anche EJB.
 
Angular è "uncool". Dove lavoro per esempio lo stanno sostituendo con React.
Al di la dei singoli casi, l'obsolescenza apparentemente arriva particolarmente presto e particolarmente spesso: 
https://stackoverflow.blog/2018/01/11/brutal-lifecycle-javascript-frameworks/
 (a livello di post interessanti, non credo sia una legge scritta col fuoco) per cose che non sono sostanzialmente obsolete, ma semplicemente smettono di essere supportate dalla comunità (knockoutjs anyone?).
Personalmente vedo due "problemi" (che ho chiamato problemi per approssimazione): linguaggio, mantenimento dello stato dell'UI.
Il linguaggio può piacere o meno, ma ha un buon numero di problemi, specialmente pre-ES6: 
https://wiki.haskell.org/The_JavaScript_Problem
 
Lo stato invece è più complicato, Redux sembra una soluzione quasi decente, che però può essere scavalcata a piacere (cosa che per dire Elm, spledndida alternativa a javascript, non ti permette -> infatti, 
https://charukiewi.cz/posts/elm/
).
E poi c'è il brutto, una tonnellata di sviluppatori js che non vogliono usare framework perchè sostiene che le 7500 dipendenze di librerie prese da chissà dove per un ciao mondo siano tantine, e mi risulta difficile dargli torto. Mica tutti coglioni eh, Thomas Fuchs per dire la pensa cosí.
Questo senza nemmeno entrare nel merito di fare query al db in js e usarlo per fondamentalmente tutto, che mi pare 'na cazzata senza fine.
 
  ngw

 Questo senza nemmeno entrare nel merito di fare query al db in js e usarlo per fondamentalmente tutto, che mi pare 'na cazzata senza fine.
 
Mah, non concordo su questo. Alla fine e` un linguaggio come un altro. Se ha un motore server-side, diventa usabile come Java o C++ o qualunque altro. Non vedo grosse differenze. 
Ovviamente, alla fine, si tratta di gusti. Io cerco di valutare le potenzialita` del linguaggio in se`, che non mi sembrano ormai cosi` diverse da qualunque altro linguaggio orientato agli oggetti.
Ma non conosco altri modelli (tu nomini spesso Elixir) per cui la mia visione potrebbe essere limitata.

 Ma non conosco altri modelli (tu nomini spesso Elixir) per cui la mia visione potrebbe essere limitata.
 
Si hai ragione in verità, sono io che rompo i coglioni ogni volta che vedo js. Guardalo Elixir per bene, è sicuromente una grossa fetta del futuro. Erlang ha sempre avuto un problema: è Erlang. Elixir risolve bene, il linguaggio è bello, ha le macro ala lisp, ha un framework web della madonna, e l'adiozione sta andando molto bene.
E ReasonML, che è come React sarebbe dovuto essere: 
https://www.imaginarycloud.com/blog/reasonml-react-as-first-intended/
 
 
  ngw

A proposito, cosa ne pensi di clojurescript e i suoi wrapper di React come Reagent? 

 E ReasonML, che è come React sarebbe dovuto essere:
 
Interessante! Grazie, me li guardo.

 A proposito, cosa ne pensi di clojurescript e i suoi wrapper di React come Reagent?
 
Che non ne so un caz :)
 
  ngw