Newsgroup: it.lavoro.informatica
Titolo: E se si facesse tutto con JavaScript?

Premessa. Dobbiamo sviluppare un'applicazione web, partendo praticamente da zero. Ciò che esiste è in 
ASP.NET
, ma a parte essere legati mani e piedi a Microsoft, non è nemmeno tutta 'sta efficienza.
Io, avendo lavorato parecchio con Python e con CherryPy, sulle prime ho pensato: nessun problema, si percorre la strada già fatta, backend integralmente in Python e front-end in html/Javascript per chi accede con browser (sarà la maggior parte delle persone) e eventuale app, magari da commissionare a terzi, se si vuole andare su Android o IOS.
 
Poi mi è venuta un'idea: visto che tanto con Javascript devo avere a che fare, perché non sviluppare integralmente in Javascript, basandomi su Node? Avrei a che fare con un linguaggio unico per tutti.
 
Ecco, la domanda (che sto spammando in giro...): qualcuno di voi ha già tentato di percorrere questa strada? se si, ha dovuto tornare indietro? e per che motivo?
 
Grazie a tutti.
 
Luca

 Poi mi è venuta un'idea: visto che tanto con Javascript devo avere a che fare, perché non sviluppare integralmente in Javascript, basandomi su Node? 
 
Dipende tutto dal tipo di applicazione che devi sviluppare. E` fattibile tecnicamente, ma la domanda e` se ti convenga. Se sei proficient in Python, perche` rinunciarvi? C'e` un vantaggio vero nell'usare JS per tutto? 
 
 


De facto no, se non l'approfondimento serio di un unico ambiente di sviluppo. Lo dico meglio: se ho due ambienti, devo inevitabilmente creare una separazione netta tra chi si occupa di backend e chi si occupa di frontend. Non che non lo debba fare ugualmente, sia chiaro, ma forse la mobilità delle persone diventa maggiore. 
Ah, ti manca un elemento: io conosco Python, il resto del team no. Potrebbe essere un vantaggio, come dici, però a me il dubbio è venuto.

 e per che motivo?
 
abbiamo fatto alcuni progetti con lo stack mean (mongo, express, angular 
e node). è sicuramente uno degli stack piú produttivi e nessun problema 
da tornare indietro. ciò non toglie che, avendo un molto ampio know-how 
in altra tecnologia (java), per progetti piú evoluti lo consideri un 
salto nel buio. ma non perché la consideri una tecnologia inferiore, ma 
perché di fronte a problematiche poco piú che elementari so al volo che 
decisioni prendere mentre con quella tecnologia no. 

 dovuto tornare indietro? e per che motivo?
 
Dipende dal team di sviluppo. Se si trova a suo agio con JS, allora perchè 
no? Altrimenti ti consiglio comunque di provarci se il progetto è piccolo/
medio, magari prototipando qualcosa di quick& dirty essendo pronti a 
tirare i remi in barca, in quanto JS non è semplice come linguaggio ed il 
rischio di trovarti a mantenere spaghetti code è grosso (parlo per 
esperienza :D).
 
Per esempio se vieni dal mondo della programmazione sincrona trovarsi a 
gestire tutto in modo asincrono è un bel colpo, devi cambiare 
radicalmente il modo di ragionare.
 
Un libro che secondo me qualsiasi sviluppatore JS dovrebbe leggere e` 
JavaScript: The Good Parts di Douglas Crockford [1], te lo consiglio 
vivamente in quanto evidenzia in primis i difetti del linguaggio e poi i 
pregi, insegnandoti come evitare eventuali pitfalls. Inoltre è scritto 
davvero bene da un vero guru di JS [2]
 
my 2 cent
g4b0
 
[1] 
http://shop.oreilly.com/product/9780596517748.do
 
[2] 
https://en.wikipedia.org/wiki/Douglas_Crockford
 

 Ah, ti manca un elemento: io conosco Python, il resto del team no. 
 
Eh, ma se il team non conosce Python perche` proponevi un "backend integralmente in Python"?
 
Quanti sviluppatori ci sono nel team e quali competenze hanno?

 rischio di trovarti a mantenere spaghetti code è grosso
 
