Newsgroup: it.lavoro.informatica
Titolo: record: 140.000 tweets per second

al di la della notizia/gossip un interessante articolo sul *come* si è
arrivati a queste performance. da leggere soprattutto chi è fermo ai
retaggi tipo "la jvm è lenta" e "dei linguaggi sulla jvm basta java": 
 
http://goo.gl/PJbsYB
 


E' giusto, non ha più senso parlare di jvm lenta o veloce. Più che altro è sorpassato il concetto di macchina virtuale "alla java", che è inevitabilmente una brutta copia di un sistema operativo completo, nel momento in cui c'è abbastanza potenza di calcolo per emulare un intero hardware di qualche anno fa, ovviamente con le stesse prestazioni di quell'hardware anche nella velocità di esecuzione. Perchè mai fermarsi alle "quattro" (si fa per dire) funzioni della jvm?


Scusa sei ubriaco incompetente o cosa? Rileggiti, hai scritto 
stupidaggini che non stanno ne in cielo e ne in terra.
 

 alle "quattro" (si fa per dire) funzioni della jvm?
 
avevo scommesso 2 cent con me stesso che avresti risposto te e con delle 
sciocchezze di questo calibro, ora passo a incassare la vincita :P
 
ps: ma l'articolo l'hai letto? ci hai capito qualcosa? mi spiace, figure 
ce ne sono poche :P

 ce ne sono poche :P
 
L'articolo l'ho letto velocemente. Mi ha colpito che si parla esclusivamente di tecnologie non commerciali (Ruby, Java, MySql), dal che sembra di capire come questi signori escludono qualunque prodotto puramente commerciale (*) (es. db Oracle). Il che limita in partenza la discussione: vuoi fare tutto in casa (ben "200 ingegneri"! :-), ma non vedo perchè questo debba essere il modo migliore in assoluto.
Avranno i loro buoni motivi, sarebbe interessante saperlo.
 
(*) per commerciale si può intendere anche che Twitter si rivolge es. ad Oracle e chiede una versione pesantemente personalizzata del db, un'azienda come quella presumo che se lo possa permettere

 Per� spiegaci, come mai sarebbe una sciocchezza usare N macchine virtuali, con scalabilit�, isolamento, ecc., esattamente come si fa nel cloud, senza limiti di linguaggio, s.o, e quant'altro. Piuttosto che rinchiudersi nei limiti della Jvm, quali che siano.
 
 
Che stai mescolando pere con le mele.
 
La JVM � un componente applicativo software, come lo pu� essere il
framework .NET, e non ha niente a che spartire con il concetto di
macchina virtuale nel senso di hardware (virtualizzato) e S.O..
 
Ti ha portato fuori strada l'assonanza "macchina virtuale" Java (JVM)
con macchina virtuale == pezzo di ferro virtualizzato.
 
M.


Guarda secondo me e' perche' gli ingegneri di Twitter non sono laureati ma dei diplomati di merda.
(mancava solo quella, ho pensato di aggiungere).
 
BTW, il post e' abbastanza moot, se il problema sono i green thread (e il problema sono i green thread)
bastava JRuby, o al massimo fare un profiling piu' serio e capire dov'era il collo di bottiglia (che al 90%
era il sistema di code, che faceva cagare e infatti nessuno usa piu' da almeno 5 anni).
 
Ottimo hype pre-IPO pero', non avessi gia' deciso che Scala mi fa cagare lo riguarderei :p
 
  ngw

 era il sistema di code, che faceva cagare e infatti nessuno usa piu' da almeno 5 anni).
 
 
 
magari fosse cos�...
 
M.

Il giorno lunedì 19 agosto 2013 14:56:46 UTC+2, rootkit ha scritto:

dimentichi la parte piu' bella, cioe' prendere i popcorn e' godersi l' inevitabile reazione dei "language bigot" che infatti mi sembra gia' abbondantemente cominciata...  :)

 M.
 
Usi Starling? Ossignore.
L'ultimo commit e' di 4 anni fa: 
https://github.com/starling/starling
 
 
  ngw

 Avranno i loro buoni motivi, sarebbe interessante saperlo.
 
mah. io sinceramente dormo uguale anche senza la loro spiegazione sul 
perché non hanno scelto oracle.

 con macchina virtuale == pezzo di ferro virtualizzato.
 
A me pare di ricordare (!) che alcuni tra i principali motivi per cui è stata realizzata la Jvm (ed a ruota Net ed altre) sono: migliore sicurezza, tramite  isolamento dell'applicazione dal s.o.; portabilità tra s.o. (compili uno, esegui N); migliore scalabilità.
Ora, per quale motivo mi dici che una macchina virtuale-pezzo di ferro, che è ovviamente nient'altro che un software, non sarebbe in grado di ottenere i medesimi risultati? Senz'altro in modo più complesso, in quanto necessita di un qualche s.o. che ci giri dentro. Ma anche in modo molto più flessibile (il nostro root scriveva testualmente: "da leggere soprattutto chi è fermo ai
retaggi tipo "la jvm è lenta" e "dei linguaggi sulla jvm basta java"): in una vm-ferraglia ci metto dentro il linguaggio che mi pare, e perfino il s.o. che mi pare. 
A me l'analogia sembra evidente. 
Dopodichè, possiamo discutere quanto gli odierni hardware (reali) consentono di attivare tante vm contemporanee da eguagliare le prestazioni di scalabilità di Java, che ovviamente gode di molti anni di studio ed ottimizzazione in più.
 

 retaggi tipo "la jvm è lenta" e "dei linguaggi sulla jvm basta java" 
 
A questo rispondo. Evidentemente ritieni che si tratti di due affermazioni ancora di particolare attualità. Cosa che francamente non credo, per i motivi che dicevo. Oggi ci sono alternative interessanti.
Quel che hanno fatto a Twitter mi interessa abbastanza poco. Hanno preso certe decisioni, ed hanno raggiunto lo scopo.  Quindi, bravi bravissimi, altri usano altro e sono ugualmente soddisfatti.
 

 dimentichi la parte piu' bella, cioe' prendere i popcorn e' godersi l' inevitabile reazione dei "language bigot" che infatti mi sembra gia' abbondantemente cominciata...  :)
 
Io c'avrei scommesso un milione di euro, non 2 cent, che ngw non si sarebbe lasciato scappare una bella replica su un argomento anche solo vagamente collegato a qualche bella azienda internet sulla cresta dell'onda :-))


