Sun promette: presto Java sarà open-source

Jonathan Schwartz annuncia che a breve Java verrà distribuito con licenza open-source
di Fabio Boneschi pubblicata il 17 Maggio 2006, alle 18:05 nel canale ProgrammiJonathan Schwartz annuncia che a breve Java verrà distribuito con licenza open-source
di Fabio Boneschi pubblicata il 17 Maggio 2006, alle 18:05 nel canale Programmi
102 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoE infatti quando parte il GC lo sente tutto il sistema.
Un algoritmo stupido si scandisce tutto l'heap 2 volte (mark e sweep).
La GC è ancora argomento di ricerca, e siamo ancora a livelli sperimentali.
NON DICIAMO ERESIE
>Beh, anche in assembly puoi programmare ad oggetti, ma non e' furbo scrivere un'applicazione complessa in assembly
E non e' neppure furbo scriverla in C, visto che il C++ (ancora meglio Java e C#) mette a disposizione tutta una serie di strumenti sia del linguaggio sia di verifica che aumentano di molto produttivita' e correttezza dell'applicazione.
In sintesi: si puo' programmare ad oggetti in C? Si'. E' furbo farlo? No.
<
Forse sfugge una cosa fondamentale perche' si possa parlare di OOP: ENCAPSULATION o DATA HIDING.
Non e' tanto il fattore complessita' o strumenti di verifica, quanto il girare questi due fattori: da ALGORITHMS+DATA STRUCTURES a DATA STRUCTURES+ALGORITHMS e l'incapsulamento delle stesse strutture dati (come si diceva, strumenti di linguaggio).
Seguono l'EREDITARIETA' ed il POLIMORFISMO.
Il POLIMORFISMO "lavora al suo massimo" con il LATE BINDING (DYNAMIC BINDING o DYNAMIC DISPATCH).
Quindi questo frega il C++ nei confronti di Java ed ObjectiveC.
A sua volta Java e' fregato dall'ObjectiveC dal fatto di essere STRONGLY TYPED quindi di dover specificare un tipo per oggetto (che deve stare nella catena di ereditarieta' o una interfaccia) come destinatario di un messaggio.
ObjectiveC (come Smalltalk) e' invece "piu' puro", un VERO linguaggio OOP, multipiattaforma (mac, linux, windows ecc...) come Java.
Per quanto riguarda le prestazioni di Java possiamo dire un "dipende". Oggi come oggi le cose sono state notevolmente migliorate, grazie anche ai JIT. Inoltre possiamo usare la keyword "final" per ovviare all'overhead posto dal meccanismo di DYNAMIC DISPATCH che permette al compilatore di mettere inline il codice di una funzione, e cmq Java trova applicazioni in molti ambiti di reatime solutions.
La stessa cosa per ObjC: specificando il tipo dell'oggetto e con direttive si ovvia al dynamic dispatch, anche se una chiamata ad una funzione normalmente, una volta cachata, e' uguale a quella C o C++ equivalente.
Salut!
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".