Newsgroup: it.lavoro.informatica
Titolo: sviluppatore Amsterdam/Cambridge + VPN Architect + Tester

ho tra le mani offerte di lavoro per sviluppatori Java, Python, un VPN Architect (che mi pare una cosa strane e un tester. 

La sede di lavoro e' Amsterdam o Cambridge (praticamente a vostra scelta). 

Se siete interessati contattatemi e vi giro le offerte.... caso mai facciamo 50 e 50 quello che mi danno per aver passato il nome. 

email maxadamo ==> 
gmail.com



 ho tra le mani offerte di lavoro per sviluppatori Java, Python, un VPN Architect (che mi pare una cosa strane e un tester.



Vado [OT] ma chiedo come mai tutti oggi cerchino programmatori Java come 

se questo linguaggio fosse la panacea di tutti i "mali" forse perchè 

usato anche per le app?



Saluti.

GabrieleMax



forse perché è usato, punto.

le app c'entrano quasi nulla.




 le app c'entrano quasi nulla.



Ok ma... come accennato nel mio primo post a me sembra che si voglia 

risolvere qualsiasi problema con il Java ed in molti casi imho può non 

essere la soluzione migliore o quella più ottimizzata!



Lato web con php si fa tutto in maniera snella e veloce senza andare per 

forza a cercare linguaggi "esotici"! :D



Saluti.

GabrieleMax





potrei agevolmente risponderti con le tue stesse parole: mi sembra che

sia te a voler risolvere qualsiai problema con il php quando in molti casi 

non è la soluzione migliore o quella piú ottimizzata.



java (o meglio: l'ecosistema java) è usato molto in ambito web enterprise. 

questo è un dato di fatto. poi se vogliamo discutere di soluzioni alternative

ben venga purché lo si faccia in un discorso serio.










 Lato web 



Lato web hai tecnologie front-end (con le quali Java non c'entra ormai una mazza) e tecnologie back-end (e Java ne offre diverse facilissime da usare).







Piu' che esotismi, si gradirebbe un ide in grado di supportare 

applicazioni di qualche migliaio di servlet.

Col php vai forse un po' piu' in la' del vi.



?????



ma di cosa stai parlando



cosa c'entra php, ide, vi e servlet tutto nella stessa frase.



stai confondendo un linguaggio di programmazione con editor + o - 

evoluto, con un application server



ma conosci almeno uno solo di questi argomenti??



Ciao


 ma di cosa stai parlando

Di faccende che probabilmente non ti sono ben chiare. Ecco di cosa sto 

parlando, quindi lascia perdere.


 Col php vai forse un po' piu' in la' del vi.



Evidentemente hai smesso di documentarti nel millennio scorso... 

Composer, Laravel, Phpstorm ti dicono nulla?



Java in ambito web per quel che ne so è usato solo in ambito Bancario/

Assicurativo/GrandiCarrozzoni, quelli che hanno ancora i mainframe AS400 

per intenderci.



Che poi sia molto richesto è un'altro paio di maniche, ma a livello web 

nel 2018 si usa PHP (vedi FB), e chi vuole seguire l'hype del momento usa 

Javascript in tutte le sue declinazioni.



my 2 cent

g4b0


 Javascript in tutte le sue declinazioni.



E questo cosa c'entra? Pensi forse che javascript non possa essere 

utilizzato nelle servlet?


 per intenderci.



ma che per davvero stai scherzando?




 Phpstorm non e' quello scritto in Java?





Sì, l'ide Phpstorm è scritto in java, quindi da questo dato fatto riesci a stabilire la qualità di un linguaggio?


 usa Javascript in tutte le sue declinazioni.



seriamente: 



quando hai tempo dai un'occhiata alle tecnologie sviluppate da netflix e 

rilasciate open source: 
https://netflix.github.io/




oppure twitter: 
https://twitter.github.io/
 (ricordo scala è un linguaggio 

della jvm)



oppure zalando: 
https://github.com/zalando




vedi per caso tracce di php? 




 per intenderci.



Ha ha ha... si`, credici. 

Ma perche` aprite bocca su argomenti che non conoscete minimamente?


 Sì, l'ide Phpstorm è scritto in java, quindi da questo dato fatto riesci a stabilire la qualità di un linguaggio?



Non e` quella la sua intenzione. Se uno cita PHP come panacea contro Java, e poi mentiona Phpstorm che e` scritto in Java, la cosa fa un po' ridere.




 Javascript in tutte le sue declinazioni.



Devi chiarirti un po' di idee. "A livello web" non vuol dire niente. Si parla di applicazioni con un front-end e un back-end. C'e` quasi sempre una netta separazione tra le due, e.g. tramite REST API. A livello front-end, PHP e Java non c'entrano una mazza. JavaScript non e` l'alternativa a PHP e Java e non e` affatto "l'hype del momento". E` il linguaggio con cui sono scritti i framework di maggior successo, e.g. Angular o Bootstrap (Twitter) o React (Facebook). Ma e` anche la tecnologia su cui poggia Node, che e` un fantastico tool di backend. La conoscenza di JavaScript e` ormai imprescindibile per qualunque Front End o Full Stack developer, altro che hype del momento.



Assolutamente no, non si parlava della qualita' ma della diffusione.

Era per rispondere ad uno che critica java e sponsorizza strumenti 

scritti in java. Ci ho trovato una contraddizione.



Tranquillo, ho le idee ben chiare. E sono stranamente in parte d'accordo 

con te, essendo uno sviluppatore web che conosce tutte queste tecnologie 

e le usa da 15 anni a questa parte. 



Forse mi sono espresso male: con "hype del momento" intendo che oggi va 

molto di moda Javascript per fare cose che fino a pochi anni fa si 

facevano con PHP, e che ancora oggi si possono fare con PHP, che tra 

l'altro a detta di w3thechs va ancora per la maggiore: https://

w3techs.com/




Non fraintendermi: con Javascript si possono fare cose molto 

interessanti, la sua evoluzione in Typescript è da tenere d'occhio, i 

vari framework, sia frontend che backend, sono molto utili. Per contro 

IMHO ha una serie di difetti che si porta dietro dall'era dei tempi, come 

ad esempio il this che cambia in base al contesto, l'undefined, la 

prototypal inheritance. Inoltre  non mi piace assolutamente il suo 

approccio all OOP, ma è questione di gusti (anche se l'avvento di 

Typescript mi da ragione :)



Un'ottimo libro che elenca i difetti (ed i pregi) di JS è "JavaScript The 

Good Parts" di Douglas Crockford (un guru di JS). Lo consiglio ad ogni 

sviluppatore JS, è davvero interessante.



L'ecosistema JS odierno mi ricorda molto il mondo PHP dei primi anni 

2000: un sacco di framework, cms, esperimenti, che nascono -> sembrano la 

tecnologia più promettente del mondo -> muoiono nel giro di un anno. 

Prendi ad esempio Angular: la versione 2 non solo non è retrocompatibile, 

gli hanno cambiato il linguaggio in cui è programmato!

Probabilmente nel giro di qualche anno anche JS maturerà e si 

stabilizzerà come ha fatto PHP in questi ultimi anni, diventando a quel 

punto una valida alternativa o, perchè no, un ottimo complemento al PHP. 

Per ora lato backend preferisco ancora PHP in qualche sua solida 

incarnazione, come Laravel, tanto per citarne una.



g4b0





No, non fa ridere, se non decontestualizzi. Java è un ottimo linguaggio 

per scrivere, tra le altre cose, IDE cross platform, vedi ad esempio 

Phpstorm, Eclipse, Netbeans. In ambito web IMHO è un carrozzone 

overkilled.



Con PHP per contro non mi sognerei mai di scrivere un IDE...



g4b0



Secondo me per fare una discussione serena bisognerebbe prima definire 

cosa significa "livello web". Nel mio modo di vedere le cose si tratta di 

quel layer software che comunica con il browser generando codice HTML.



E per far questo PHP è migliore di JAVA. Javascript se la cava, ma lo 

preferisco lato client. Il perchè lo puoi leggere sul mio post di poco fa 

in risposta ad 4drea4, ma te lo riassumo con un libro: http://

shop.oreilly.com/product/9780596517748.do




Che poi dietro a questo layer ci sia della business logic scritta in JAVA, 

C++, Scala, Go, Pyton o quello che vuoi è un altro paio di maniche, ma 

per *generare HTML* IMHO PHP non lo batte nessuno. È un linguaggio 

maturo, snello e veloce (sia da scrivere che da eseguire), ha un sacco di 

framework/CMS open source eccellenti, ha alle spalle una comunità enorme 

e gira su pressochè qualsiasi server.



Finisco con un link in risposta ai tuoi (sezione Server-side Programming 

Languages): 
https://w3techs.com/




g4b0






 utilizzato nelle servlet?





Evidentemente non hai capito di cosa parliamo. Se posso permettermi, di 

cosa ti occupi nella tua quotidianità? Io sviluppo gestionali web in PHP/

Javascript, ed in passato ho sviluppato in Java J2EE (e quindi ho anche 

scritto delle servlet).





g4b0


 Con PHP per contro non mi sognerei mai di scrivere un IDE...



Vorrei anche vedere.


PHP come panacea contro Java 



C'è sempre la possibilità che il messaggio a cui ti riferisci non è visualizzato da google groups.


 Evidentemente non hai capito di cosa parliamo.



Rileggi quello che hai scritto, poi magari spiega cosa volevi dire. 

Perche' nella tua frase di cui sopra, c'e' quel 'ma' disgiuntivo che 

oppone l'uso di PHP e javascript al java.


 grande vantaggio in termini di manutenzione.



Questa in PHP è una best practice



g4b0




 stabilizzerà 



LOL :) E` confermato. Sei stato ibernato.


 Io sviluppo gestionali web



Mecojoni. Tu secondo me sai il 10% di JS e il 10% di JEE (non piu` J2EE) ma parli ugualmente.


 Questo lo fanno i sistemisti



Ha ha ha... si`, certo. Un altro concetto che non conosci: scalabilita`. 

Piu` scrivi, piu` si scopre quel che non sai.


 Con PHP per contro non mi sognerei mai di scrivere un IDE...



Anche perche` non potresti.


 E per far questo PHP è migliore di JAVA. 



Cazzata. Semplicemente non e` vero. Uno che confronta PHP con Java con JavaScript dimostra di non capirci una mazza di sviluppo web.


 come stringhe, la dice lunga.



RFC 7159: JavaScript Object Notation (JSON) is a text format for the 

serialization of structured data.



Vedila come vuoi, ma quello che transita tra il server ed il client è una 

stringa. E non mi hai postato uno snippet di codice da confrontare con il 

mio, ma l'hai subito buttata sul personale. D'altronde sapevo che sarebbe 

successo.



Plonk


 istanzi?

Probabilmente due utilizzando la libreria GSon di google. Ma c'è solo 

l'imbarazzo della scelta.

Vuoi un esempio fatto con le api standard J2EE javax.json?

     public void encode(Azienda azienda, Writer writer)

	throws EncodeException, IOException {

         JsonProvider provider = JsonProvider.provider();

         JsonObject jsonAzienda = provider.createObjectBuilder()

             .add("idAzienda", azienda.getIdAzienda())

             .add("ragSoc", azienda.getRagSoc())

             .add("codiceAzienda", azienda.getCodiceAzienda())

             .add("chiave", azienda.getChiave().getIdAzienda())

             .build();

         try (JsonWriter jsonWriter = provider.createWriter(writer)) {

           jsonWriter.write(jsonAzienda);

         }

Ovviamente si puo' complicare utilizzando la reflection, con la 

differenza che non devi obbligatoriamente sapere com'e' fatto il bean 

Azienda generalizzando il processo, cosa che fanno le varie librerie 

json che ci sono in giro, ma semplificando il codice applicativo. Ad 

esempio:

     public static JsonObject encode(Object bean) {

         return = BeanEncoder.encode(bean);

     }


 LOL :) E` confermato. Sei stato ibernato.



Solo a me e' immediatamente venuto in mente 'Il dormiglione'?

(Sleeper, 1973)




 Vuoi un esempio fatto con le api standard J2EE javax.json?



L'esempio che mi hai fatto non genera il JSON richiesto, ma uno più 

semplice. Il JSON da te generato è un semplice oggetto con 4 proprietà, 

che ad occhio e croce sono stringhe od interi. 

Il mio array contiene anche un'altro array ed un oggetto, ed il codice è 

molto più semplice e probabilmente veloce.



Non intendo dire che in Java non si possono generare stringhe JSON, ma 

che per farlo il codice da scrivere è più complesso di quello usato da PHP 

o Javascript, e da qui la mia definizione di overkilled.



Poi per carità, ognuno programma in ciò che vuole/deve/può, io ho la 

fortuna di poter scegliere. Java lo uso altrove, non per lo sviluppo web.



g4b0






 ma l'hai subito buttata sul personale. 



Buttata sul personale? Tu spari cazzate tecniche e la colpa sarebbe mia?


 o Javascript, e da qui la mia definizione di overkilled.



Tranquillo, sei semplicemente un chiacchierone che non conosce Java.


 No, non fa ridere, se non decontestualizzi. 



Decontestualizzi 'sta ceppa. Vanti PHP contro Java e poi nomini un IDE PHP scritto in Java? Non ti lamentare se ti danno dello scemo poi, eh?


 E per far questo PHP è migliore di JAVA. 



può darsi. peccato però tu stia parlando di tecniche vecchie di svariati 

lustri.

saranno dieci anni buoni che non si sente proprio parlare di pagine 

dinamiche generate server side.



html5, css3, angularjs, react, servizi rest... ti dicono niente?




 molto più semplice e probabilmente veloce.



Ti ho postato anche un secondo esempio che non usa le api standard ma un 

encoder capace di rendere un qualsiasi oggetto di qualsiasi natura 

contenete dati, in una stringa json. Tutto con ben *3* righe di codice, 

piu' semplice di cosi'!

Naturalmente in una reale applicazione java, ma anche non, non si 

utilizza quel codice a basso livello che faccia trasparire la struttura 

dei dati ed il protocollo usato sulla rete, proprio in quanto, dal punto 

di vista applicativo, non e' interessante con che struttura e con che 

protocollo trasferire i dati ne' tantomeno come sono stati reperiti quei 

dati, che e' invece responsabilita' della sottesa infrastruttura.

Perche' mai dovrei due differenti codici applicativi se il protocollo 

cambia, ad esempio, da REST a SOAP? O sei i dati si trovano su un 

database o un altro?


 codice complicato, o anche solo troppo strutturato. 



abbi pazienza.



in un servizio jax-rs sai quante righe di codice deve scrivere il 

programmatore per serializzare l'output / deserializzare l'input? zero.



non me ne volere ma stai facendo delle contestazioni che nel 2018 non 

hanno veramente senso. 






 html5, css3, angularjs, react, servizi rest... ti dicono niente?



Ma certo che mi dicono qualcosa, sviluppo server RESTful da anni, il 

resto della fuffa lo lascio volentieri agli amici front-end developer.

Cmq stiamo parlando di cose diverse. Drupal, Wordpress, Laravel ti dicono 

niente? 



Tu dietro ad un frontend Angular cosa ci metteresti? Un server scritto in 

Java, Nodejs o PHP? Io personalmente PHP, oppure se proprio devo Nodejs.



g4b0


https://qph.ec.quoracdn.net/main-qimg-fc6eb9e6ada95f2ac289470a70c6028c-c




:D


 :D



Come se non fosse possibile avere un System.out.println() direttamente nel main. Chi lo ha scritto quel codice, tu?


 Java, Nodejs o PHP? Io personalmente PHP, oppure se proprio devo Nodejs.



La domanda e` malposta: tu semplicemente non sapresti farlo ne` in Java, ne` in node.


 Nodejs.



questo si era capito, eh :-)


 :D



lol, ma a parte trovare le (almeno) tre evidendi cazzate che ne dici di 

fare un altro meme su qualcos'altro di piú utile, tipo che so, che 

coinvolga l'uso delle streaming api? oppure aggiungere anche l'esempio di 

kotlin? 


 questo si era capito, eh :-)