cosi ovvio e scontato che infierire sarebbe stucchevole :)
 
Ma e' comprensibile..blasfemia ed oltraggio a Ruby.. e per di piu' dal suo social network preferito.. quello dove "chiacchiera tranquillamente con Van Rossum"... come si dice.. anche la beffa oltre il danno!!!
 
Ma pensa che culo che abbiamo qui su ILI, dove ce lo possiamo godere tranquillamente.. mentre a Twitter se lo sognano uno cosi'!!!.. lo avessero interpellato.. gli risolveva il problema in un battibaleno.. e nel frattempo spaccava pure il culo ad un paio di passeri...
 
ps: pare addirittura che il logo dell' uccellino sia una sottile provocazione per ricordare come Twitter sia un santuario dove i passeri possono dormire sogni tranquilli..


Pensa, e io che ti ho anche suggerito dove guardare piu' o meno per capire almeno il punto del discorso e non peggiorare la solita figuraccia da cialtrone che ti sei gia' premurato di fare :)
All'altro coglione neanche rispondo, e' talmente incapace e incompetente da non rendersi conto che sulla JVM gira qualunque linguaggio del creato, e che quindi tirare fuori la solita stronzata del "language bigot" lo fa solo sembrare piu' coglione di quello che e', se questo e' possibile per uno che ha preso dell'imbecille da ogni singolo componente di questo gruppo :D
 
Rootkit, sei una merda, vai in un gruppo di informatici a fare questo genere di post, qua frega cazzi.
 
  ngw
 
p.s. Ho guardato Badoo, e' preoccupante che prima vai a 18enni e poi lasci questi reply passivo-aggressivi a me. No e' no Audano, sono etero e ho 34 anni, out of your league.

 altri usano altro e sono ugualmente soddisfatti.
 
amen. l'aggiungerò alla lista delle frasi perfettamente inutili.
 

 genere di post, qua frega cazzi.
 
un po' merda sono. potevo postare (come altre volte) il link nudo e crudo 
e non se lo sarebbe cagato nessuno, invece c'ho messo l'esca e 
naturalmente il link non se l'è cagato nessuno lo stesso ma l'esca è 
andata a ruba... :P

On 20/08/13 21.59, rootkit ha scritto:

No, dai, io l'ho letto anche se non sono competente in materia e difatti 
non mi pronuncio :)
Anche se volevo chiedere a te e Nicholas perché in Twitter sono partiti 
con Ruby se davvero poi ci sono quei problemi a scalare. Non 
immaginavano di dover affrontare dei picchi del genere o altro?
 
ciao
Gabriele
 

ce ne sono poche :P
 
Questo ha tante figure, ma non e' sottotitolato. :)
http://www.youtube.com/watch?v=ohHdZXnsNi8
 
-- 
Living in Barbaropoli
http://www.barbaropoli.com
 


"Scalare" non vuol dire assolutamente niente. Tra le tecnologie che negli anni "non scalano" io ricordo Python, Linux, Samba, ovviamente Java, e fondamentalmente qualunque tecnologia possibile e immaginabile.
Twitter e' nato come un giocattolo, si sono trovati a gestire un traffico pazzesco e per una applicazione molto atipica, dove non puoi cachare praticamente niente.
Ruby, nella sua accezione MRI, ha un GC estremamente povero, un mark and sweep degli anni 70 piuttosto patetico che non sta piu' di tanto tra le palle perche' nelle app rails e' piuttosto ininfluente in quanto servita alla pagina si pulisce tutto e addio. La GC e' riscritta su Ruby 2.0, problema risolto.
Quello che facevano in Twitter, criticati da tutta la comunita', era molto diverso, un long running process su un server implementato con i piedi da Blaine Cook. Questo server, dopo il licenziamento di Cook, e' stato reimplementato in Scala e si chiama Kestrel. La domanda che ai tempi (2009) tutti ci eravamo fatti era: perche' implementare un pezzo di software cosi' critico from scratch piuttosto che usare qualcosa di gia' esistente come i supertestati RabbitMQ e ActiveMQ? Aspettiamo ancora una risposta.
Rails e' ancora quello che serve il frontend di Twitter da quello che mi risulta, andando a fare query async su servizi rest, per altro ben visibili nel codice di frontend.
Tra parentesi, chiunque spaccia una app web molto trafficata come una applicazione implementata con una sola tecnologia e' un cialtrone, che molto probabilmente non sa fare il suo lavoro.
Ruby e' inadatto al multithread, il modello a green thread e' una scappatoia per non dover mappare il SO sottostante e uscire dal lock attorno all'interprete. Avessere voluto usare la JVM avrebbero potuto farlo con JRuby, progetto stramaturo e finanziato per n anni da Sun stessa, e certamente pronto per la produzione.
Twitter e' cool, quindi ha usato Scala e ora giustamente lo fa pesare (che e' cool).
Io, Clojure tutta la vita :)
 
  ngw

Io, Clojure tutta la vita :)
 
Il passaggio da Ruby a JVM in uno speech del 2011:


 immaginavano di dover affrontare dei picchi del genere o altro?
 
sicuramente picchi del genere non li avevano previsti. ma battute a parte 
la cosa non è affatto da dare per scontata: lo stack jee per esempio per 
come si è evoluto non è andato nella direzione di ottenere il massimo 
delle performance adatte al web "moderno", anzi. per questo sono nati 
framework come play o lift che si "smarcano" dal jee, play ad esempio che 
ho cominciato a conoscere ha uno stack molto semplificato (basato 
sostanzialmente su netty, un serverino generico ad eventi) e fortemente 
stateless. inoltre un altro ostacolo alle performance è la programmazione 
concorrente nel linguaggio java che è una cosa folle, se si esclude il 
porting dell'actor model che è stato fatto con akka. insomma il motivo di 
questo percorso di scelta può essere anche dettato dalle evoluzioni che 
ci sono state intorno alla jvm negli ultimi anni.

 dimostrazione di capirci poco si tratta...
 