JS non e` piu` complicato di qualunque altro linguaggio e il rischio di produrre spaghetti code non e` maggiore che con qualunque altro linguaggio. Il libro di Crockford e` solo la punta dell'iceberg e ormai abbastanza lontano dalle ultime evoluzioni EcmaScript. Se proprio si vuol leggere qualcosa di rilevante, consiglio la serie "You Don't Know JS".

On Monday, 9 July 2018 11:50:20 UTC+1, 4ndre4  wrote:
 
[...]
Aggiungo che se si usa ESLint, gran parte delle regole di cui parla Crockford sono automaticamente controllate. 
 

 Quanti sviluppatori ci sono nel team e quali competenze hanno?
 
3 + io. Gli altri hanno sviluppato con ASP.net, io con Python e JavaScript (l'ultimo, in versione piuttosto vecchiotta, ormai, e utilizzando ExtJS4). 
Forse è un errore, ma si voleva migrare verso qualcosa di meno Microsoft-centrico. 
 

 qualcosa di rilevante, consiglio la serie `You Don't Know JS`.
 
Se programmi in JS IMHO quel libro va letto, poi le differenze con ES5/ES6 
le puoi valutare. Oppure puoi guardarti questo video di Crockford [2], ma 
dopo aver letto il libro.
 
Io ogni tanto sfoglio ancora il Kernighan&Ritchie, la cui prima edizione 
risale al 1978...
 
[1] 
https://stackoverflow.com/questions/39713165/regular-expression-to-
 
match-optional-end-of-string
[2] 
https://www.youtube.com/watch?v=Y5CPliWGNXI
 


Che ti è successo, hai avuto un ripensamento ed hai tolto l'attacco 
personale, per poi cancellare il post originale da google groups? Peccato 
che il mio news server fosse già sincronizzato...
 
Apprezzo il gesto, ma prima di pigiare invio la prossima volta magari 
conta fino a 10 :D
 
g4b0

 risale al 1978...
 
Ed e` totalmente disallineato con gli ultimi standard del C. A dire il vero, persino la seconda edizione e` uscita prima della ratifica dello standard e necessita di Errata Corrige (vedi il cast sul valore di ritorno di malloc).

 personale, per poi cancellare il post originale da google groups?
 
No, niente affatto. Nessun ripensamento. E` che non mi ricordavo se eri tu quel tale o era Star. Eri tu, purtroppo per te.

 Forse è un errore, ma si voleva migrare verso qualcosa di meno Microsoft-centrico.
 
Non e` una cattiva idea, in generale, ma bisogna considerare la learning curve ed eventuali rischi legati all'uso di una tecnologia che non dominate. Poi, bisogna consideare le priorita` del tuo progetto, le eventuali deadline. Non sarebbe da escludere il fatto di continuare ad usare 
ASP.NET
 se avete constraint specifiche (che non conosco). I fattori da considerare per scelte tecniche radicali sono tanti.
 


Scritch, scritch! Occhio che ad arrampicarcisi sopra lo specchio si rompe!
 
E poi la tua scusa non regge affatto. Hai scritto: "Hai dimostrato 
altrove di non avere nessuna esperienza con JS", che dall'alto del tuo 
pulpito calza sia per me che per TheStar, oltre che per il 99% di USENET. 
Quindi a che pro cancellare il messaggio per riscriverlo senza infamare?
 
Sono curioso.

 ritorno di malloc).
 
"totalmente disallineato" non direi, penso che sia ancora usato oggi come 
testo di riferimento per il linguaggio C nei corsi universitari. E se si 
vuole imparare il C IMHO è necessario passare per il K&R, con sottomano 
l'errata corrige. Ma tu sarai sicuramente un guru del C, ed io non 
capisco niente. 
 
C'è qualche altro settore in cui puoi darci preziosi consigli, in modo da 
ambire un giorno ad essere non dico alla tua altezza, ma almeno degni di 
rivolgerti la parola?
 
 

 l'angolo. 
 
bah.
a parte che le promise/future non sono una peculiarità del javascript ma 
in generale della programmazione asincrona (ben presente anche negli 
altri principali linguaggi), ma dire che inviti a scrivere spaghetti code 
non sta ne in cielo ne in terra.
e magari assolviamo pure quel crogiuolo di incoerenza qual'è il php, dove 
lo spaghetti code è sempre il piatto del giorno...
 