:)


 reali esigenze del progetto.



Con buona pace delle reali esigenze del cliente.


 Con buona pace delle reali esigenze del cliente.



Il cliente normalmente vuole spendere poco, avere un prodotto funzionante 

e consegnato in fretta. Poco gli importa la tecnologia che ci sta sotto 

(salvo casi particolari di top manager che devono riempirsi la bocca di 

paroloni in voga).



Se rispetti quei 3 requisiti puoi anche scrivere un webservice in 

assembler :D


 JavaScript e` una tecnologia che ha preso piede per ragioni precise.



Premessa: non sono un troll.



Pur non essendo un troll, affermo senza tema alcuna di sbagliare che 

Javascript è una delle più grandi e immonde schifezze che siano mai 

comparse nell'universo dell'IT. Eppure nonostante ciò ha preso piede.



E proprio vero che a volte la realtà supera la fantasia.



TheStar



Si vede che hai dei clienti di bocca buona o che sanno che da te non si 

puo' pretendere piu' di tanto.

In genere i clienti che sono disposti a spendere, stanno molto attenti 

alla protezione dell'investimento, che in genere significa non comprare 

tecnologia obsoleta.


 comparse nell'universo dell'IT. Eppure nonostante ciò ha preso piede.



Premesso che anch'io non e' che vado matto per il javascript, ma in un 

browser altrimenti cosa ci metti?


 tecnologia obsoleta.



Mi è capitato di dover scambiare file con $GrossoIstitutoDiCredito ed il 

formato da loro imposto era file di testo ASCII (!) con campi a lunghezza 

fissa, probabilmente generati da un as400 più vecchio di me. Alla faccia 

dell'obsoleto... bastava un nome accentato per far scoppiare il file (e 

bada bene: il nome accentato ce lo mettevano loro)




 PHP. 



io ho abbastanza chiaro i motivi per cui scelgo java. il primo motivo è 

che in realtà non scelgo java :-P bensí la java virtual machine che è il 

vero e grosso punto di forza, i linguaggi alla fine c'è l'imbarazzo della 

scelta (kotlin, scala, groovy, jython, clojure, etc...).



il fatto di girare nella jvm porta enormi vantaggi, di performance, di 

controllo e soprattutto di sicurezza. un bug nel programma per carità è 

sempre un bug del programma, ma almeno non crea una vulnerabilità. cosa 

che invece avviene regolarmente con il php: quando ti metti in casa un wp 

piuttosto che un drupal sai bene che devi stare giornalmente allertato se 

non vuoi ritrovarti infestato dalle piattole.




 Javascript è una delle più grandi e immonde schifezze 



E invece sbagli e di grosso. Di solito chi ha quest'opinione di JavaScript e` chi non lo ha mai usato seriamente. JavaScript e` un ottimo linguaggio per lo scopo per il quale viene usato. Ha sicuramente (come tutti i linguaggi) delle "bad parts" ma specialmente da ES6 in poi e` un ottimo strumento. Basta usarlo con ReactJS per capirne il perche`.


 gestione documentale sia interna che verso il pubblico? 



Alfresco, Liferay, LogicalDoc, Magnolia, InfoGlue, Walrus, OpenEdit, Pulse, MeshCMS, OpenCMS, DotCMS, Hyppo, Lenya, Jease, Contelligent, AtLeap, Nuxeo, Weceem, ...



Ti bastano o continuo?


 paroloni in voga).



Questo magari per il pizzicagnolo o il gommista per il quale scrivi software tu. 

Un'azienda che commissioni un sistema enterprise ha un certo budget - che non significa necessariamente "spendere poco" - vuole un prodotto funzionante ma come si sviluppa e quando rilasciare si concorda col cliente. Ormai si lavora con Agile (non tu, ovviamente, che scrivi software usando tecniche e metodologie dei primi anni '90) e la costruzione di un software e` normalmente incrementale. Al cliente interessa eccome la tecnologia che sta sotto; dovranno mantenere quel software per conto loro, ed e` importante sapere che la tecnologia che sta sotto non impedisca di trovare professionisti in grado di lavorarci.


 Mi è capitato di dover scambiare file [...]



Purtroppo, ancora una volta, non hai capito quel che ti e` stato scritto. E non l'hai capito perche` non sei in grado di capirlo, non avendo mai lavorato in certi contesti.


 browser altrimenti cosa ci metti?