La solita polemichetta.... E pensi pure che tu hai buttato l'esca :-))
 

 La solita polemichetta.... E pensi pure che tu hai buttato l'esca :-))
 
e dì un po', penso male? per caso hai risposto nel merito dell'articolo o 
nel merito dell'esca? d'altronde ho ammesso di essere stato una merda :P
 
ma soprattutto non è forse vero che hai fornito una tua valutazione che 
non ha ne capo ne coda in quanto che non hai nemmeno capito di che si 
tratta? e sarebbe "solita polemichetta" se ti correggo senza dileggio? 
certo se poi insisti...
 
 
 

 nel merito dell'esca? d'altronde ho ammesso di essere stato una merda :P
 
Ok, ti lascio a crogiolare nella convinzione che l'esca era la tua :-))
 
 
 
 

 Ok, ti lascio a crogiolare nella convinzione che l'esca era la tua :-))
 
vieni quà carpa, 'ndo vai con codesta lenza in bocca... fatti slamare che 
poi tranquillo ti ributto! sono una merda ma sono sportivo, poi tanto ti 
ripesco! :P
 
 

 sono etero 
 
l' unica cosa su cui si poteva scommettere anche piu' tranquillamente era l' inevitabile crisi isterica assortita di fantasie sessuali del povero malato di mente... ora mancano solo le seghe e siamo al completo! :)


sti poveretti annebbiati dalla bile abboccano alla loro stessa lenza e manco se ne accorgono.. incredibile! :) (e anche un po' agghiacciante devo dire...)
Mi mandano di traverso i popcorn...

 l' unica cosa su cui si poteva scommettere anche piu' tranquillamente era l' inevitabile crisi isterica assortita di fantasie sessuali del povero malato di mente... ora mancano solo le seghe e siamo al completo! :)
 
Oh, si poteva tranquillamente scommettere sul tuo contributo tecnico alla discussione.
Uno zero barrato, tanto per cambiare, con l'inevitabile cuttone sull'ennesima figura da segaiolo (contento?) che ti ho fatto fare :)
Bacini Audano, mi raccomando, metti Ruby nel curriculum, ghghgh :D
 
  ngw


Ma che ancora non hai capito che hai scritto (e confermato) una marea di 
stupidaggini da perfetto incompetente?

 contributo tecnico alla discussione.
 
a psycho, ma "contributo tecnico" vuoi dare a Twitter??? :)
Come ho detto prima, non volevo infierire piu' di tanto, lo trovo stucchevole, inutile e spiacevole nel caso di un malato mentale come te.. Ma almeno ho la decenza di non buttar li' due buzzword morte di freddo e pretendere di saperne di piu' su Twitter, le sue necessita'  del team che lavora su Twitter..
"bastava JRuby, o al massimo fare un profiling piu' serio"....
La classica , scontata, inevitabile raezione del language bigot megalomane ..(e discretamente cazzaro..)
A questo punto perche' invece di ammorbare ILI con la tua megalomania non ti proponi come CTO di twitter.. vagli a spiegare cosa devono fare..altro milione di euro sul vederti volare fuori dalla finestra dei loro uffici con "propulsione a pedate"...:)
Qui si possono fare al massimo alcune considerazioni, e cioe' che e' innegabile che quello che e' probabilmente il piu' grande sito ruby esistente sta "potando" sempre di piu' la sua codebase ruby a favore di JavaScript, Java, Scala e Clojure e che "fundamentally the JVM gives us something that Ruby can't". Il che naturalmente non vuol dire "Ruby cacca, caccaaa, caccaaa!!!" (considerata tra l' altro la rilevanza delle necessita' di un sito delle dimensioni di Twitter con il lavoro del 99% di noi..) ma e' sicuramente un case study interessante che mostra i limiti di Ruby una volta che si raggiungono le "dimensioni" di Twitter..ma ovviamente non vuol dire che Ruby sia una cattiva scelta per una startup...anzi..
Ma soprattutto..ci permette per l' ennesima volta di distinguere tra chi ragiona in maniera razionale e pragmatica, considerando i vari linguaggi/piattaforme come strumenti piu' o meno adatti a risolvere il problema corrente, e i poverettti chi ne fanno invece una questione di fede religiosa...
Alla prossima esca, trota megalomane! :)

 a psycho, ma "contributo tecnico" vuoi dare a Twitter??? :)
 
Alla *discussione*, non a Twitter. 
 
 

 Alla prossima esca, trota megalomane! :)
 
Siamo alle solite, il solito piccione che gioca a scacchi. Lo smentisci a tutti i livelli ma lui continua a scagazzare sulla scacchiera.
Bacini Audano, stammi bene :D
 
  ngw


*ROTFL*
Sei nuovo, vero?
 
  ngw

 Sei nuovo, vero?
 
Ni. Lurko e conosco di fama il soggetto.
 

 Capisco che sei totalmente pazzo,
 
uno dei lati distintivi del malato mentale e' il dare del pazzo a chiunque lo contraddica e cerchi di fargli aprire gli occhi sui suoi disturbi mentali...  Io lo dico per l' ennesima volta.. qualcuno faccia qualcosa prima che questo poveretto "faccia il botto" ...

uno dei lati distintivi del malato mentale e' il dare del pazzo a chiunque lo contraddica e cerchi di fargli aprire gli occhi sui suoi disturbi mentali...  Io lo dico per l' ennesima volta.. qualcuno faccia qualcosa prima che questo poveretto "faccia il botto" ... 
 
Ehm, hai preso del coglione da ogni singolo partecipante di questo gruppo, ma tranquillo, te la racconti e te la canti completamente da solo, e siccome non sei in grado di ribattere ripeti a paperella sempre le stesse 3 stronzate credendo di uscirne bene.
Contento te :D
 
