Newsgroup: it.comp.lang.javascript
Titolo: Re: perchè non eliminare il javascript?

 stesse cose?
 
Ci abbiamo messo 20 anni a liberarci di Java (e di Flash) sul web, a tu
lo vuoi resuscitare? :P
 
L'unico linguaggio client-side supportato dai browser è Javascript,
quindi lì non ci scappi e devi saperlo.
 
Anche WebAssembly non è "nativo". Puoi creare funzioni di supporto, ma
non ha accesso al DOM, quindi non puoi "scrivere sulla pagina". Devi
comunque passare per JS.
 
Server-side puoi usare quello che vuoi. Quello dipende dai tuoi server.
 
Se vuoi un consiglio per non farti venire il mal di testa, Javascript è
(forse l'unico linguaggio) davvero Object-Oriented, mentre Java (e la
maggior parte dei cosiddetti linguaggi OOP) è Class-Oriented.
 
Se cerchi di applicare gli stessi concetti di Java a JavaScript non
farai altro che odiarlo.
 
Altri consigli sparsi:
 
- Non programmare a oggetti in JS. Cerca di usare uno stile funzionale
(non procedurale. Funzionale)
 
- Parti da jQuery. Tanti diranno di no, ma è semplice, molto intuitivo e
ha un sacco di plugin
 
- Quando hai preso mano, e devi fare applicazioni più complesse,
guardati Svelte e Vue (o, bleah, React :P ). Lascia perdere Angular
 
Bye.

 vorrei chiamare così io :) )
 
JS è nato integrato nei browser come linguaggio di scripting, mentre
Java ci era stato infilato come plugin, e non ha mai avuto accesso
diretto al DOM. Viveva nel suo box, come Flash. Quando JS è arrivato ad
avere le stesse potenzialità (soprattutto a livello di animazioni ed
effetti), la scelta logica era eliminare i due non nativi, e anche per
quello ci sono voluti anni perché un sacco di siti dipendevano da loro.
 
La botta finale l'ha data Apple, quando ha tolto il supporto per
entrambi nei suoi cellulari e tablet.
 
Bye.

 
 
a questo punto ti chiedeo "perchè?"
gli suggerisci di imparare una libreria e gli sconsigli un framework?
 

 purtroppo è quel che ho fatto.
 
perchè stai cercando di imparare un linguaggio funzionale applicando i 
concetti di un linguaggio ad oggetti
 
sono 2 paradigmi completamente diversi come approccio
 

 gli suggerisci di imparare una libreria e gli sconsigli un framework?
 
I framework, soprattutto quelli moderni, stravolgono completamente il
tradizionale flusso di lavoro di JS (funzionale ed event-based) per
andare verso il dichiarativo. È un cambio completo di mentalità e di
approccio ai problemi.
 
Non aiutano per niente a imparare il linguaggio, e dalle (centinaia,
ormai) di interview che ho fatto a "sviluppatori frontend" (che si
traduce quasi 1:1 con "sviluppatori React"), ho notato che una buona
percentuale non conosce JS, ma solo React. Si trovano in crisi a gestire
promise senza axios, o a usare map e filter sugli array, o non hanno
chiaro le conseguenze e i vantaggi della programmazione asincrona, e
mettono `await` ovunque "perché altrimenti non funziona".
 
Per non parlare di HTML e CSS :P
 
Quando inizi ad avere un'applicazione complessa, con diversi stati di
cui tenere conto, un framework moderno è l'unica salvezza (ma può essere
anche la tua tomba, se lo usi male).
 
È semplicemente un discorso di percorso di studio: parti semplice e
produttivo, poi impari i concetti più complessi un po' alla volta, e
alla fine fai il progetto grosso con i tool grossi.
 
Per non parlare dello scaffolding. Credo non esista più nessuno in grado
di inizializzare un'applicazione react senza create-react-app, mentre
per jQuery basta uno <script> nell'HTML.
 
Uno dei motivi per cui ho sempre odiato Java e ho abbandonato lo
sviluppo su Android, per esempio, è tutta la baracca necessaria per
scrivere un banale hello world: devi studiarti maven, gradle, la
sintassi del manifest, una particolare struttura di directory, il suo
dialetto XML per il templating, etc. All fine studi 4 linguaggi invece di 1.
 
Per lo stesso motivo non ho mai amato Symfony con PHP, e preferivo ZF o,
meglio ancora, Slim e Silex.
 
Lo stesso succede con i framework JS: devi studiarti npm,
webpack/rollup, JSX, oltre al lifecycle del framework e a tutte le
librerie (css-in-js, state management, etc.) con la loro sintassi e
grammatica.
 
È semplicemente un ostacolo troppo grosso all'inizio, e la gente finisce
con "una volta ho fatto un tutorial che fa così. Lo rifaccio ogni volta
uguale perché non so cosa succede se cambio qualcosa".
 
OK, mi fermo qui col rant. :D
 
Bye.

 ma che rottura di palle!
 
 
è la vita