JavaScript ormai non e` piu` soltanto un linguaggio client-side.




 allertato se non vuoi ritrovarti infestato dalle piattole.



Certo, PHP ha una brutta reputazione perchè ci sono in giro brutti sw, 

come Worpress o Joomla, che ancora nel 2018 hanno problemi di SQL 

injection o RFI. Ma questo non significa che il problema sia PHP: una SQL 

injection ha gli stessi effetti sia in Java che in PHP, o mi sbaglio?



In un ambiente di produzione serio PHP gira isolato con utente dedicato, 

magari chrotato, per cui dal punto di vista della sicurezza del sistema è 

l'equivalente di una JVM. 



In fin dei conti basta scegliere accuratamente il proprio toolkit, sia in 

Java che in Php.



Sulle performance non mi esprimo, non ho mai fatto benchmark comparativi. 

Posso dirti che dalla versione 7 PHP ha avuto un aumento di performance 

rispetto alla v.5 che va dal 10% al 50% in certi benchmark. E si vede ad 

occhio: ho fatto un test con lo stesso sw (scritto da me), il quale 

eseguito con il 7 ha un tempo di esecuzione del 30% inferiore rispetto al 

5. Poi dipende da cosa fai: I/O, accessi al DB, computazione.



Per quanto riguarda il "controllo" non capisco cosa intendi. È un 