Bacini Odisseus, come sei intelligente e curioso te non lo e' nessuno. Sull'odiare la banalita', oddio, ogni post la stessa morchia, ma vabe', fa niente :D
 
  ngw

 di noi..) 
 
non so voi, ma diversi di noi pur non avendo le stesse necessità sono 
comunque interessati per diversi motivi (fra cui, non ultima, la cultura 
personale) a conoscere l'architettura e le soluzioni a problematiche 
relative alle performance. 
per questo ogni tanto si intavolano queste discussioni che il 99% di voi 
ritiene inutili e su cui si diverte ad intervenire ad minchiam. 


Eh, ma Twitter mica c'ha bisogno, e poi non legge.
Molto meglio filippiche della solita morchia politicoide e perennemente OT, quello si che e' utile, e poi i grandi della terra, che invece risaputamente leggono ILI, non saprebbero piu' cosa fare senza il grande Odisseus.
 
  ngw

non sei in grado di contrastare una singola sillaba
 
ma povera triste macchietta.. ma che "sillaba" vuoi constrastare nell' uscita delirante di cazzaro malato di mente che pensa di saperne di piu' sull'implementazione di Twitter e le due problematiche di tutto il team che ci lavora su messo assiem...e se ne esce con:
 
"bastava JRuby, o al massimo fare un profiling piu' serio".  (ma al massimo eh, proprio al massimo..)
 
quanto a me, no, non essendo ne' un caso psichiatrico ne' un language bigot non pretendo di saperne piu' di tutto il team di twitter, ne' di essere un esperto di scalabilita' di sistemi, ma se proprio ne senti il bisogno una breve ricerchina con google (tipo le solite da cui estrai le tue buzzword morte di freddo..) ti potra' tranquillizzare sul fatto che JRuby e' ritenuto meno performante di Scala e che Scala e' considerato come lo strumento adatto per creare sistemi di grandi dimensioni, "componibili" e high performance..
 
Ma stai sereno, come finalmente spero tu abbia afferrato (dopo l' altra ennesima coglionata del "dici tutto e il contrario di tutto"..) anche se una combinazione di linguaggi in cui Scala ha una parte sempre piu' importante serve bene gli interessi di Twitter adesso ,Ruby rimane una scelta intelligente per una startup , esattamente come lo e' stato per Twitter..
 
Ah, grazie per quest' ennesima occasione per mostrare la differenza tra un fanatico "language bigot" e una persona razionale .. ma davvero... non credo ce ne sia piu' bisogno...

non sono mica a toccacciarmi 
 
e come volevasi dimostrare sono arrivate anche le imperdibili disquisizioni sulle seghe.. bastava avere un po' di pazienza.. e poi la macchietta da' sempre il meglio di se'!!! (Senno' "bastava JRuby, o al massimo fare un profiling piu' serio. ma al massimo.. proprio al massimo.. volendo esagerare e fare gli sboroni..:)
 
HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA

 CUT
 
Ancora niente, che peccato. Immagino che il motivo per cui "fundamentally the JVM gives us something that Ruby can't" ma Ruby sulla JVM non sia un opzione finira' con la solita scia di bava che rilascia il grande Odisseus ad ogni discussione tecnica alla quale non sa rispondere (cioe' tutte).
Ah, e ovviamente non hai capito un cazzo di tutto il discorso, che del resto non hai seguito :D
LOL Odisseus, un ego cosi' grande e un cervello cosi' piccolo, che vita di merda che fai :D
Bacini prickardo, grazie per il prezioso contributo, davvero utilissimo :D
 
  ngw

 HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA
 
Minchia, come sei equilibrato e calmo :D
Eh pazienza, ormai sappiamo tutti che accusi gli altri di problemi tuoi :D
Ora mi hai rotto i coglioni, in 7 post sei riuscito a non dire assolutamente niente, sei utile come pulirsi il culo con i coriandoli.
Ciao Odisseus, ti lascio alla tua rabbia per l'ennesima figuraccia, coglione :D
 
  ngw
 

 grandi dimensioni, "componibili" e high performance..
 
un link per esempio?
no, perché detta così suona più o meno come "un bicchiere d'acqua di vetro
rosso disseta meno di un bicchiere d'acqua di vetro verde". poi non nego
possano esserci argomenti a supporto ma non mi risulta proprio che 
quando si parla di "scalability" di scala questa sia intesa in termini di 
performance, le quali ovviamente *non* dipendono dal linguaggio.
 
leggiti questo thread:
http://goo.gl/55YOci
 


Ma sei davvero convinto che il tizio programmi in Scala o in Ruby? Ma va la :D
Non sa un cazzo dell'uno e non sa un cazzo dell'altro, lui "cerca su google" e se ne esce nella stessa frase in cui accusa a me di usare "buzzword morte di freddo" con delle frasi che sembrano uscite dal discorso di un commerciale dell'IBM :D
 
  ngw

 Ma sei davvero convinto che il tizio programmi in Scala o in Ruby? Ma va la :D
 
assolutamente :) solo che "JRuby e' ritenuto meno performante di Scala" è
una affermazione che potrebbe passare agli annali, sentiamo come spiega
due linguaggi che producono lo stesso bytecode uno meno performante 
dell'altro :-)

 assolutamente :) 
 
"Ma assolutamente si o assolutamente no?" (A. Di Pietro quando faeva il pubblico ministero).
 
Per il resto, che peccato che un thread che potrebbe essere interessante (per me, ad esempio) sia finito in vacca in questa maniera.
 
-- 
Ciao!
Luca
 
 
 
 

il motivo per cui "fundamentally the JVM gives us something that Ruby can't" 
 
 
il motivo viene spiegato nell' articolo che ha originato questo thread e sopratutto nel video, postato in questo thread, da cui ho scelto la citazione.
http://www.youtube.com/watch?v=ohHdZXnsNi8
 
