Piccola considerazione

Adesso che, da un paio di giorni, sto avendo a che a fare con il Java (linguaggio che in precedenza mi aveva incuriosito, ma di cui non sapevo assolutamente nulla) posso permettermi una considerazione:

Fa cagare.

Ma cosa mi rappresenta tale profundìo (chissà se esiste sta parola) di metodi e classi per fare le cose più semplici e banali? Va benissimo orientato-agli-oggetti, ma non affondato-negli-oggetti! Io sono la prima a sostenere che l'invenzione delle classi è stata qualcosa di geniale, che specialmente in caso di programmi complessi migliora le prestazioni, la compattezza e la leggibilità del codice. Ma c'è differenza fra "qui questi attributi sono riferiti ad una stessa cosa e quindi li unisco in una bella classe con dei metodi dei gestirli" e "buttiamo classi e oggetti ovunque".

Fine :D

Lisa

2 comments

Comment from: John McCain [Member] Email · http://jmc.altervista.org/
Consentimi di dissentire. Per un “Hello, world!” allora sì, è troppo, è difficile da memorizzare, è tutto ciò che vuoi tu. Però il problema è che l'informatico medio è uno “scienziato” nell'accezione più generale della parola, e quindi una persona che conosce lo strumento e sa utilizzarlo per i propri scopi.

Vedrai che nel 99% dei casi, con dei progetti "grossi" (pressappoco con qualsiasi cosa che non sia il già citato “Hello, world!” :D) la "masturbazione ad oggetti" di Java ti saprà salvare il culo.

Anche io dicevo la stessa cosa prima di conoscerlo e poi mi sono dovuto ricredere. Lo stesso programma che in C++ mi ha richiesto 10 giorni di lavoro, una ventina di file tra dichiarazioni e implementazione, e alla fine nemmeno funzionava correttamente (per via di conversioni Unicode/ANSI non molto funzionanti...), in Java mi ha richiesto 2 giorni scarsi di lavoro ed ha funzionato benissimo, al primo colpo.

In più, visto che sviluppavo un'applicazione per Windows e in quel momento avevo solo Linux a disposizione, per l'applicazione in C++ ho dovuto fare i salti mortali con WINE e MinGW per farla funzionare, la versione Java invece l'ho scritta e consegnata, senza tante pippe mentali.

Insomma... segnati questo post, fra qualche anno vedremo se pensi ancora lo stesso! :)
ciao :*
10/12/09 @ 00:10
Comment from: Walter [Visitor] Email · http://redbloggo.blogspot.com
Perfettamente d'accordo con John. Considera che l'astrazione è fondamentale quando si lavora con progetti di larghe dimensioni.

Ovviamente a ognuno il suo... se si stanno progettando applicazioni realtime, dove anche un solo nanosecondo può essere decisivo forse Java non è la scelta migliore.

In generale però, avere a disposizione degli oggetti più vicini al modo di pensare umano, garantire l'ereditarietà ed il polimorfismo (e quindi la riutilizzabilità del codice) ti evita di perdere molto ma molto tempo per implementare in modo custom ogni singolo pezzo di codice. Senza contare tutte le classi ed i metodi già presenti nelle runtime java, che ti permettono di scrivere evitare molto ma molto codice.

Come dicevo, il rovescio della medaglia sono le prestazioni (anche se attualmente sia il compilatore java che il runtime sono stati veramente ottimizzati).

Considera sempre che ogni livello di astrazione comporta meno lavoro per l'uomo ma decisamente più lavoro per la macchina, del resto è questo il motivo per cui sono state create le macchine.

Se ti sei avvicinata alla programmazione OOP, una volta compresa, comincia a dare uno sguardo alla AOP, ovvero la programmazione ad "aspetti". E' un livello di astrazione ancora maggiore rispetto all'OOP ed anche li, se devi fargli fare "Hello world" chiaramente non la usi...

Ciao

Walter
11/01/09 @ 11:43

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
Free Blog Themes and Free Blog Templates
Free Blog Themes and Free Blog Templates