[Flug] iava iava iava [era: info su linux]

Gian Uberto Lauri GianUberto.Lauri@eng.it
Ven 30 Gen 2009 10:20:13 CET


>>>>> "AZ" == Andrea Zagli <azagli@inwind.it> writes:

AZ> Il giorno gio 29 gen 2009 16:03:43 CET, Gian Uberto Lauri ha
AZ> scritto:
>> [...]
>> 
>> (peraltro, a fare alcune cose in php4 si impazzisce, a farle in
>> Java e bene ci si mette molto meno, nonostante la presenza del
>> codice di Apache).

AZ> non sono esperto in nessuno dei due linguaggi, quindi mi fido di
AZ> quello che dici

AZ> (comunque siamo al php5 che e' un po' piu' evoluto del 4)

Peccato che avrei dovuto usare il 4 :>.

AZ> anche se ci sono dei test che lo affermano, io non posso che dire
AZ> che java (e per java intendo "tutto il sistema") e' piu' baraccone
AZ> (cioe' piu' esoso di risorse) di c e php

Beh,  il  C è  nato  per avere  il  massimo  controllo sulle  risorse,
peraltro è provato da anni di codice scritto che sono pochi quelli che
riescono a scrivere codice C che non presenti problemi di sicurezza.

E non  ci sono santi,  o hai delle  buone librerie su  cui appoggiarti
oppure  devi  lavorare  tanto  di  più. Nota:  da  Redmond  mi  giunge
testimonianza che in  uno dei loro prodotti vengano  usati oltre dieci
tipi stringa  diversi, ed  una cosa genere  è probabile  anche altrove
dove non ci sia un 'dittatore' a fare auditing del codice...

Per progetti oltre una certa  dimensione temo che il PHP possa portare
molte rogne  per un  altro motivo, che  ci vuole MOLTA  disciplina per
scrivere codice pulito.

La jvm,  dovendo fare  un lock su  tutto lo  heap quando avvia  il GC,
tende ovviamente a allocare nuova memoria per non dover far peggiorare
le prestazioni.

E qui si  distinguono i sistemisti che ci  hanno capito qualcosa dagli
altri.

Un  sistemista che  non ci  ha capito  niente assegnerà  alla  JVM una
memoria enorme, la più larga disponibile. Il sistemista che ci capisce
qualcosa  cercherà   di  fare  del  monitoraggio   per  aggiustare  la
dimensione  dello heap massimo.  Il primo  provoca questo  effetto, la
macchina  virtuale  periodicamente  starà  ferma  immobile  mentre  si
spazzola tutti i giga allocati per raccogliere l'immondizia.

Mi  è capitato  di  dover  gestire la  differenza  di semantica  nella
gestione  dei file  mappati in  memoria tra  Windows e  GNU/Linux, che
sotto  Windows  i  file  rimanevano  locked fintanto  che  non  veniva
terminato l'oggetto.

Per risolvere  il problema  (e non caricare  in memoria il  file, come
avrebbero fatto altri) ho iniziato  a mettere chiamate al GC, sperando
che la JVM  le onorasse (la chiamata gc() più  che altro "consigla" al
thread del GC  di fare pulizia). Ho dovuto ridurne  la quantità che le
prestazioni erano  andate a quel paese,  e sono riuscito  a trovare un
buon equilibrio.

AZ> anche se capisco benissimo che potrebbe dipendere principalmente
AZ> da come e' scritta l'applicazione, ma per adesso non ne ho trovata
AZ> una buona scritta in java: sara' un caso ma cosi' per me e'

Non è un caso. Penso che il numero di programmatori nel mondo andrebbe
ridotto di oltre 10 volte...

AZ> sinceramente pensavo fosse evidente che parlavo del java non come
AZ> linguaggio fine a se stesso, ma compreso di jvm e ammenicoli vari
AZ> (dato che da solo non esiste)

No non  lo era, e sinceramente è  una musica che sento  troppo e molto
spesso da gente che in pratica non sa nemmeno cosa dice.

Per lavoro  uso Java, come  linguaggio è elegante, anzi  è decisamente
più elegante di C++ (che  peraltro può avere i suoi simpatici problemi
quando cominci ad usare metodi virtuali e allocazione dinamica).

Meglio di altri linguaggi "mainstream" del passato.

AZ> se vuoi ti posso raccontare dei pochi programmini java che ho
AZ> fatto io e su cui ho avuto le stesse brutte esperienze (anche se
AZ> ormai sono passati diversi anni e sicuramente le cose saranno
AZ> migliorate); sicuramente saranno stati scritti da cane ma le
AZ> stesse cose riscritte male in c mi sono venute molto piu' meglio
AZ> assai

Scrivere codice  in Java  come lo si  sarebbe scritto  in C non  è una
buona cosa.

Mi piacerebbe avere più tempo per approfondire il LISP, che col C è un
altro  capolavoro.  Ma  tra  i  due  c'è  un  abisso  mentale  enorme,
affascinante.

--
                                                Gian
                                       Friends will be friends
                                          right to the end!



Maggiori informazioni sulla lista flug