Hai necessita' di qualcuno che te li traduca in italiano??? Eppure essendo madrelingua , in questo caso, non dovresti avere grossi problemi a comprenderlo.... :)
In ogni caso, non dovesse bastare..come ho gia' inutilemente cercato di spiegare a chi comunque non vuol capire, c'e' abbondanza di materiale in riguardo in rete, visto che prevedibilmente la scelta di Twitter ha scatenato al reazione dei membri del culto di Ruby :)

 performante dell'altro :-)
 
.... a proposito di affermazioni che potrebbero passare agli annali... :)
 
Secondo te tutti i linguaggi che girano sulla JVM devono avere la stessa performance solo perche' girano sulla JVM??? HAHAHAHAHA!
Capisco il povero megalomane, che non e' madrelingua Java, ma da te che sei un dinosauro Java francamente questa non me l' aspettavo..

 Per il resto, che peccato che un thread che potrebbe essere interessante (per me, ad esempio) sia finito in vacca in questa maniera.
 
vabbe' dai, ora solo perche' qualcuno ha bisogno ogni tre per due di sfogarsi in materia di seghe, diciottenni, "io ho la ragazza" e fantasie erotiche assortite non vuol dire che non si possano fare anche interventi ragionevoli... :)
 
Comunque in onore del tuo mite tentativo di riportare il gregge all' ovile ti dedico la citazione di questo splendido post:
 
https://al3x.net/2009/04/04/reasoned-technical-discussion.html
 
 
 
in particolare i bellissimi:
 
"Why are we discussing the performance of software as if it were a matter of faith, or opinion, or preference?"
 
"It was simply a tradeoff: work with a language you enjoy, accept the slower performance, buy more servers. Unless you have some deep insecurity about your choice of programming language, there’s simply no reason to be offended by such an assertion."
 
"I briefly covered why we didn’t make use of other languages. I did not discuss why nobody should ever use these other languages, but simply why we (Twitter) currently do not."
 
"It would be absurd and disrespectful to tell a room of other engineers why their choice of language for their projects – projects they know everything about and I know nothing about – is wrong"
(PHP caccaaa , caccaaa , caccaaaaaa.. anyone? :)
 
"That a language is “fun” or “agile” or “beautiful” is unmeasurable and fuzzy."

 (PHP caccaaa , caccaaa , caccaaaaaa.. anyone? :)
 
Ma io aspetto pazientemente una singola ragione tecnica per usare PHP.
Per ora abbiamo
1) Lo usano tutti
2) Qualcuno ci fa profitto (LOL)
 
Accomodati.
 
  ngw

 CUT
 
Assolutamente no, riprova.
Poi, mi rendo conto che non sei granche' brillante, ma no, nessuno ci casca. Ritenta e sarai piu' fortunato.
 
  ngw

 Capisco il povero megalomane, che non e' madrelingua Java, ma da te che sei un dinosauro Java francamente questa non me l' aspettavo..
 
E' roba jittata Audano e' roba jittata, hai postato benchmark di roba interpretata dove il typing dinamico ovviamente si sente, testa di cazzo patentata :D Compilare aiuta, te l'hanno mai detto?
Ah, tra l'altro magari non ti sei accorto, ma siamo a meta' 2013, postare continuamente roba vecchia di anni la dice lunga su quanto tu ci azzecchi con la discussione.
 
  ngw

 performance solo perche' girano sulla JVM??? HAHAHAHAHA!
 
cazzo te ridi? certo che si, se producono lo stesso bytecode e benefici 
della stessa compilazione jit spiega come potrebbe essere altrimenti.
 
i benchmark che hai postato, come tutti i confronti fra benchmark 
lasciano molto il tempo che trovano se non si entra nel merito 
dell'esatto parametro che si sta misurando. e non lo dico tanto per 
rispondere. scala ad esempio implementa nelle sue librerie standard 
l'actor model per la programmazione concorrente, ciò comporta che in 
scala viene assai più naturale scrivere codice multithread rispetto a 
usare le librerie standard di java. questo non toglie però che con 
adeguato sbattimento ottieni lo stesso risultato con java, o anche un 
risultato migliore. certamente però se approfitti di confrontare codice 
scala che utilizza la concorrenza con codice java che non la utilizza 
ottieni certo che scala è più performante, però grazie al cazzo stai 
barando. 
 
d'altronde ci sono decine, centinaia di articoli e talk in cui lo stesso 
autore odersky ripete fino all'ossessione che quando si parla di scala 
come linguaggio scalabile non è riferito alle performance ma alla sua 
domanda di utilizzo, che va dal piccolo script all'applicazione 
enterprise. inoltre la sua semantica non è mirata a ottenere codice 
performante bensì codice sicuro, coinciso e manutenibile. basti pensare 
all'uso intensivo degli option per abolire i null, sicuramente è un 
toccasana per il programmatore che non ha più l'incubo del 
nullpointerexception ma ovviamente dal punto di vista performance è un 
evidente overhead.
 

 Ah, tra l'altro magari non ti sei accorto, ma siamo a meta' 2013, postare continuamente roba vecchia di anni la dice lunga su quanto tu ci azzecchi con la discussione.
 
Magari (non essendo madrelingua..) non te ne sei accordo, ma la transizione di Twitter verso la JVM e Scala non e' iniziata a meta' del 2013...
Comunque se vuoi possiamo fare un "lodo physco" che proibisce di citare tutto il materiale piu' vecchio della settimana scorsa..:)
Cosi' forse potresti cavartela! HAHAHAHA!
.. cazzo ci sono ricascato di nuovo... sobrio.. devo essere sobrio... menegotto aiutami ti prego! :)

 "The performance of JRuby was also not even on par with MRI (the C implementation of Ruby), much less a language like Scala."
 
Ci fidiamo sulla parola? Numeri?
 
  ngw

 enterprise.
 
ma infatti, qui nessuno ha detto che Scala sia stato scelto perche' e' il linguaggio piu' veloce del mondo.. Ma le che le sue qualita' di performance hanno avuto un peso significativo..
 