concetto un po' generico, anche io ho controllo dei miei sw PHP. 





g4b0




 come Worpress o Joomla



Wordpress sarebbe un "brutto software" ? :D Tu hai una conoscenza informatica veramente infima.


 l'equivalente di una JVM.



Diciamo che e' l'omologo, non certo l'equivalente.



D'accordo, ma per uno che odia il javascript, giammai lo utilizzera' 

server-side, ma client-side e' praticamente un obbligo.


 server-side



Quelli che sento criticare JavaScript qui dentro non e` che abbiano esposto critiche ragionate, hanno solo vomitato merda tanto per farlo. Sono sicuro che se gli chiedi cos'e` un promise o la prototypal inheritance, un closure, o un generator, rimangono a fissare il vuoto. Bisogna chiarire che JavaScript si e` affermato per ragioni precise - non e` una schifezza che si usa per moda - e che usarlo client-side non e` semplicemente una scelta obbligata. Se ha preso piede anche server-side, se e` spuntato fuori qualcosa come NodeJS, un motivo c'e`.


 Diciamo che e' l'omologo, non certo l'equivalente.



Syntactic sugar...



g4b0



[1] 
https://blog.ircmaxell.com/2017/10/disclosure-wordpress-wpdb-sql-


injection-technical.html

[2] Per esempio: 
https://cve.mitre.org/cgi-bin/cvename.cgi
?