Se vuoi introdurre qualcosa di nuovo fallo, ma se imponi un intero nuovo stack al tuo team non solo puo' darsi che ti mandano a cagare, ma lo stack che proponi diventa il capro espiatorio per lo scibile umano.
Tra l'altro per me non e' che ci sia tutto 'sto vantaggio ad aver tutto nello stesso linguaggio, anzi.
Io userei ASP.net per un endpoint GraphQL, e boh, Vue.js o al peggio React per il frontend. Molto comuni, quasi decenti, ti diverti e stai sicuro.
 
  ngw


MALOUSANOTUTTIININTERNETANCHEFACEBOOK!
 
  ngw

 C'è qualche altro settore in cui puoi darci preziosi consigli[...]
 
"A lavare la testa all'asino si perde il ranno e il sapone" ;)
 

 Premessa. Dobbiamo sviluppare un'applicazione web, partendo praticamente da zero. Ciò che esiste è in 
ASP.NET
, ma a parte essere legati mani e piedi a Microsoft, non è nemmeno tutta 'sta efficienza.
 
L'efficienza non e' /sempre/ demerito dell'ambiente utilizzato.
Spesso e' funzione del /manico/ .
 
Correzione.
L'efficienza non e' /MAI/  demerito del ambiente/linguaggio di sviluppo
e /SEMPRE/ dipendente dal manico!
 
ASP.NET
? Sembra strano ma lo ho usato.
Per me era soprattutto C#. ASP? Un dettaglio di poco conto .NET una 
complicazione dovuta al tempo ed agli oggetti.
In fondo non e' altro che scrivere un file sequenziale.
 
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 dove lo spaghetti code è sempre il piatto del giorno...
 
Cosa c'entra il PHP in tutto ciò? Anche tu provi a buttarla in caciara 
come il tuo amico?
 

 Anche tu provi a buttarla in caciara come il tuo amico?
 
Chi e` che starebbe cercando di buttarla in caciara? 
 

 Quindi a che pro cancellare il messaggio per riscriverlo senza infamare?
 
Yawn. Stai diventando noioso. Il punto e` che non conosci JS. Accettalo e vivi felice.
 
PS non ho bisogno di arrampicarmi sugli specchi quando parlo con gente come te.
 

 In fondo non e' altro che scrivere un file sequenziale.
 
LOL :D

 come te.
 
Però lo fai. E non hai risposto alla domanda che ti ho fatto, girando la
questione sul fatto che sono noioso e che non consco JS. Te la rifaccio:
 
A che pro cancellare il messaggio per riscriverlo senza infamare?
 

 imparare il linguaggio C.
 
Tralascio tutto il resto tanto discutere con te è utile quanto cercare di
ragionare con una donna con il ciclo. Prendo solo più questa tua
affermazione per dimostrare il tuo scopo: litigare.
 
Premetto che ho letti entrambi i libri, il D&D non è neanche paragonabile
al K&R in ambito professionale. Se invece stai imparando il C pure il D&D
è un buon libro, anche se personalmente continuo a preferire il K&R. Detto
questo se io avessi detto che il D&D è un buon libro, tu avresti affermato
esattamente il contrario, citando magari la pagina di wikipedia del K&R
dove dicono: "The book was central to the development and popularization
of the C programming language and is still widely read and used today.
Because the book was co-authored by the original language designer, and
because the first edition of the book served for many years as the de
facto standard for the language, the book was regarded by many to be the
authoritative reference on C." Classico comportamento da troll litigioso.
 
Finite le premesse vengo al succo con una domanda: ma perchè fai così? Hai
uno scopo o sei malato? Hai già una certa età, nel 2001 eri già attivo su
USENET, quindi all'incirca siamo coetanei, forse sei anche più vecchio di
me. Io ho smesso con questi atteggiamenti dopo le scuole medie, più o
meno.
 
Ho fatto un po' di ricerche sul tuo conto, ed ho scoperto che non ti
limiti solo all'informatica, litighi anche al di fuori di USENET. Per
esempio chi te lo fa fare di litigare su youtube sotto ad un video dal
titolo "Scampate dall'inferno! Credi in Gesù Cristo e sarai salvato"[1],
apostrofando chi crede con il tuo alterego walkietalkie74?
Salvo poi cancellare come di consueto i tuoi interventi, che però vengono
ripresi nel blog di quegli invasati [2]
 