Questi sono fatti semplici , chiari, esposti chiaramente dal team di Twitter.. sicuramente interessanti.. (infatti il tuo post e' stato uno dei pochi interessanti negli ultimi tempi (non tuoi, intendo in generale..mi tocca essere pedante per evitare crisi isteriche.. :) per nulla "moot".. ma non capisco la necessita' di ricamarci sopra cosi' tanto..


Hai ragione, che ingenuo.. fidarsi e' bene ma non fidarsi e' meglio.. specialmente se si tratta di uno degli "sviluppatori storici" di Twitter che parla del suo lavoro... Ad esempio potrebbe trattarsi di un complotto anti-ruby ordito dagli "scala-nazis"..e ora che ci penso il fatto che Payne sia autore di un libro su Scala getta una luce sinistra su tutta la vicenda...mi ricorda molto la storia del giudice Esposito...

 CUT
 
Quindi correggimi se sbaglio: non c'e' un numero che sia uno, corretto?
 
  ngw


Guarda, sono stato "convertito" dal bell' articolo di Payne.. quindi arrivati a questo punto penso sia piu' elegante lasciarti sguazzare nello tsunami di ridicolo che hai sollevato, ricordarti che:
"It would be absurd and disrespectful to tell a room of other engineers why their choice of language for their projects – projects they know everything about and I know nothing about – is wrong",
e non infierire oltre...


Direi che e' il caso di prenderlo per un "no, non c'e' un numero che sia uno". Ovviamente nel frattempo sei riuscito a non dare una risposta che fosse una sulle questioni che ti sono state poste, che per altro sono molto poche, visto che e' praticamente impossibile farti tirare fuori qualunque dettaglio tecnico che non sia ripetere a paperella quello che dice qualcun'altro senza per altro dimostrare di averlo capito. Contentu tu contenti tutti, del resto qui dentro godi della considerazione di merda schiacciata sul marciapiede, in fondo non ti cambia la vita granche'.
 
Vediamo di mettere un po' di chiarezza, non certo per l'Audano, che come tecnico riesce a valere addirittura meno di quello che vale come persona e che e' il caso di lasciare su Badoo nel vano tentativo di dare un senso ad una vita molto evidentemente piena di delusioni, me per l'onor di cronaca.
 
La triste verita' e' che il codice Ruby di Twitter era un informe ammasso di merda, come ammesso da loro stessi a piu' riprese:
 
https://twitter.com/al3x/status/1453041753
 
 
Il buon al3x ammette di usare kind_of? per tutta la codebase, di avere "Unexpected objects flying around.". 
Ma va bene, ammettiamo al di la della qualita' del codice che Ruby sia questo delirio da scalare e che sia tutto sommato normale che un servizio come Twitter vada giu' ogni 3x2, come mai non succede con Github, o con Shopify, oppure Basecamp, oppure Scribd. Tra la tonnellata di software scritto in Ruby, dichiaratamente scritto con i piedi dagli autori, l'unico ad andare giu' quotidianamente e' Twitter, pensa un po', stranamente quello scritto con i piedi.
Che forse non sia il caso di tirare su un gestore di code in Ruby usando i green thread, ma tipo avere una mezza idea di cosa si sta facendo e prima di mettere una merda come Starling in produzione fare un po' di profilazione?
 
  ngw

 tanto..
 
guarda che sei te che ci ricami. io sono pure contento, a me scala piace 
e quelli di twitter sono anche generosi con la community quindi la loro 
scelta è più che gradita. ngw lo detesta e vivaiddio che ci sono opinioni 
diverse, sennò che cazzo impari a confrontarti con quelli che assecondano 
le stesse opinioni?
 
 

 le stesse opinioni?
 
 
stai "minimizzando" ... qui stiamo parlando di "fatti" non di "opinioni"
E i fatti sono che:
 
si', Twitter e' passato da Ruby a Scala con successo perche' ha trovato che ne' Ruby ne' JRuby rispondevano alle loro esigenze
e no, questo non vuol dire che Ruby non sia un' ottima scelta per una startup
e no, sostenere che Ruby sia un' ottima scelta per una startup ma mostri dei limiti in progetti con le caratteristiche e le dimensioni di Twitter non e' "dire tutto e il contrario di tutto"
e no, non "bastava JRuby, o al massimo fare un profiling piu' serio"
e si', gli sviluppatori di Twitter hanno provato con JRuby, ma hanno trovato che Scala rispondeva meglio alle loro necessita' di performance (tra le altre cose..)
 
 
questi sono *fatti*, non pugnette..o opinioni che dir si voglia.. le "opinioni"  in questo caso sono: " full of inaccuracies, manufactured drama, ignorance, and unbridled opinion"
 
Ricito Payne:
"For the next several days, I could think of only one thing: why is something you can measure controversial? Are we not engineers? Is this not Computer Science? Why are we discussing the performance of software as if it were a matter of faith, or opinion, or preference? If you disagree, simply run an experiment. Did we somehow lose our Enlightenment values on the way to Web 2.0?"
 
Le "opinioni" hanno tutto le spazio che vogliono nel territorio del "il linguaggio X e' il piu' bello, il piu' divertente, il piu' espressivo, il piu' agile" etc etc etc...
 
Gia' che ci sono segnalo un altro paio di link interessanti che ho trovato seguendo questa storia che ormai mi appassiona come una telenovela :)
 
La discussione che segue questo articolo:
http://www.unlimitednovelty.com/2009/04/twitter-blaming-ruby-for-their-mistakes.html
 
 
e' particolarmente interessante, visto che partecipano alcuni sviluppatori di Twitter.. cito alcuni pezzi:
 
(in risposta ad un' obiezione di Nutter sull' aver "ignorato" JRuby:
 
"Charles, we respect the hard work that you guys have done with JRuby but for the systems that we wanted to build, we felt that we'd get more from a system that compiled to JVM bytecode and could perform on par with Java. We were hoping to also see benefits from Scala's advanced type system. So far, we haven't been disappointed. That doesn't mean there's no place for JRuby at Twitter, we just haven't found it yet. We're open to it."
 
 
"Scala is a very nice language. It's very fast, faster than JRuby, and it's type system provides some advantages over a dynamic language for certain kinds of applications. Some engineers here prefer it to Ruby, and so weighing the pros and cons, most new network services at Twitter are being written in Scala."
 
 
"Incidentally, if you know of anyone who has a large JRuby deployment, we'd be interested in that first-hand experience. If you don't, it might be a little early to say it would solve all our problems."
 
 
"It's also incorrect to say that the way JRuby and Scala make use of the JVM is exactly the same. Much like our other decisions haven't been arbitrary, our decision to use Scala over other JVM-hosted languages was based on investigation."
 
"here's not a "raging debate" internally because we make our engineering decisions like engineers: we experiment, and base our decisions on the results of those experiments."
 
"We get a lot of speculation to the tune of "why haven't those idiots tried x, it's so obvious!" Generally, we have tried x, as well as y and z. "
 
 
Un altro articolo interessante che ho pescato e' questo di Obie Fernandez "the one and only", e autore di "The Rails Way" (guarda caso tempo fa avevo citato proprio questo titolo come "sintomo" dell' atteggiamento religioso di parte della comunita' Ruby..)
Un altro che "se la canta e se la suona da solo" nonche' detentore del copyright sulla "Twitter shitty codebase"... 
(oltre ad arrivare a prendere sul serio quello che io avevo usato scherzando come esempio "satirico" di paranoia, la "secret agenda" di Payne autore di un libro su Sala.. non ci potevo credere quando l' ho visto..)
 
http://blog.obiefernandez.com/content/2009/04/my-reasoned-response-about-scala-at-twitter.html
 
 
anche qui la parte piu' interessante sono forse i commenti..(in cui tra l' altro anche il nostro psyco si era gia' intrufolato con le sue preziose opinioni...poteva essere altrimenti? :)
 
Che dire se non che c'e' solo una cosa peggiore di esser un fanatico religioso, ed e' scimmmiottare un fanatico religioso :)
 
"You call Twitter's code base "shitty" without even knowing it, you accuse Alex of pushing a "Scala agenda" (conspiracy theory: check) and you call this response "reasoned", Obie? Seriously? 
 
You are just pissed that Twitter is dissing your favorite language, and you're reacting like a kid, and by doing that, you are making the entire Ruby community look like a bunch of douchebags. "
 
"I'm not a Scala consultant. I'm not a consultant in any particular language or framework. Right now, Scala is a great fit to problems we've had a Twitter. If I go work on another project, there are any number of other languages I might pick. As I mention on the "About" page of my site, I love studying programming languages comparatively, and Scala just happens to have captured my attention more than any other language for the past year or so."
 
"So, I understand that you have some turf to maintain, and I respect that. I don't have turf to maintain. I'm not putting an agenda forward. There are two things I could get out of someone picking up Scala: book sales (which I certainly don't bank on) and contributions to open source Scala projects. Those are nice things, but I don't start my day looking to maximize them. The thing I really get out of talking about Scala is the pleasure of exposing other programmers to new ideas about their craft. That's why, for example, I talked about the language to a room full of Mac developers last year. I didn't really think they were going to learn Scala or buy my book, but I wanted to show them the world outside Objective-C."
 
"Maybe that helps clear this up. You seem to be operating from a business development perspective, and I'm operating from a hobbyist perspective. You want to be The Ruby Guy, but I don't want to be The Scala Guy."
 
 
"I want to share my interest in various programming languages, and share our experience operating Ruby and Rails at a scale that's orders of magnitude above what anyone else on the planet has done."
 
Infine una nota positiva.. non tutti gli sviluppatori Ruby , o anche autori di famosi libri su Ruby sono dei "douchebags" :)
 
http://pragdave.blogs.pragprog.com/pragdave/2009/04/twitter-should-move-away-from-ruby.html
 
 
Cito "in toto" e la chiudo qui, perche' mi sembra il modo migliore per concludere questa discussione..
 
"Oh dear. The chattering classes are at it, talking about how the Twitter folks are dissing Ruby by announcing the replacement of some Ruby code with Scala code.
 
Please stop.
 
At the kinds of volumes that Twitter handles (and with what I assume is a somewhat scary growth curve), Twitter needs  to improve concurrency—it needs an environment/language with low memory overhead, incredible performance, and super-efficient threading. I don't know if Scala fits that particular bill, but I know that current Ruby implementations don't. It isn't what Ruby's intended to be. So the move away is just sound thinking. (I suspect it also took some courage.) I applaud Alex and the team for this.
 
Instead of defending Ruby when it's clearly not an appropriate solution, let's think about things the other way around.
 
The good folks at Twitter started off with Ruby because they wanted to get something running quickly, and they wanted to experiment. And Ruby gave them that. And, what's more, Ruby saw them through at least two rounds of phenomenal  growth. Could they have done it in another language? Sure. But I suspect Ruby, despite the occasional headache, helped them get where they are now. 
 
And now they've reached the status of world-wide wunderkind, it's time to move on. 
 
I for one wish them luck. I look forward to the day when our online store reaches the kind of size where we have to move away from Rails. I'll tweet the fact with a tear in my eye, while my yacht sails me off to the sunset."

 linguaggio."
 
e quindi?
l'ottimizzazione del compilato per caso compete al linguaggio?
 
ps: beato te che hai tempo per fare flooding. io non ho tempo per 
seguirlo, 'spiace. 
 

 Che dire se non che c'e' solo una cosa peggiore di esser un fanatico religioso, ed e' scimmmiottare un fanatico religioso :)
 
Sia io che Obie siamo assolutamente sconvolti da questo dissing. A proposito, ripetimi chi cazzo sei che non me lo ricordo?
 
Ah, Odisseus, impara ad usare i link, che floodare e' una delle poche rotture di cazzo che per ora non regali al gruppo.
 
  ngw

ps: beato te che hai tempo per fare flooding. io non ho tempo per
seguirlo, 'spiace.
 
gia', putroppo pare tu abbia solo il tempo per dire:
"JRuby e' ritenuto meno performante di Scala" è una affermazione che potrebbe passare agli annali," ....
 
 
evvabbe', se non vado dietro a ogni tua domandina e' perche' non ci capisco nulla, se rispondo e cito pure dei riferimenti "faccio flooding"..abbiamo capito la solfa :)
 
Fai un bel respiro, e rileggiti:
https://al3x.net/2009/04/04/reasoned-technical-discussion.html
 

 un maiale
 
Senti, smettila di rispondere al Coglione®, alimenti solo la sua sindrome 
narcisistica... Piuttosto mi interessa questo argomento:
 
Secondo te quali sono i casi in cui è ammissibile o, meglio, consigliabile 
non esagerare col duck typing ed essere un po' più espliciti nel gestire i 
tipi?
 
Mi spiego meglio... supponiamo di avere un metodo che ammette come parametro 
un oggetto oppure un array di oggetti.
 
Potrei fare:
 
def foo(a)
  if foo.responds_to(:each)
    a.each { |x| bar(a) }
  else
    bar(a)
  end
end
 
oppure:
 
def foo(a)
  if a.kind_of?(Array)
    each(a) { |x| bar(x) }
  else
    bar(a)
  end
end
 
Il dubbio è che essere enumerabile non sempre è una caratteristica 
sufficiente perché mi senta giustificato nell'operare su ogni elemento 
dell'enumerazione.
 
Anche perché potrei lavorare assumendo che degli oggetti non sono 
enumerabili, poi lo diventano per altri motivi e mi trovo a rompere delle 
chiamate come side effect.
 
Cosa ne pensi?
 
Riccardo, se vuoi puoi rispondere anche tu eh! :)

 dipendono *ovviamente* dal linguaggio che stai impiegando :)
 