name=CVE-2018-8045

[3] 
https://wordpress.org/ideas/topic/use-pdo



 Syntactic sugar...



Syntactic sugar una ceppa. Perche` commenti a cose che non comprendi?



De gustibus non disputandum est.

Anch'io prendo le medicine, ma se posso esprimo l'opinione che non mi 

piace affatto. Stessa cosa per il javascript, so benissimo che si puo' 

usare come il pomodoro, ma che mi piaccia no. Per cui, visto che posso 

farlo e la qualita' del mio codice non ne risente, io server-side la mia 

fidata jvm ce l'ho e non mi manca niente. Client-side, che al massimo 

c'e' il browser-engine, non vedo alternative. Ovvio che usando strumenti 

tipo Angular ho dovuto anch'io addentrarmi nei meandri del NodeJs, 

sperando che non scazzi le dipendenze.


 De gustibus non disputandum est.



Non si tratta di questo. Sinceramente a me non importa nulla di quel che usi TU, per il tuo codice server-side, o quel TheStar che spara bordate a zero, o quell'altro gb40 che parla senza sapere. Non mi interessa che ti piaccia JS. Io non parlo della mia esperienza personale. Io sto citando semplicemente dei fatti. Chiunque conosca JavaScript approfonditamente, sa che ha tutte le qualita` per essere giudicato un linguaggio degno di nota (tenendo anche conto delle bad parts che Crockford, grande esperto del linguaggio, identifica). Il problema e` che tu parli di JS come un male necessario, mentre JS e` un linguaggio che e` maturato al punto da meritare il suo posto sia client-side che server-side. In sostanza, se anche vi fosse un'alternativa, sarebbe una bella lotta - e non solo per motivi legacy.



Non e' che ne parlo come un male necessario, a parte il fatto che 

client-side e' praticamente obbligatorio, almeno per quanto ne so io, 

semplicemente server-side se posso lo evito, se non posso, a capo chino, 

mi ci metto. Anche riconoscendone l'enorme evoluzione, continua a non 

piacermi, non tanto per il linguaggio in se', che ormai e' molto simile 

ad altri linguaggi OO, seppur con i suoi gotcha, ma quanto 

l'architettura sottesa che mi sembra ancora piuttosto, se non carente, 

laboriosa. Magari tu stai usando dei tool che ti facilitano il lavoro, 

che e' possibilissimo che io non conosca, ma a me sinceramente 

l'interfaccia nodejs mi fa cagare. Per i miei gusti, che vorrei 

orientarmi piu' sul fatto applicativo invece di essere forzato agli 

aspetti infrastrutturali, urta e basta. Ma e' solo la mia opinione, la 

mia personale percezione, non certo una detrazione tout-court.


 semplicemente server-side se posso lo evito,



Liberissimo, ovviamente. La mia frase, comunque: "se anche vi fosse un'alternativa, sarebbe una bella lotta" era mal scritta. Intendevo un'alternativa client-side. Server-side ci sono ovviamente miliardi di alternative.



Per curiosita', ogni tanto metti le mani nel javascript (o surrogati)? 

Che IDE usi?

Io ne ho provati tre o quattro, anche un paio di plugin per Eclipse, ma 

mi sono trovato tutt'altro che bene. Soprattutto non ho mai trovato 

ambienti integrati in cui possa passare da un piano all'altro mantenendo 

la stessa interfaccia.

Sara' che avendo usato Eclipse, fin da quando si chiamava VisualAge nei 

primi anni '90, mi sono abituato bene, ma utilizzando altri IDE ho 

sempre la sensazione che mi manchi qualcosa.


 Che IDE usi?



il migliore in assoluto è imho quello di intellij idea (ultimate, non in 

quella community dove è poco piú che un editor di testo) e il suo omologo 

prodotto specifico webstorm. 

altrimenti visual studio code o atom sono decenti.



spezzo una lancia a favore dei full stack javascript, al di la dei gusti 

personali hanno decisamente un suo perché. difficilmente si trovano 

piattaforme piú veloci e snelle da sviluppare.


 sbaglio?



un sql injection per forza ha gli stessi effetti in qualsiasi linguaggio. 

esistono da una parte le best practices e dall'altra gli orm, a parte 

questo php è prono a problemi ben piú gravi. mi riferisco, ad esempio, ai 

vari plugin / temi / estensioni di cui sistematicamente vengono trovate 

vulnerabilità e appena ti distrai fanno entrare la cavalleria. 

è sicuramente facile deployare php, decisamente troppo per i miei gusti.




 Che IDE usi?



IntelliJ IDEA Ultimate. Il meglio che esista per Java, a mio parere. Anche Eclipse e` un bell'IDE, ma ormai uso IDEA da talmente tanto tempo che non saprei piu` farne a meno. Si integra benissimo anche con JavaScript, React e Jest (i test Jest spesso li lancio dall'IDE). Persino git ormai non lo uso piu` da linea di comando nei miei progetti Java; puoi fare tutto benissimo dall'IDE. In quanto all'integrazione con JS, poi, IDEA ha plugin per tutto cio` che serve (ESLint, Jest, Enzyme, ...). 



