[Flug] Voi che ci capite a pacchi: mysql

Gian Uberto Lauri saint@eng.it
Mer 19 Mar 2014 15:59:30 CET


Massimiliano Masi writes:
 > >> E no invece! Non mi interessa nemmeno se programo in C! 
 > > 
 > > Errore. Ed anche grave. Non viviamo nel mondo della lavagna.
 > > 
 > > Non dico di arrivare a sapere dove e come ti verrà invalidata la
 > > pipeline del processore[1], ma sapere cosa accade come oggetti
 > > allocati et similia è dannatamente doveroso.
 > > 
 > > Piccolo quiz: hai un array di integer, ne devi caricare alcuni nei
 > > registri (meglio avere un RISC, che con gli Intel e Intel-derivati hai
 > > pochi registri). I dati li leggi per indirizzi crescenti o
 > > decrescenti?
 > 
 > Vedi, il programmatore Java dice: non mi interessa. Perché devo caricare
 > degli interi nei registri del processore?

Un programmatore Java non ha questa arma (a dire il vero nemmeno un
programmatore C su una macchina intel).

 > Perché mi devo interessare su come mi viene implementata la new()?
 > 
 > No. A quello ci pensa la JVM. Quello che devo fare io è pensare di 
 > creare un bel servizio web che mi garantisca l'adesione ad una SOA, 

Magari in questi casi metto in campo un service bus...

 > che non sia suscettibile ai rewrite attacks, 

 > che non abbia problemi di injection, 

Per quest'ultima un prepared statement salva già da molte cose e, cosa
che non guasta, migliora le prestazioni.

 > che il mio token SAML sia coerente con il TGT kerberos emesso, 
 > che autenticazione, autorizzazione, e integrità siano rispettate. 
 > 
 > Fine. 

Fine per nulla, mi spiace.

Hai dimenticato: deve farlo in tempi accettabili sull'hw previsto dal progetto.

Altrimenti ti trovi  i sistemisti (quelli che dico io,  non quelli che
sanno mettere dentro il CD e premere  next a manetta) si guardano e si
chiedono  chi  è quello  scrotocefalo  che  ha fatto  quel  carrozzone
immobile.
 
E gli utenti che pensano ancora peggio.

E non ti dico cosa possono pensare i contribuenti con i cui soldi è
stato pagato quel programmatore...

 > Se mi specializzo su una architettura, ho sbagliato mestiere. 
 > 
 > Perché lo devo fare?

Specializzarsi no, ma scegliere l'architettura che esegue meglio il
tuo codice magari si.

E anche se non sai come la new() funziona DEVI sapere che la new()
esplicita o implicita costa.

Così come è molto meglio che il programmatore in C sappia che accedere
per indirizzi crescenti può costare la metà di accedere per indirizzi
decrescenti...

 > Che dipartimento eri? Che BBS?

DEI di Padova (inizialmente alessia.dei.unipd.it (3B2 prima, LSX3020
poi), infine un cluster di dataless sun servite da una SS?
biprocessore a 40Mhz, maya.dei.unipd.it)
 
 > > Oggi  oramai Java  è abbastanza  bravo da  non fare  perdere tempo  se
 > > invece di una invokevirtual se non hai variabili volatili. Altrimenti
 > > evitare l'estremismo di usare le interfacce localmente...
 > 
 > Detta così è una supercazzoRa, lo sai vero? :)

No. In caso di variabili volatili la invokevirtual costa il 38% in più.

 > >> Certamente invece! Con i puntatori, come fai a fare analisi statica
 > >> del codice?
 > > 
 > > Vieni a lavorare con me, vieni a lavorare con me. Che ti mostro come la OOP
 > > NON ti salva.
 > 
 > Ma che fai di preciso?

In  questo momento  mi sto  dannando l'anima  con un  bean che  non so
quanti anni fa hanno cominciato a scrivere, su cui hanno messo le mani
legioni di decerebrati, che hanno  legato ad una operatività di [BEEP]
per quello  che riguarda  la user  experience e che  non ho  ancora il
permesso di buttare nella cloaca dei bit avariati.

Una  architettura  piena di  paroloni,  di  framework dagli  obiettivi
altisonanti che, arrivata al DB, ha bisogno do un mostro alimentato da
due Chernobil  in paralleo (parlo  della potenza dissipata  dai botti)
perché lo SQL  generato pare attuare ogni possibile  manovra lecita ed
illecita per impedire all'ottimizzatore di query di fare qualcosa.

Adesso stiamo iniziando la sostituzione utilizzando una infrastruttura
per il rendering web molto  carina, molto elegante, moderna, che segue
i dettami... E  che va costantemente in  crisi col bean su  cui mi sto
dannando l'anima.

Sufficientemente chiara come esposizione :) ?

 > >> No. Ci sono concetti di linguaggi error prone. E' anche vero che è
 > >> una teoria datata, visto anche gli arrosti che fecero coi linguaggi
 > >> di 4 livello.
 > > 
 > > È  l'uomo  a fare  gli  errori,  è l'uomo  che  scrive  il codice.  Un
 > > linguaggio è error prone se  richiede all'uomo di essere migliore (più
 > > attento, più disciplinato). 

 > Ma se da che mondo è mondo si tende a fare dispositivi sempre piu'
 > tolleranti agli errori.  È il concetto di Usability (merged with)
 > Safety.

Non mi fanno fare il macchinista se non ho imparato a menadito
l'architettura della motrice e non ho dimostrato di aver imparato a
manovrare i treni per cui sono abilitato. Ma ancora prima se non ho
passato test fisici e psicoattitudinali.

Quando  la  mia vista  andrà  a  farsi  friggere  o i  miei  riflessi,
whichever comes first, mi toglieranno la patente di guida.

A programmare ci mettono letteralmente cani e porci.

Detto questo non è che sia scomodo non doversi ricordare le free(), ma
in compenso ti capitano più facilmente le vaccate quando lavori con
risorse che devi liberare esplicitamente.

E poi vedo che sempre più spesso con Java si tende a voler buttare via
tutto  quello che  il linguaggio  ha di  buono come  aiuto a  non fare
errori come controlli a compile time,  eccezioni - che sono errori, ma
errori  ambientali[1] e  non del  programma  a cui  il programma  deve
essere pronto e saper reagire adeguatamente.

[1] Ci sono anche gli errori di programmazione tra le eccezioni. Il
buon Gosling, da brava persona cortese, li ha chiamati
RuntimeException. Doveva chiamarli TheCoderIsADonkeyException...

 > Me lo sogno la notte, lisp. Me lo sogno quando dovevo fare le macro
 > col cad 11!!!

Ah, avere le macro in Java....

Una volta  adoravo Java.  Poi lo  hanno trasformato  in una  specie di
Cobol per cani e porci... Thank you Oracle, (anche se l'ultima Sun...)

-- 
 /\           ___                                    Ubuntu: ancient
/___/\_|_|\_|__|___Gian Uberto Lauri_____               African word
  //--\| | \|  |   Integralista GNUslamico            meaning "I can
\/                 coltivatore diretto di software       not install
     già sistemista a tempo (altrui) perso...                Debian"

Warning: gnome-config-daemon considered more dangerous than GOTO


Maggiori informazioni sulla lista flug