e questo è quello che vai ripetendo, ma l'hai capito che non l'hai 
argomentato? odersky parla del *compilatore*. lo sai vero che il bytecode 
generato da scala si può decompilare e risalire al relativo sorgente java?

 Riccardo, se vuoi puoi rispondere anche tu eh! :)
 
LOL secondo me ora va su Google a cercare per "duck typing" e torna con 
un articolo sui paperi che battono a macchina :-D


Traduco, che il coglione davvero non ha capito e ripete a paperella cose di cui non comprende il significato.
Se hai un linguaggio a typing dinamico il bytecode deve comunque andare di introspection per capire che diavolo di tipi usare, quindi il bytecode contiene tutta la rumenta per rispondere a vari tipi di dato.
Non e' una tragedia, clojure e' tipato dinamico, pero' che il bytecode di jruby sia piu' lento di quello scala puo' eventualmente starci, sempre che in scala non si usi la type inference, che mah, mi pare improbabile.
Il discorso di twitter e' tutto qui, non si sa bene di cosa si parla, non c'e' un numero che non sia pura vanity, non si sa un cazzo.
Peccato che ruby non scali, a forkare il kernel di linux per ora ce la caviamo benone, sono i tweet di scoble il problemone.
 
  ngw

 Riccardo, se vuoi puoi rispondere anche tu eh! :)
 