Per lo sviluppo con JS comunque e` facile che si usi anche solo Sublime Text  (Wes Bos ha creato un intero corso su come configurarlo al meglio per JS: 
https://sublimetextbook.com/
) o Atom. Molti sviluppatori preferiscono Visual Studio Code (
https://code.visualstudio.com/docs/languages/javascript
), altro ottimo tool.


 Questa in PHP è una best practice



Posto che la rilevanza della discussione da entrambe le parti è discutibile, come compili il codice PHP in binario? HipHop?



  ngw


 html5, css3, angularjs, react, servizi rest... ti dicono niente?



Ma poi qualunque servizio mediamente complesso usa di tutto e di più.

Io in questo momento Ruby + Elm + Elixir, per dire. In container Docker gestiti via Ansible.

Mi pare una discussione piuttosto inutile.

Elm genera Json nel triplo di righe di Ruby, lo fa perchè è tipato statico e forte, quindi se hai fatto casino a generare Json non ti fa compilare la tua roba perchè i tipi non matchano (poi eventualmente scrivo in italiano se non si capisce :p). E allora? Intanto il software è corretto, cazzomene che ho scritto 4 righe in più. Mah



  ngw





  ngw


 ReactJS per capirne il perche`.



In origine il problema era dovuto al fatto che il rispetto degli

standard nei diversi browser era molto approssimativo, perciò

sviluppando software client-side il codice era disseminato di "if IE

then ..., else if Firefox then ... else if...". Ammetto che negli ultimi 

anni la situazione è migliorata un po' per il migliore rispetto degli 

standard da parte dei browser, un po' per la disponibilità di certi 

toolkit che mascherano (o dovrebbero mascherare) le diversità tra i vari 

browser.



In generale la mia invettiva nei confronti di JS non è tanto (o non

solo) contro JS, ma contro tutti i linguaggi più o meno interpretati con

un controllo dei tipi molto approssimativo e solo a runtime che li rende

molto più vulnerabili ad errori di cui spesso ti accorgi soltanto quando

arrivi alla relativa riga di codice.



I linguaggi fortemente tipizzati, pur richiedendo un po' di sforzo in

più in fase di sviluppo e pur essendo magari un po' più verbosi,

consentono di sviluppare codice molto, ma molto più robusto. I linguaggi 

di scripting stanno prendendo sempre più piede solo perché stiamo 

diventando una massa di pigroni.



TheStar


 diventando una massa di pigroni.



Questo invece è davvero discutibile, in parte perchè confondi typing dinamico con typing debole, in parte perchè il problema pare essere, tanto per dire qualcosa di originale, che mancano i test.

Non torniamo però sempre sugli stessi argomenti, che poi c'è quello che i test non li scrive e tutto va benissimo, l'altro che col compilatore i test non servono ad un cazzo, l'altro che se devo pure testare se 1 + 1 fa 2 faccioa prima a cambiare lavoro, e sinceramente stare a discutere lo unit testing nel 2018 anche no.

Quello che dici è discutibile per il semplice motivo che Java/C++/C# e compagnia bella, pur essendo indubbiamente tipati staticamente, sono ben lungi dall'essere lo stato dell'arte, anzi. Potrei dirti di guardare Haskell, se davvero questo è il tuo ragionamento Java e simili lo cestini. Oppure Elm, che compila in javascript, e conferma quello che dici con la promessa di non sollevare eccezioni a runtime, avendo un typing piuttosto avanzato. O Elixir, tipato dinamicamente ma con annotazioni.

Insomma, per me la fai decisamente troppo facile :)



  ngw


 diventando una massa di pigroni.



bah :-)

permettimi di dissentire su tutti i fronti.

il fatto di essere piú o meno coinciso dipende dalla espressività del 

linguaggio, e non vedo perché usare un linguaggio piú espressivo si debba 

perdere in robustezza. anzi al contrario. 

ma soprattutto non vedo cosa c'entri la verbosità con l'essere fortemente 

o debolmente tipizzato. non c'è relazione fra le due cose.










 I linguaggi fortemente tipizzati [...]



Ma basta con 'ste fesserie! Ancora, nel 2018, c'e` chi non scrive test e se ne esce coi linguaggi tipizzati che porterebbero a codice robusto? Basta!


 robusto? Basta!



Per tua norma, i test automatici io li uso eccome, con Java e con altri 

linguaggi, anche interpretati, ad esempio MATLAB. Ma pensare di avere 

una copertura del 100% con i test è solo pura fantasia. Il controllo 

operato dal compilatore è preziosissimo, e per quanto i test aiutino 

molto, ottenere la stessa qualità con un linguaggio come JS costa più 

fatica. Un linguaggio fortemente tipizzato avrà SEMPRE una marcia in 

più, o viceversa la stessa qualità sarà ottenibile con uno sforzo inferiore.



Io per scelta precisa non uso Javascript e non ho nessuna intenzione di 

averci a che fare, né per lavoro ne per hobby. Ad usare qualche altro 

linguaggio che segue la stessa filosofia (v. il caso di cui sopra) ci 

sono per forza costretto, ma cerco comunque di limitare il contatto al 

minimo indispensabile.



TheStar


 o debolmente tipizzato. non c'è relazione fra le due cose.



In un programma scritto in un linguaggio fortemente tipizzato devi 

comunque dichiarare il tipo di ogni variabile. Anche nel caso di 

template/generics hai maggiore flessibilità, ma comunque un po' di 

informazione sul tipo di dato la devi fornire.



TheStar


 annotazioni. Insomma, per me la fai decisamente troppo facile :)



Può anche darsi, dal punto di vista dei linguaggi non sono certamente un 

poliglotta, e per ragioni lavorative sono rimasto ancorato per lo più a 

roba matura: C, C++, Java, C#, MATLAB. I casini che ho con quest'ultimo, 

garantisco, con un linguaggio fortemente tipizzato non ce li ho mai 

avuti. Anche lì, naturalmente, esistono differenze dovute ad es. anche a 

diversità sintattiche: il C++ è molto più complesso di Java o C#.



Però nessuno mi toglierà mai l'idea (derivata dall'esperienza) che il 

controllo del compilatore da una mano preziosissima a cui è difficile 

rinunciare, e mi riesce pure difficile pensare che ci sia gente che sia 

disposta a rinunciarvi o a farne a meno.



TheStar


 Io per scelta precisa non uso Javascript



E allora cosa stai qui a cianciare di cosa sia piu` o meno facile da fare in JavaScript? Parla quando hai esperienza e sai.