Ce l'hai proprio a morte con chi crede nell'aldilà, qui [3] hai cambiato
nickname in corsa, da Andrea Laforgia a Johnny, peccato che nel frattempo
ti abbiano quotato. Comunque lo stile dialettico è incofondibile, sei tu.
 
Altro argomento, altro litigio, con relativo nuovo nickname [4]. Qui hai
di nuovo cancellato i tuoi interventi, ma la gente ti quota, peccato non
poter cancellare anche i loro commenti. Uno addirittura ti definisce:
"Guarda, Zaphod Beeblebrox è il nickname di Andrea Laforgia, lo trovi
anche su Facebook; è un violento maleducato, indefessamente alle prese con
la sua ottusa "opera" di "proselitismo ateo", applicata con quella stessa
"ferocia" e intolleranza tipica di un inquisitore domenicano (coincidenza
degli opposti?)."
 
Bella definizione, ma ce ne sono altre sulla stessa pagina :D
 
Dopo questa carrellata di esempi ti ripropongo la domanda: perchè lo fai?
Ti diverti? Ma non hai una vita al di fuori della rete? E se si ti
approcci in questo modo al prossimo anche nella vita reale?
 
Ti prego rispondimi sinceramente senza alterarti, sono curioso.
 
Fine del mio intervento, ora aspetto la tua risposta armato di birra e
popcorn, poi ti plonko.
 
Goodbye *4ndre4* (aka walkietalkie74, aka Zaphod Beeblebrox, aka Johnny,
aka Claudio)
 
 
P.S.
Followup su it.cultura.cybersocieta.lamer, così la smettiamo di inquinare
questo NG.
 
P.P.S.
Ma sei veramente in zona PDT, o ti nascondi penosamente dietro ad una VPN?
Da quel che ricordo eri emigrato a Londra, non in Silicon Valley
 
[1] 
https://www.youtube.com/watch?v=1izUVIylNr0
 [2]
https://aggiungereetoglierenellabibbia.wordpress.com/2011/12/06/la-
 
calunnia/ (CTRL+F walkietalkie74)
[3] 
https://ruvid.net/video/porta-a-porta-20-04-2011-gli-italiani-e-l-
 
aldila-ZrXOZnG7ndc.html (CTRL+F Johnny)
[4] 
https://plfilm.net/v-gustavo-rol-e-la-meccanica-quantistica-integrale-
 
py73mZZw7FY.html (CTRL+F Zaphod)
 

 Ma quando mai. Nei corsi universitari possono usare quel che vogliono.
 > Se dovessimo basarci su quello che insegnano all'universita` per
 > sapere cos'e` rilevante, staremmo freschi.
 
Uno che scrive questo non ha studiato all'universita'.
E che di base sei un po' ignorantello, francamente si vede.

 Cosa c'entra il PHP in tutto ciò? 
 
che è lo spaghetti code per antonomasia. e ne hai in passato esaltato le 
qualità.


Perche', di grazia, cosa fa di preciso una applicazione web lato server?
Invece di fare, come sempre, lo stolto (lo dicevano i Romani antichi a
chi lollava di continuo) spiega dove sono le difficolta'.
E magari quali vantaggi danno certi ambienti/linguaggi rispetto ad altri
seza tirare in ballo i massimi sistemi (a quello ha gia' provveduto 
G.Galilei).
 
P.S.
Anche lo spaghetti-code spesso deriva dal manico.
Mi puoi dare anche una Ferrari ma se come pilota sono una pippa pippa 
rimango.


 
 
Decisamente bello (addirittura quasi nel termine latino)
Trollflamiamo insieme?  ;-)



;-)
 
