Newsgroup: it.comp.java
Titolo: Si guadagna col Java?

C'e' qualcuno di voi che lavora in java seriamente?
Se si, in quale settore? Per quali tipo di aziende?
Ma ne vale veramente la pena imparare questo esperimento commerciale
chiamato da tutti: "Java"
Su quali piattaforme si usa prevalentemente?
mcava...@tin.it
Ciao

...

Qui da noi, al momento, non ne stiamo facendo il
"serio uso" che dici, dopo avere pero` sperimentato
(molto seriamente!) la possibilita` di usarlo per un
"visualizzatore" dei nostri modelli (il campo e`, CAD
3D per ingegneria meccanica; per il "visualizzatore",
se fosse andato in porto, sarebbe stata cruciale la
indipendenza dalla piattaforma -- purtroppo ci ha un
po' deluso in termini di prestazioni cross-platform
nel rendering 3D, uso "trasparente" dei vari possibili
acceleratori istallati, ecc, ma tieni presente che stiamo
parlando di prove fatte molti mesi fa, oggi la situazione
potrebbe anche essere cambiata!).
Nonostante che quello specifico esperimento non
sia, in un certo senso, "andato in porto" (come esperimento
ha avuto pero` secondo me tutta la sua validita`, pero`
non ci ha portato ad un prodotto commerciale), io
resto convinto [a] della grande validita` e vitalita`
tecnica di Java, e [b] che meriti sicuramente il modesto
sforzo e investimento per acquisire una competenza
approfondita su di esso.  L'elemento cruciale, dal mio
punto di vista, e` questo: quando fui arrivato ad una
conoscenza di Java sufficientemente approfondita
e "interiorizzata", da potere paragonare a quella che
ho di C++, notai che la mia produttivita`, a parita` di
compiti, era circa del 20%, forse del 25%, superiore
in Java, di quanto non fosse in C++ (nonostante la
perdita, in Java, dei template C++, l'unico elemento
di cui sentivo *seriamente* la mancanza).  Certo, il
codice che producevo non era altrettanto veloce
(quindi non sarebbe stato appropriato per le varie
parti di un'applicazione CAD dove le performance
sono assolutamente cruciali) -- ma i sottosistemi
non rigorosamente vincolati dalle prestazioni sono
_molti_, anche in un'applicazione performance
critical come un Cad 3D.  Ad esempio, il sottosistema
che gestisce il "colloquio" con un database relazionale
in SQL, potrebbe secondo me, anche essere riscritto
in un linguaggio _totalmente_ interpretato -- tanto, le
sue prestazioni sono dominate, non da quel poco di
elaborazioni che fa lui, ma dai tempi di risposta del
_database_.
Nel nostro campo, il segreto del successo di Java,
secondo me, sara`, non nella sua portabilita`, ma
proprio nel miglioramento di produttivita` che offre,
rispetto al C++, una volta che li si conosca entrambi
a menadito -- un 20/25%, nella produzione di SW
destinato alla vendita, e` un margine di tutto rispetto.
Inevitabilmente, viste le necessita` computazionali
molto spinte di certi "nuclei" dell'applicazione, se Java
riesce ad entrare sara` nei termini di programmazione
multi-linguaggio: una programmazione "a componenti",
dove il C++ da` il suo meglio in quei relativamente pochi,
ma assolutamente cruciali, componenti "di nucleo", che
eseguono grandi moli di calcoli, con strettissime esigenze
di prestazioni; il Java permette di realizzare (e, mai
scordarselo, manutenere!) con piu` produttivita` tanti
numerosi componenti "periferici"; e altri linguaggi ancora,
magari piu` "dinamici" anche a scapito di prestazioni,
come i vari linguaggi di scripting (puri interpreti) permettono
di "personalizzare" in modo spinto l'intero prodotto, ad
esempio per la "integrazione verticale" richiesta da
varie, importanti "nicchie" di mercato.
Almeno, questa e` la mia (ottimistica) "visione" per il
futuro.  Anche se non dovesse concretizzarsi in questi
termini, non credo, comunque, che l'investimento (che
resta assai modesto!) per apprendere a fondo Java
vada mai considerato "sprecato"... e`, e rimane, un
linguaggio con varie caratteristiche tecniche molto
interessanti, corredato da un'enorme varieta` di
librerie standard degne di studio se non altro come
esempio di uso di design pattern dell'OO (in certi
casi, ammettiamolo, magari come *cattivi esempi*
di come NON progettare un sottosistema...:-).  Da
un punto di vista pratico, anche se dovessero restare
ampi segmenti di mercato in cui Java "non esiste", la
sua attuale "massa critica" e` comunque, secondo me,
sufficiente a garantire la sua sopravvivenza "per
sempre" (sulla scala di tempi dell'informatica!-) in
quei settori di mercato dove gia` si e` ritagliato le
sue nicchie; anche parlando "pessimisticamente",
dunque, non mi pare che una buona conoscenza e
una buona prassi di Java siano comunque "uno
spreco" dal punto di vista strettamente pragmatico!
Alex

 Su quali piattaforme si usa prevalentemente?
Le soluzioni con cui lavoriamo oggi girano su Windows NT e su IBM
AS/400! A parte un test fatto su Linux, che anche quello funziona
benissimo.
Spero che questo ti dia qualche idea... Almeno di come stanno le cose
qui nella fredda scandinavia.
--
Mikael Lundgren, inXit Communications AB, Uppsala, Sweden
Tele: 
+46 (0)18 146405
, Mobil: +46 (0)703 400105, Fax: 
+46 (0)18 146411
mailto:
mikael....@inxit.com
, 
http://www.inxit.com