Chiacchieroni da bar.




 rinunciare



Il controllo del compilatore e` l'1% di quel che ti serve.


 comunque dichiarare il tipo di ogni variabile.



Bella cagata.


 disposta a rinunciarvi o a farne a meno.



Figurati, non sto a contestare le idee, per quanto bizzarre o basate su informazioni parziali se non completamente errate.

Dopo aver scoperto che c'è gente che preferisce "Atom" o "Visual Studio" a Vim/Emacs te capisci che ho fatto il pieno di stramboidi.



  ngw


 Il controllo del compilatore e` l'1% di quel che ti serve.



Meh, in molti linguaggi tipati staticamente il typing sostituisce di fatto una tonnellata e mezzo di test, nel momento in cui hai un sistema di tipi molto espressivo (e non parlo di linguaggi che vengono da C) il compilatore può rinforzare i contratti con le funzioni e semplicemente non compilare. Alla fine ti trovi a scrivere un numero significativo di test in meno (IMHO parliamo di un ordine di magnitudine).

Questo forse ti può interessare:

https://www.youtube.com/watch?v=8_gjqN-VqeM




  ngw


 Vim/Emacs te capisci che ho fatto il pieno di stramboidi.



Be', Emacs e Vim non sono esattamente né recentissimi, né il paradigma 

dell'usabilità :-)



TheStar


 qualche idea su come si scrive il software (sopratutto nel 2018).



Cacchio leggi bene: non ho mai detto che ne sia un sostituto. Dico però 

che ti aiuta parecchio. E' un po' come se avessi un bel po' di test già 

pronti, gratis, senza muovere un dito. A me non pare poco: se poi a te 

la cosa fa schifo, contento tu.



TheStar


 dell'usabilità :-)



https://78.media.tumblr.com/ad2d81c3edaddcd96483d70ac1384a21/tumblr_n8jxi4upJb1rzzvq7o1_400.gif




  ngw


 informazione sul tipo di dato la devi fornire.



non necessariamente. molti linguaggi strong typed hanno anche il type 

inference, cioè il tipo implicitamente "dedotto" in assegnazione. 


 {} + []

0



:-D



  ngw


 Meh, in molti linguaggi tipati staticamente[...]



I linguaggi di cui parla TheStar non sono Haskell, e sinceramente non tirerei in mezzo Haskell in discussioni su pratiche di tutti i giorni, perche` non so poi quanti siano ad utilizzare quel linguaggio nell'ordinario. Non capisco pero` che cosa tu intenda con "il typing sostituisce di fatto una tonnellata e mezzo di test". I test servono a validare il comportamento del tuo sistema, non il semplice rispetto dei contratti sui tipi. 






 Dopo aver scoperto che c'è gente che preferisce "Atom" o "Visual Studio" a Vim/Emacs te capisci che ho fatto il pieno di stramboidi.



Gente che usa Vim/Emacs per sviluppare, e gli stramboidi sarebbero gli altri... :)


 la cosa fa schifo, contento tu.



Ma cosa vai cianciando? Si puo` sapere? Quali sarebbero i test che il compilatore ti offrirebbe gia` pronti? Il compilatore puo` solo validare il tuo codice a livello sintattico e fare qualche analisi basilare a livello semantico. Non puo` di certo garantirti che stai implementando il processo giusto; i test si`. Il compilatore ti serve per l'1% di cio` che devi testare.


 sto accuratamente alla larga.



Sai che dai tutta l'aria d'essere una volpe che non arriva all'uva?



Saresti sorpreso da quanti usano in verità Haskell, comunque il punto era che se si parla di tipi, tanto vale farlo bene che son 10 anni che leggo qui sopra sempre le stesse 3 robe su gente che se non informa il compilatore che 20 è un intero non capisce più un cazzo e si convince di chiamarsi Maria e vivere a Pordenone.

In Haskell il compilatore riesce ad usare i tipi per eseguire molti più check sul codice, anche perchè definisci esattamente cosa una funzione riceve e cosa ritorna non in termini di interi e stringhe ma di tipi algebrici (algebraic types? ho tradotto a cdc?). 

Sono parecchi anni che, tongue in cheek, i programmatori Haskell dicono "se compila funziona", anche se in realtà forse si riferiscono a "a well typed program do not go wrong" [0]

E poi c'è Quickcheck, che è tutto un altro livello di figaggine: 
https://hackage.haskell.org/package/QuickCheck




  ngw



[0] 
http://web.cs.wpi.edu/~cs4536/c12/milner-type-poly.pdf