Non amici. Talvolta compagni di merenda.
Se ho capito a chi riferisci.
Non gli sta simpatica la Pretty Home Page.
Confonde il mezzo con la causa.
Capita.
Ho visto cose che voi umani......
Oggetti proteiformi.
Classi con discenti da 5 a 50 anni, sovraccariche.
Professori neonati o rimbambiti (e' un sinonimo)
Ho visto anche piaccapipparoli decenti e geniali.
 
Insomma: Ho visto....
Dovuto omaggio ad Allen Ginsberg.
Meglio di tanti vati,guru, profeti, santi di una improbabile
scienza chiamata informatica.
 
 
 
-- 
ac (x=y-1)  detto 12x7 pollici


 A che pro cancellare il messaggio per riscriverlo senza infamare?
 
Ti ho gia` risposto.

 E che di base sei un po' ignorantello, francamente si vede.
 
LOL :) Sembrare ignorante a certi elementi che commentano in questo gruppo e` un onore. 

 Dopo questa carrellata di esempi ti ripropongo la domanda: perchè lo fai?
 
Esempi?? LOL :D Mi fai sganasciare :) Ma fatti una vita, patetico buffone.

 Perche', di grazia, cosa fa di preciso una applicazione web lato server?
 
Ti spiegherei "cosa fa" se tu avessi le capacita` intellettive per comprenderlo.
Purtroppo non e` cosi`.
 


E poi dici a me della volpe e dell'uva?
Non e' vergogna dire /nonloso/ talvolta e' liberatorio.
Il problema e' che a te dovrebbero ingabbiarti come camelopardo.
Ma forse sei solo un dodo (degno di protezione, ovviamente)
Comunque /non/ te lo spiego!


 
 
Sentime Tuta gia' ciavevo dato
che quarcheduno te l'avesse rotta
ma che in sto stato poi fosse aridotta
num me lo sarei manco inzoggnato
De tante donne che me so scopato
se ho trovato a sto monno na mignotta
che avesse nel fracoscio un'antra grotta
vorebbesse impiccato.....
 
 
La ho scritta a memoria
Roba di un vecchio informatico.
Lascia perdere improbabili faccette cara Tuta.
Solo virgole sbagliate in un incoerente balbettio.


 qualità.
 
È evidente che non vedi codice PHP da anni, se mai l'hai visto. La tua 
affermazione avrebbe potuto essere vera nei primi anni 2000, ormai la 
situazione è cambiata parecchio. Vatti a vedere per esempio cosa fa 
Composer.

 Cioe` io ti rispondo sul pezzo
 
Ahaha.
 
Il tuo cherry picking è patetico, il tuo arrampicarti sugli specchi 
ridicolo, il tuo codice è così penoso che non ci posti neanche uno 
snippettino piccolo piccolo. Il tuo committente probabilmente ha degli 
sgravi fiscali a tenersi uno come te, oppure anche a Londra vige 
l'obbligo di assumere una quota di lavoratori iscritti alle categorie 
protette?
 
Dimenticavo, anche la tua attitudine a dire agli altri che non conoscono 
l'argomento di cui si discute è pietosa, oltre che ripetitiva e noiosa.
 
Sinceramente speravo in una risposta più alla tua altezza, sei stato 
sottotono. Vabbè, ho sprecato birra e popcorn. 
 
PLONK.
 
