altre destinazioni

vedi anche

ultimi post

ultimi commenti

tag principali

categorie

archivi

powered by

  • WPFrontman + WP

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

J2EE sucks balls (e libevent per Python)

8 novembre 2006

12 commenti

tag

categorie

I am sick and fucking tired of the shit that continuously goes wrong with that monstrous piece of bloatware that takes a zillion fucking days to write “hello, world” in. [...] J2EE will never see the light of day here again. And if the next Java project is not a resounding success, I know some people that better master C awful damned fast. I don’t give a flying fuck if Java reduces my defect rate by 50%, if it increases my development time by a factor of six trillion, it’s fucking useless.

Eccezionale commento su Slashdot (thanks Ryan) che esprime esattamente tutto quello che penso di Java e J2EE dopo alcuni anni di lavoro in ambienti “Enterprise”. Giusto oggi sentivo parlare di crash incomprensibili della virtual machine sulle super-affidabili (secondo chi le vende) macchine virtuali zLinux che girano su processori dedicati su mainframe…

Passando ad argomenti più allegri, per rimediare allla fame di risorse della classifica dei blog (che comunque grazie uno sponsor generoso riceverà due bei server nuovi fra qualche giorno per sostituire il vecchio e stanco Celeron 900) sto riscrivendo l’architettura di backend. L’idea generale è quella di usare parallel per distribuire i task, specializzando i processi. Le interazioni con la rete (tutte GET e POST HTTP) saranno gestite da un singolo processo, che utilizza socket asincroni tramite libevent e pyevent.

Sto finendo la prima versione del client HTTP basato su libevent/pyevent, e sono assolutamente sbalordito dalle performance: su un portatile mediocre (credo non arrivi a 2Ghz) su cui girano sia il server che uso per i test (lighttpd) che il client che sto sviluppando, riesco a fare più 3000 GET al secondo della pagina di default di lighttpd. Dopo avere aggiunto il supporto ad alcune funzionalità indispensabili di HTTP/1.1 come il chunked transfer encoding e il parsing degli header, la cifra è scesa un po’ ma è sempre sulle 2000 richieste al secondo. Libevent è veramente incredibile, e facilissima da usare anche per chi è alle prime armi con il network programming.

Se vi interessa approfondire date un’occhiata ad apricot, un server HTTP supersemplice in Python che va come un missile, o questo altro server che ha performance simili. Avendo tempo sarebbe bello trasformarli in server stabili e con le funzionalità che servono per usarli in produzione.

Post scriptum per il duo di Treviglio, non ho dimenticato il sito, settimana prossima dovrei avere un prototipo usabile. Spero non sia troppo tardi. Ah, e spazio per ospitarlo se serve.

12 commenti

  • Lawrence Oluyede
    8 novembre 2006 #

    Come dice qualcuno non è mai troppo tardi :-D
    Posta pure in mailing list quando puoi.

    Vado a dare un’occhiata ad House M.D. e poi ai siti che hai linkato :)

  • fullo
    9 novembre 2006 #

    mai stato così d'accordo su già-(è tanto se)-va… ;)

  • [...] Same opinion here: J2EE sucks balls (e libevent per Python), questa volta opinione condivisa con Ludo. [...]

  • baldo
    11 novembre 2006 #

    io mi sto stampando il http://www.djangobook.com/ e sto seguendo i tutorials e il manuale..

    sono bravo? si, anzi bravissimo siccome sul mio blog ho segnalato il libro.

  • Full(o)bloG
    13 novembre 2006 #
  • Cristian Conti
    14 novembre 2006 #

    Volevo chiederti…quale volume puoi consigliarmi per iniziare ad apprendere python? Vorrei trovare un volume con i primi passi da leggermi durante gli interminabili pranzi familiari natalizi..

  • ludo
    14 novembre 2006 #

    Fullo: PHP funziona, è diffusissimo ma ha un sacco di problemi, tra tutti la mancanza di namespace e di supporto a Unicode (come si vede dal trackback qui sopra). Linguaggi come Python sono molto più stabili, avanzati e semplici da utilizzare.

    Cristian: secondo me puoi iniziare tranquillamente con "Dive Into Python" di Mark Pilgrim, in versione inglese però, quella italiana mi sembra non sia aggiornata (ma magari mi sbaglio). Se hai ancora voglia di continuare dopo DIP, fai un giro su effbot.org, gli articoli sono eccezionali e la guida alle librerie incluse con Python anche. Poi secondo me una lettura illuminante sono i "What’s new" di Andrew Kuchling nella documentazione delle varie release, parti con quello della 2.2 e finisci con la 2.5, ti spiegano in maniera comprensibile le funzionalità nuove e più potenti, come iteratori, generatori, new style classes, ecc. Poi buttati su un progetto e vedrai che non ti pentirai di avere studiato. :)

  • fullo
    15 novembre 2006 #

    hey il mio era un flame php vs java.. mica verso python.. :P

  • ciccio
    16 novembre 2006 #

    Sarei curioso di capire quali sono i tuoi anni passati in ambiente neterpridse. se davvero ti sei occupato di backend, ambienti transazionali distribuiti & C. o solo di frontend. Sparare a zero è massificare, 'sto sito è spacciato come uno dei primi a promuovere il podcasting, mi aspettavo + professionalità…

  • ludo
    17 novembre 2006 #

    Ciccio, "’sto sito" non è "spacciato come uno dei primi", ma è veramente il primo ad avere fatto podcast in Italia. A me sembra che quello spara a zero sei tu… Tra l’altro io qui metto nome e cognome, tu ti firmi in maniera generica e praticamente anonima…

    E riguardo alla mia esperienza con J2EE, non è solo sui frontend (purtroppo), e gli anni passati in ambienti "neterpridse" iniziano ad essere parecchi. I nomi, beh non mi sembra il caso di farli qui. E comunque poco aggiungono a quello che penso su J2EE e Java in generale.

  • michele
    19 novembre 2006 #

    ciao Ludo, una curiosità…il tuo client http raggiunge performance migliori di quelle raggiunte da twisted web? perché in tal caso diventerebbe un progetto interessante…

  • Isadora
    17 dicembre 2006 #

    Sarà che io mi guadagno il pane dal 2000 sviluppando applicativi J2EE e che dal 2003 ho in produzione una serie di applicativi su infrastruttura Websphere/zOS nella multinazionale per cui lavoro, ma a me tutte ste manfrine contro Java sono un po' sospette… e zLinux non è così male, fidati…