In che senso "non arrivo all'uva"? JS non è poi così complesso, è che la 

mia esperienza è stata talmente negativa che mi sono ripromesso di 

starne alla larga.



Riconosco che il contesto del progetto in cui mi trovai a usare JS per 

la prima colta non fosse dei migliori: poco testato, codice in larga 

parte già rimaneggiato da altri, ecc. Quindi la mia opinione potrebbe 

avere una polarizzazione negativa che non mi permette di valutare la 

situazione in modo oggettivo.



Comunque, a prescindere dal "bias", potendo scegliere di JS faccio 

volentieri a meno.



TheStar


 Falso. Tu parli sulla base di nessuna esperienza.



La mia esperienza con JS e linguaggi simili (MATLAB concettualmente non 

è molto diverso) è questa. Non è vastissima, sicuramente influenzata 

dall'esperienza negativa di un progetto gestito male (disclaimer: non da 

me), ma comunque sufficiente per esprimere un giudizio.



TheStar


 
https://78.media.tumblr.com/ad2d81c3edaddcd96483d70ac1384a21/tumblr_n8jxi4upJb1rzzvq7o1_400.gif




Emacs l'ho usato, una ciofeca pazzesca, da evitare. Vim purtroppo sono 

costretto ancora ad usarlo.



Emmanuele


 volentieri a meno.



Non hai detto il perche` pero`. Il tuo e` SOLO bias.


 è molto diverso) è questa.



Non hai esperienza di JS.


 Non hai esperienza di JS.



Poca, ma sì. E' chiaro che non è la mia competenza più forte, ma aualche 

mese di lavoro sono sufficienti a dire che un po' ci so mettere le mani. 

Sampre che ce le voglia mettere :-)



TheStar


 che non sei sicuro funzioni?



Minchia 4andre4 che tigna che sei.

Ma quando mai si riescono a condurre dei test con il 100% di copertura?



Tu rilasci ufficialmente software BugFree(tm)* forse?!?

Ma per piacere...e quando viene fuori un bug il tuo 100% di copertura

e cazzi e mazzi e quanta ne so e come cell'ho lungo...sai dove te

lo puoi mettere il tuo 100% immaginario?





*) Puo' darsi che si tenda al 100% in progetti estremamente

    critici dove c'e' di mezzo la pelle di qualcuno ma ho

    come la sensazione che non sia il tuo caso, che comunque sarebbe

    estremamente particolare.






 difetti.



che ancora non si è capito quali sono. finora hai citato la tipizzazione 

debole, a volte facendo confusione con la dinamica, ma questa è una 

peculiarità del linguaggio più che un difetto. 


 niente niente esci dal loro mondo ideale (cioè quasi sempre).



Cosa c'è di inservibile in Selenium? Io lo uso da secoli, prima con PhantomJS, da un anno a questa parte con headless chrome. Non è affatto un mock environment, è un modo per comandare il browser. E funziona molto bene.



  ngw


 lo puoi mettere il tuo 100% immaginario?



LOL :) Tu non hai la minima idea di cosa io stia dicendo, vero? :)




 Poca, ma sì.



Nessuna, non poca. Parla quando conosci.


 email maxadamo ==> 
gmail.com



 LOL :) Tu non hai la minima idea di cosa io stia dicendo, vero? :)



Certo, tutti quelli che contestano le tue sparate sono

incompetenti, e' cosa nota!! :-)


 più.



Oh! Una riflessione sensanta ogni tanto fa piacere.


On 2018-06-25 12:46, 4ndre4 wrote:

 > Ma la tua esperienza, per quello che scrivi, fa veramente cagare.

 > Fattelo dire. Copertura realistica dei test e` quella

 > che ho descritto io: il codice rilasciato deve essere TUTTO

 > coperto da test. Non si rilascia codice che non si sa se

 > funzioni o meno.



Eccolo qui! Grande 4andre4!! Il messiah cintura nera

di test total100%proof che aboilisce i bug in produzione!



Presto! Diciamolo a tutti! Il mondo deve sapere, non puo'

continuare cosi'. 4andre4, l'uomo della provvidenza!

Scrivi un libro ti prego, spiegaci come fare e salva il mondo

dai bug.



Autore 4andre4, titolo:

"TUTTO coperto da test: l'arte di rilasciare sempre

software BugFree(tm)"



Il trade mark e' di 4andre4 ovviamente.


Il 21/06/18 14:15, 4ndre4 ha scritto:


mi sa che i tuoi progetti sono composti da 2/3  moduli linkati tra loro 

e basta

Altrimenti non scriveresti queste boiate

Un sw complesso composto da migliaia di classi che interagiscono tra di 

loro ti voglio proprio vedere a fare una copertura del 100% con i test.

Ci metti piu tempo a scrivere i test che a progettare il tutto

E comunque alla fine non hai mai la sicurezza di avere testato tutti i 

casi possibili.

Non si puo fare un test di un test

E' dimostrato scientificamente




 E' dimostrato scientificamente



Tu non dimostri scientificamente un bel niente. Togliti la parola "scientificamente" dalla bocca. Sei un'offesa alla scienza.




 





E questo dimostra la tua ignoranza

Come fai ad affermare con assoluta certezza che i test sono coperti al 

100% ?

Fai un test del test ?

E come fai ad affermare che il test del test non abbia bachi o che copre 

tutti i test del test

Fai un test del test del test  ?


 Fai un test del test del test  ?



ROTFL! Non puoi essere cosi' tonto, credo che tu ci faccia :D


Il 25/11/18 04:35, Cicap ha scritto:


Ecco i rinforzi,e' arrivato il quaraquaqua

Invece che insultare spiega