P.S.
Non sono misogino, le battute sulle donne che [hanno il ciclo|
parcheggiano|programmano|...] sono normali tra uomini. Ma se ho ben 
capito tu sei un mordicuscini, quindi forse non è il caso farle con te.
 

 LOL :) Sembrare ignorante a certi elementi che commentano
 > in questo gruppo e` un onore.
 
Tu non hai studiato in qualche facolta' impegnativa
all'universita', e si vede.


sí, dopo però che te ti sei andato a vedere cosa fanno nodejs e express.

 ha scritto:

Li conosco entrambi, tranquillo, ho lavorato sullo stack MEAN.
 Comunque il paragone piú calzante con Composer sarebbe stato 
 npm.
 
-- 
 
 
----Android NewsGroup Reader----
http://usenet.sinaapp.com/
 


quindi un package manager, interessante. ma che c'entra? si parlava della 
scrittura del codice.


Credo che il punto sia che hai tirato fuori il software piu' banale dell'universo, che hanno tutti da eoni. Bundler di Ruby, per dire, ha quasi 10 anni.
 
  ngw


No, si parlava di linguaggio di programmazione "spaghetti code per
antonomasia". Rootkit insinuava la correlazione 1:1 tra PHP e codice
scritto male, che è un retaggio del passato. Al che io l'ho invitato ad
aggiornarsi, perchè è evidente che le sue competenze di PHP sono ferme ad
un paio di decenni orsono.
 
A fine 900, o nei primi anni 2000, periodo in cui poteva aver senso
definire PHP "lo spaghetti code per antonomasia", per iniziare un progetto
scrivevi:
 
# vi index.php
 
E poi vi inserivi dentro codice PHP, codice JS, una manciata di SQL e per
finire dell'HTML, in parte ouputtato da degli echo dentro a dei loop, in
parte liscio. Lo spaghetti code per antonomasia, in ambito web. Però in
quegli anni anche con JS si scriveva del bel codice di merda eh, non so se
vi è mai capitato di mettere mano al codice dei primi menu collassabili...
bei tempi :D
 
Oggi per iniziare un nuovo progetto PHP scrivi, per esempio:
 
# composer create-project --prefer-dist laravel/laravel
 
Poi dai qualche colpo di
 
# php artisan [comandi vari]
 
E ti trovi a sviluppare dentro ad un framework MVC scritto seguendo i
migliori Design Pattern, che ti impone una via che non è certo lo
spaghetti code. Se poi dentro ad una view scrivi del codice PHP che apre
una connessione al DB ed inizia a fare query varie, allora il problema sta
tra la sedia ed il monitor, non è certo PHP e tantomeno Laravel.
 
Da qui l'invito a dare un'occhiata a Composer.
 
Altro enorme passo in avanti fatto da PHP, anche grazie all'avvento di
Composer, sono i PSR del progetto PHP-FIG [1]. Nonostante sia un progetto
ancora agli albori ormai pressochè tutto l'ecosistema PHP vi sta aderendo,
rendendo il riuso del software un mestiere molto meno complicato del
passato. Tenete presente che ad oggi tramite composer si possono scaricare
188K packages per un totale di 1.3M di versioni [2], tutti quanti
virtualmente compatibili tra loro se aderenti agli standard.
 
Tutto questo per dire che la comunità PHP, conscia degli errori commessi
nel passato,  si è rimboccata le maniche e il ha risolti egregiamente,
pertanto nel 2018 affermazioni come quella di rootkit sono quantomeno
anacronistiche.
 
Il tutto naturalmente IMHO.
 
g4b0
 
 
[1] 
https://www.php-fig.org/psr/
 
[2] 
https://packagist.org/statistics
 
 

 CUT
 
Porta pazienza, ma non stai dicendo nulla del linguaggio, solo del suo ecosistema, che apparentemente ti da nel 2018 la possibilita' di fare quello che io facevo 10 anni fa sia in Ruby che in Python.
Sicuramente l'ecosistema aiuta molto, ma resta un linguaggio debolmente tipato con una tonnellata di gotchas e warts.
 
  ngw


Non sapevo cosa significasse warts, una rapida googlata ed ho quasi 
vomitato. Prova a metterlo su google immagini :O 
In ambito informatico a cosa si riferiscono?
 
Una tonnellata di gotchas: me ne elenchi un paio di gravi?
 
Cmq non capisco perchè ti accanisci in questo modo su PHP. Lo usi per 
lavoro e ti ha dato problemi? Io lo uso quotidianamente e mi trovo bene, 
ha i suoi difetti, ma tutti i linguaggi ne hanno. Vedi JS, per esempio, 
tanto per tornare un pochino IT.
 
Poi lungi da me scatenare un flame sui linguaggi, solo che non capisco il 
motivo che avete di sparare a 0 su PHP.

 motivo che avete di sparare a 0 su PHP.
 
E' una banale valutazione tecnica, nessuno spara a zero.
 
  ngw

 E' una banale valutazione tecnica, nessuno spara a zero.
 
PHP non è perfetto, ma è migliorato molto e continua a farlo. Poi ognuno 
scrive il proprio sw con i linguaggi che preferisce, se può permettersi 
la scelta. 
 

 la scelta.
 
Ci mancherebbe altro fosse peggiorato :D
 
  ngw

 ad un paio di decenni orsono.
 
per la precisione siamo partiti dalla tua affermazione secondo la quale i 
promise/future oltre ad essere difficili da capire (ovvio, se non si 
hanno nozioni di asynchronous programming) indurrebbero a scrivere 
spaghetti code. possiamo ripartire da qui se credi.
 
quanto ai retaggi del passato, se è vero che le maggiori backward-
compatibility breaks si sono avute con la 7 andrei cauto nel parlare di 
decenni fa. anche ammettendo che abbia rivoluzionato il linguaggio la 
merda da smaltire direi che sia tuttora una quantità iperindustriale.

 
 
Embè? Non ti piace? Non usarlo. Un sacco di gente lo fa, si trova
 bene, ed internet è disseminato di loro software. Dai, finiamola
 con sto flame.


  sto flame.
 
guarda, leggendo la mail di un cliente mi ha ricordato la sua vicenda: il 
suo it manager, praticamente a digiuno di programmazione, ha avuto l'idea 
negli ultimi 3/4 anni di riscrivere da se le procedure di un gestionale 
as/400 (fuori supporto) in php. adesso con queste procedure noi ci 
dobbiamo interagire e, per forza di cose, andare a vedere il codice 
perché ovviamente niente è scritto per essere interoperabile. da mettersi 
a *piangere*. 
 
"un sacco di gente lo fa", parecchi dovrebbero mettersi le mani dove dico 
io.
 
php è tuttora usato quick-and-dirty, altro che retaggi del passato.
 

  spaghetti code è un rischio che si corre.
 
non capisco il collegamento. le promise (che come ti dicevo esistono 
anche in altri linguaggi) dal punto di vista semantico/sintattico non 
hanno praticamente nulla di particolare e consentono di programmare in 
modo asincrono come se fosse sincrono. semmai dovessi dire qualcosa me la 
prenderei con le callback. 
 

 mettersi a *piangere*.
 
sed -i -- 's/php/linguaggioatuascelta/g' *
 
In questo caso il problema sta tra la sedia ed il monitor, non puoi dar 
la colpa a PHP di tutti i sw di merda in circolazione.


E va bene. Infatti se non erro le promise nascono per risolvere il 
problema delle callback hell, tipico della programmazione asincrona.
Vedi ad esempio il primo esempio di questo sito [1]: è il classico codice 
scritto da chi approda alla programmazione asincrona provenendo dalla 
programmazione sincrona. 
 
Quindi rettifico la mia affermazione, così magari la finiamo: *per chi 
proviene dal mondo della programmazione sincrona* non sono le promise ad 
essere complicate, ma il JS asincrono in se.
 
Anche il link che ti ho postato inizia così: "Asynchronous JavaScript, or 
JavaScript that uses callbacks, is hard to get right intuitively."
 
P.S.
Ma tu in che linguaggi programmi?
 
 
[1] 
http://callbackhell.com/
 

 everything will look like a nail.
 
Se non ricordo male il consiglio arriva dal libro "The Pragmatic 
Programmer". Sarebbe bello, ma se devi coniugare lavoro, famiglia e sonno 
è abbastanza utopico, a meno di avere la fortuna di poter sperimentare 
sul lavoro.
 
Tu in che linguaggi programmi?

 Una tonnellata di gotchas: me ne elenchi un paio di gravi?
Magari non sono gravi come intendi tu, a me fan cagare:
http://toykeeper.net/soapbox/php_problems/
 

  l'asincronia in generale potrebbero nascondere delle insidie.
 
Attenzione. Ho detto che non ho mai scritto roba in JS per server, NON che non ho mai scritto roba per server. Senza contare che tutte 'ste cose simpatiche - come le promises - sono cose che semplificano MALEDETTAMENTE la vita per uno abituato a lavorare su thread paralleli e messaggi (e lo faccio da 20 anni, fa tu...).
 
Lo ridico chiaro: semplificano la vita, non la complicano.
E per me la programmazione sincrona non dovrebbe esistere, se non per script di qualche centinaio di righe.
 
-- 
Ciao!
Luca


Namespaces don't exist at all
 
Mi sono fermato qua.

 script di qualche centinaio di righe.
 
Ma infatti ti ho scritto: "Per esempio se vieni dal mondo della 
programmazione sincrona trovarsi a gestire tutto in modo asincrono è un 
bel colpo, devi cambiare radicalmente il modo di ragionare."
 
Se poi ha già esperienza in quel campo allora non avrai di questi 
problemi a lavorare con node. Tutto il resto di questo thread è 
praticamente una royal rumble tutti vs. PHP.

Il reale problema è che il linguaggio è nato con uno scopo e poi è cresciuto troppo organicamente, con cose appiccicate sopra ma senza mai cambiare la natura del linguaggio, che è “scriptare”. Pare Perl, ma meno consistente e non general purpose.
 
  Ngw

Produzione al momento Ruby, Elixir e Elm. Poi ne ho studiati altri, magari non uno all’anno, ma magari uno ogni due.


Vai avanti, allora.


l'autore risponderebbe 
 
a) il programma funziona 
b) qualsiasi tutorial o guida introduttiva mi insegna a far cosí
c) ho scelto questo linguaggio proprio perché si può fare cosí

 c) ho scelto questo linguaggio proprio perché si può fare cosí
 
A questo punto è evidente che il problema sta tra la sedia ed il monitor.
 
Ma d'altronde anche tu hai scritto nel tuo post che l'IT manager era 
"praticamente a digiuno di programmazione", avrebbe scritto una porcheria 
in qualsiasi linguaggio.
 
Mi è capitato di mettere mano ad un sorgente Objective-C scritto da un 
soggetto simile, ti assicuro che era una merda colossale.
 


Ma per quale motivo, di grazia? Hai postato un link vecchio di 10 anni 
(Last modified: June 13, 2008), che lamenta di problemi che PHP non ha 
più da tempo. Secondo te ci devo perdere altro tempo? 
 
Almeno il link di ngw era datato 2012 ed aveva una skin un po' meno 
bimbominkia, ci ho speso qualche minuto in più.
 

 più da tempo. Secondo te ci devo perdere altro tempo?
In effetti e' un link che avevo li' da quando mi chiesero di migrare 
un'applicazione (di circa un migliaio di pagine) ad una versione di PHP 
piu' recente, essendo passato un po' di tempo, non ricordo quale.
Fatto sta che rinunciai perche' ben presto realizzai che nella nuova 
versione c'era ben poco di retro-compatibile ed il budget non permetteva 
i tempi che reputai necessari.
Ma l'esperto di PHP sei tu, per questo chiedo. Ma capisco che se ci 
vuole del tempo, giusto per soddisfare una mia curiosita' non valga la 
pena di rispondere.
 

 pena di rispondere.
 
Sinceramente ho capito cosa chiedi, non vedo domande nei tuoi post 
precedenti... Se hai qualche dubbio a proposito di PHP chiedi pure, ma 
forse it.comp.www.php è il luogo più adatto.
 

 E tu potresti replicare:
 
ma non c'è niente da replicare. lui è il cliente soddisfatto di se 
stesso, dire ad uno che si è fatto il programma da se "funziona != 
scritto bene" è un esercizio di stile inutile.
lui come altri vede il php nella sua natura di linguaggio di scripting, 
ovvero soluzione facile, primitiva e immediata. in altre architetture 
strutturate non c'è corrispondenza fra link web -> script invocato -> 
output dello stesso, questo per lui è già una barriera insormontabile.
è una cosa che peraltro elogiavi anche te il fatto che per problemi 
semplici fosse la soluzione piú immediata: purtroppo in tanti ne 
sfruttano l'immediatezza anche per problematiche complesse.


Capisco il tuo ragionamento, ma non lo condivido. Ormai non si sviluppa 
più con link diretti agli script, qualsiasi framework/microframework/cms/
cmf degno del suo nome implementa un meccanismo di routing. E sviluppare 
partendo da 0 significa scriptare, che può essere utile per prototipare 
qualcosa, ma nel mio caso per esempio saranno almeno 10 anni che non 
scrivo codice privo di una qualsivoglia infrastruttura al di sotto.
 
E quindi torniamo al ragionamento di prima: se quel tizio avesse scelto 
Java a colpi di tutorial, martello e scalpello forse qualcosa avrebbe 
anche prodotto, ma la qualità del codice non sarebbe cambiata. 

 output dello stesso,
 
In parole povere spaghetti-code ma forse e' meglio lasagna-code.
Per andare da A a Z passi tutto l'alfabeto.
Bada non ho nulla /contro/ le applicazioni strutturate, bambole russe o
scatole cinesi che dir si voglia.
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 scrittura del codice.
 
'a ruttokit ti sei arrugginito un po'...
 
 

 i tempi che reputai necessari.
 
'A ugo noto che te sei arrugginito pure tu...
 
p.s. aggiorna anche i tuoi bookmarks.