LOL, sicuramente avrai una puntuale disquisizione sull'argomento.
 
  ngw

 entrambi considerati "code smell" in ruby.
 
Forse non mi sono spiegato bene, intendo che l'alternativa è un oggetto o un 
array degli stessi oggetti.
 
Questo per rendere il metodo più leggibile.
 
Ovvero:
 
foo(a)
foo([a, b])
 
Invece di chiamare foo([a])
 
Io sono più propenso a verificare che sia specificamente un Array proprio 
perché non sto facendo propriamente duck typing ma è come se chiamassi due 
metodi con signature diversa.
 
Lo so, sono questioni di lana caprina ma tendo ad essere un precisino...
 
Ciao,

 improbabile.
 
si scala usa la type inference.
 


Appunto, dicevo che Scala se dichiara tutti i tipi nel sorgente, puo' dare 3 paste ad un linguaggio che ha bisogno di fare introspection ogni 3x2. 
Per me, come notavi, io odio che Scala non sia ne carne ne pesce, cioe' se hai una type inference *ottima* come Scala usala. Invece da la scelta, e a me fa cagare.
 
  ngw


Quello che ti dico e' che tu dai per scontato che sia un enumerable, e se non lo e' sono problemi si chi lo passa, non tuoi. It doesn't walk like a duck, se ti risulta piu' facile.
 
  ngw

 Sia io che Obie siamo assolutamente sconvolti
 
tranquillo..che siate due sconvolti si era capito da tempo :)
 
direi pure piuttosto sciroccati :)
 
(perdonami Payne, lo so, dovrei dire.. "a vocal member of the Ruby community" (e la sua scimmietta...:) ma questo te le serve proprio su un piatto d' argento!! :)
 
E ora, davvero basta, perche' a mischiarsi troppo con gli sconvolti si rischia di sembrare sciroccati come loro ...:)

 CUT
 
Qualcuno trova un accenno alla questione dell'Odisseus qui, che io ho letto ma trovo il solito ridacchiare del coglione ma niente piu'.
Se lo trovate ditemelo che gli rispondo.
 
  ngw

 performante.. chi cazzo glielo va a dire  ora???). 
 
din din din! mi spiace, il tempo è scaduto e lei ha esaurito le cazzate a 
sua disposizione.
 
sarò gentile e le dirò io stesso qual'era la confutazione esatta: jruby è 
un linguaggio dinamico, e la jvm fino alla 7 non supportava de facto la 
tipizzazione dinamica. stop.
come vede bastavano tre righe invece che tutte quelle paginate di 
citazioni che non c'entrano un cazzo (come quella di odersky che si 
ostina a ripetere) corredate da sghignazzi deficienti. oppure visto che 
si vedeva chiaramente con una mano scriveva e con l'altra googlava poteva 
imbattersi in articoli tipo questo 
http://is.gd/wptaHT
 invece di 
innondare la discussione di opinioni altrui.
 
certo è che con quelle tre righe la discussione avrebbe mantenuto un 
livello di decenza cosa che notoriamente a lei non interessa. lei è come 
quel ragazzino che entra nell'ascensore, sgancia una scoreggia e poi ride 
sguaiato delle facce schifate degli astanti. 
 
fup