Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2008, 23:56   #281
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Quello che dicevo e' che C++ non puo' fare alcuna assunzione sulla validita' della variabile FUORI dalla messageGot (), pertanto in coda non avra' altra scelta che mettere un COPIA dell'oggetto, o un puntatore alla COPIA dell'oggetto, altrimenti il rischio e' quello di processare della fuffa.

Java non ha questo problema.
Ma se non ne fai una copia locale qualcuno dall'esterno potrebbe modificare il contenuto del messaggio che hai messo in coda perchè ha un riferimento all'oggetto.
A me hanno sempre detto che è un comportamento da evitare, una classe dovrebbe avere il pieno controllo delle variabili che utilizza, se vuoi modificare una variabile devi passare per i metodi set, ma se dall'esterno qualcuno tiene il riferimento all'oggetto può modificarlo senza passare dal set.

Usi la copia o violi l'incapsulamento?

Per quanto riguarda processare fuffa, il C++ risolve utilizzando auto_ptr. Se qualcuno ti passa un auto_ptr sai per certo che ti lascia l'ownership del puntatore, altrimenti devi supporre che non lo deallocherai salvo specifiche opposte (generalmente questi problemi nascono interfacciandosi con librerie in C).

Quote:
Questo e' sufficiente a far pendere l'ago delle prestazioni dalla parte di Java? Well, dipende da quanto e' pesante le copie che C++ e' obbligato a fare mentre Java puo' evitare.
Ripeto con gli smart pointer queste copie in più si possono evitare già da subito senza attendere gli rvalue reference e la move semantics del futuro standard (che promette di risolvere la questione definitivamente).

Quote:
Sono convinto che ci sono dei casi (e non proprio particolari) in cui queste equazioni si invertono. E sono convinto che in futuro le cose cambieranno ancora...
Io aspetto di provare il nuovo C++

Ultima modifica di tomminno : 03-01-2008 alle 23:58.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:24   #282
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Scusate...ma Java come si comporta in un caso del genere...ora mi create confusione
Io passo per riferimento la classe Telegram, ma se io mi devo prendere la stringa e modificarla devo assolutamente farmi una copia...sia per come è definita una string in Java, sia per evitare qualcun altro mi modifichi l'oggetto dall'esterno...no ?

Poi il fatto che si facciano queste copie in più non significa assolutamente che Java sia più lento del C++...abbiamo visto come anche su una cosa banale (il bubblesort che ho postato qualche pagina fa) il C++ possa essere anche più veloce di Java di 4-5 volte...credo che questo vantaggio possa far entrare ampiamente qualche copia in più fatta nel passaggio dei parametri e nella gestione delle classi...

Ultima modifica di cionci : 04-01-2008 alle 00:37.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:39   #283
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da cionci Guarda i messaggi
Scusate...ma Java come si comporta in un caso del genere...ora mi create confusione
Io passo per riferimento la classe Telegram, ma se io mi devo prendere la stringa e modificarla devo assolutamente farmi una copia...sia per come è definita una string in Java, sia per evitare qualcuno altro mi modifichi l'oggetto dall'esterno...no ?
In Java risolveresti (elegantemente) il problema allocando un nuovo oggetto ogni volta che ricevi un telegramma. Semplice, elegante, efficiente e non viola l'incapsulamento.
Purtroppo non e' cosi' facile in C++, occorre sempre trovare delle "scorciatoie" che non sempre funzionano, e decidono di non funzionare alle 3 del mattino, costringendo sottovento ad alzarsi, spostare la famiglia che gli dorme sopra, e correre per 30 miglia a risolvere il problema

auto_ptr e compagnia bella non mi sembra si possano applicare in questi casi, quanto meno io non ce lo vedo proprio...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:45   #284
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da sottovento Guarda i messaggi
In Java risolveresti (elegantemente) il problema allocando un nuovo oggetto ogni volta che ricevi un telegramma. Semplice, elegante, efficiente e non viola l'incapsulamento.
Purtroppo non e' cosi' facile in C++, occorre sempre trovare delle "scorciatoie" che non sempre funzionano, e decidono di non funzionare alle 3 del mattino, costringendo sottovento ad alzarsi, spostare la famiglia che gli dorme sopra, e correre per 30 miglia a risolvere il problema

auto_ptr e compagnia bella non mi sembra si possano applicare in questi casi, quanto meno io non ce lo vedo proprio...
Se in Java devi quindi creare un nuovo oggetto per ogni copia del messaggio che consegni ad un destinatario...allora sei nella stessa situazione della copia
In C++ ti mantieni un solo messaggio locale al dispatcher e lo deallochi o automaticamente (variabile locale o auto_ptr) o con la delete quando lo hai consegnato a tutti i client registrati.

Sei esattamente nella stessa situazione...ne una copia in più ne una in meno
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:47   #285
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Quello che dicevo e' che C++ non puo' fare alcuna assunzione sulla validita' della variabile FUORI dalla messageGot (), pertanto in coda non avra' altra scelta che mettere un COPIA dell'oggetto, o un puntatore alla COPIA dell'oggetto, altrimenti il rischio e' quello di processare della fuffa.
Quel che stavo dicendo io e' che se il programma e' stato strutturato in un certo modo le assunzioni le puoi fare. E se non puoi ci sono gli smart_pointer.
Questo non toglie che la copia possa essere una soluzione piu' comoda, ma non e' l'unica.

Quote:
come non sono convinto dell'equazione
- C++ = efficiente
- Java = inefficiente
Non ne sono convinto neanche io, ma adesso stiamo parlando di altro
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:49   #286
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da sottovento Guarda i messaggi
In Java risolveresti (elegantemente) il problema allocando un nuovo oggetto ogni volta che ricevi un telegramma. Semplice, elegante, efficiente e non viola l'incapsulamento.
Purtroppo non e' cosi' facile in C++, occorre sempre trovare delle "scorciatoie" che non sempre funzionano, e decidono di non funzionare alle 3 del mattino, costringendo sottovento ad alzarsi, spostare la famiglia che gli dorme sopra, e correre per 30 miglia a risolvere il problema

auto_ptr e compagnia bella non mi sembra si possano applicare in questi casi, quanto meno io non ce lo vedo proprio...
Ricevi un telegramma e allochi un nuovo telegramma copia del precedente.
Questo non significa per caso fare una copia dell'oggetto?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:52   #287
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tomminno Guarda i messaggi
La copia locale è sempre buona cosa, se devi riusare la variabile in altre parti della classe.
Diciamo che e' cattiva cosa cosa riutilizzare la variabile per altre cose...
non farlo e ti risparmi possibili rogne.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 00:56   #288
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Diciamo che e' cattiva cosa cosa riutilizzare la variabile per altre cose...
non farlo e ti risparmi possibili rogne.
Se sei in un metodo set cavolo vorrai riusarla quella variabile o no?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 08:57   #289
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da marco.r Guarda i messaggi
E' una questione che mi incuriosisce da un po' e non ho mai avuto una risposta chiara: cosa si intende per linguaggio Managed ? Mi risulta che il termine sia stato coniato da Microsoft per indicare quei linguaggi che girano all'interno della framework .NET, ma vedo che e' spesso usato in contesti piu' generali. Ma allora che caratteristiche deve avere ? Avere un GC ? (Ma allora anche il C++ potrebbe esserlo), girare in una VM (quindi sarebbe da escludere Java compilato con gcj) ? Altro ?
A parte l'esplicito riferimento alla CLR e all'IL, mi ritrovo esattamente in questa definizione: http://blogs.msdn.com/brada/archive/.../09/48925.aspx

Quindi ci rientrano linguaggi come Java, C#, Python, Ruby, ecc., dove l'esecuzione avviene attraverso una VM che è dotata ANCHE di GC (nei casi in cui serva) e che "diriga" l'esecuzione del codice aggiungendo eventuali controlli necessari per impedire l'esecuzione di azioni dannose e/o non previste.
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Ok, quando leggo "stesso programma" io capisco anche medesima implementazione , questione di capirsi.
Certamente: meglio rimuovere le ambiguità.
Quote:
In questo caso allora non ha molto senso star li' a destreggiarsi in loop ciclopici... decidiamo un task un po' piu' complesso e vediamo come va a finire C++ vs. Java vs. resto del mondo.
Potremmo provare a convertire Diamond Crash in C++ e vedere come viene, come suggeriva Marco.
Quote:
Sempre che abbia senso. Il web e' pieno di confronti simili.
Che nella maggior parte dei casi hanno poco senso visto che spesso dettano anche come debbano essere scritti i programmi (vedi ad esempio il famoso shootout) e allora tanto vale.
Questi confronti vanno presi sempre con le pinze.

Possono essere un'utile "metrica" per vedere il comportamento di specifiche piattaforme su specifici pezzi di codice, ma giusto per farsi un'idea.

Non conosco nello specifico i "dettami" che si devono seguire per implementare i programmi, ma leggendo quella pagina non mi pare che vi siano imposizioni su come debba essere scritto il codice.
A cosa ti riferisci di preciso?
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 14:28   #290
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cdimauro Guarda i messaggi

Potremmo provare a convertire Diamond Crash in C++ e vedere come viene, come suggeriva Marco.

Perdonami Cesare!!

Ma sottintendi che riscrivendo Diamond in C++ si tramuterà in un cicloopico Crash ?

Scusate l'ot
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 14:38   #291
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da 71104 Guarda i messaggi
io veramente a quel punto proporrei l'acquisizione di hardware migliore... seriamente, per un 1% ti stai ad ammazzare rendendo i tuoi sorgenti incomprensibili e per nulla manutenibili, aumentando a dismisura i costi futuri di riutilizzo di quel codice?
e secondo te un 1% di performance in più non lo puoi guadagnare migliorando l'hardware? perché cavolo deve essere il programmatore a farsi un didietro così a scrivere software? tantopiù che siamo a Natale
Ho creato un mostro. E francamente un po' mi dispiace pure
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 14:41   #292
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Eh no... se sei bravo tu lo fai SIA veloce SIA funzionante... troppo comodo così
Spiegami come si fa! Spiegami come si fa! Diventiamo ricchissimi!
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 14:57   #293
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Ricevi un telegramma e allochi un nuovo telegramma copia del precedente.
Questo non significa per caso fare una copia dell'oggetto?
No dai, non e' una copia del precedente. Ricevo un telegramma (potrebbe essere una sequenza di byte) ed in entrambi i linguaggi devo creare un nuovo oggetto.
In generale il costruttore si prendera' in carico delle eventuali decodifiche (che devono essere fatte una sola volta, in partenza).
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 21:02   #294
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
Perdonami Cesare!!

Ma sottintendi che riscrivendo Diamond in C++ si tramuterà in un cicloopico Crash ?

Scusate l'ot
ARGH!!! Mica è la prima volta che confondo delle vocali...

Figurati che una volta ho pronunciato "drag en drop" (proprio così) e i miei amici che erano vicini si sono ribaltati dalle risate.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 21:36   #295
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da Barbalbero Guarda i messaggi
Sul web i pareri sono discordi e contrastanti, sebbene tutti ammettano che C++ sia più performante di java. Alcuni però sostengono che le prestazioni siano simili. Voi che ne dite?
Parlando ad esempio di software di visione artificiale, credete sia conveniente l'utilizzo di java (comodo per via delle libererie disponibili) o è meglio utilizzare il C++?
io mi sono occupato di visione artificiale. secondo me il linguaggio più adatto è ANSI C .
lascia stare i linguaggi ad oggetti.
__________________
"la scelta giusta non è sempre la più saggia,ma è quella che non porta con sè rimpianti" . pietro84
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 14:29   #296
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da pietro84 Guarda i messaggi
io mi sono occupato di visione artificiale. secondo me il linguaggio più adatto è ANSI C .
lascia stare i linguaggi ad oggetti.
Realizzare una GUI in puro C secondo me è da masochisti.
Mai avuto a che fare con le Win32 o le GTK?
Evidentemente no, altrimenti non avresti fatto un'affermazione simile.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 15:48   #297
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Se sei in un metodo set cavolo vorrai riusarla quella variabile o no?
Usare e riusare sono due cose distinte (e cosi' ho esaurito il mio bonus settimanale di pedanteria ).
Se tu invece intendevi usare la variabile (per lo scopo per il quale e' stato chiamato il metodo) il discorso e' un po' diverso, ma per certi versi abbastanza semplice. Tenersi una copia di una istanza o un puntatore/riferimento dovrebbe dipendere semplicemente dal fatto che dal punto di vista logico l'oggetto a cui ci si riferisce sia lo stesso o un altro.
Voglio che chi elabora la coda possa modificare l'oggetto che mi e' stato passato o, al contrario, vedere le modifiche che ha effettuato qualcun altro ? Mi tengo il puntatore.
Voglio che il risultato dell'elaborazione sia un qualcosa di distinto dal suo input ? Me lo copio e poi lo modifico.
E' comunque una cosa che va al di la' del linguaggio, e che quindi vale tanto in C++ quanto in Java. A dire il vero in C++ ho un'arma in piu': se il chiamante vuole essere sicuro che l'oggetto non venga modificato posso passarlo come const, ed evitare che il chiamato adotti la prima soluzione.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 16:29   #298
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Usare e riusare sono due cose distinte (e cosi' ho esaurito il mio bonus settimanale di pedanteria ).
Se tu invece intendevi usare la variabile (per lo scopo per il quale e' stato chiamato il metodo) il discorso e' un po' diverso, ma per certi versi abbastanza semplice. Tenersi una copia di una istanza o un puntatore/riferimento dovrebbe dipendere semplicemente dal fatto che dal punto di vista logico l'oggetto a cui ci si riferisce sia lo stesso o un altro.
Il mio discorso si concretizzava in particolare sui metodi set, visto che qualcuno ti passa un riferimento esterno, controlli se il riferimento contiene valori accettabili e infine lo copi su una variabile della classe per poterlo riusare in altre parti della classe stessa, ovunque sia necessaria. Era questo il senso del mio "riusare", non certo nel senso di riutilizzo di variabili per scopi differenti.

Quote:
Voglio che chi elabora la coda possa modificare l'oggetto che mi e' stato passato o, al contrario, vedere le modifiche che ha effettuato qualcun altro ? Mi tengo il puntatore.
Il C++ in questo non aiuta visto che i riferimenti devono sempre esistere, una variabile di classe che sia un riferimento deve essere inizializzata nella lista di inizializzazione e quindi in generale di scarsa utilità.
Il C++ in questi casi obbliga ad usare i puntatori.

Quote:
A dire il vero in C++ ho un'arma in piu': se il chiamante vuole essere sicuro che l'oggetto non venga modificato posso passarlo come const, ed evitare che il chiamato adotti la prima soluzione.
const_cast e passa la paura.
Purtroppo il C++ non garantisce niente, in quanto potresti volutamente togliere il const a qualunque cosa.
Infatti a causa di questo in linea teorica sarebbe sempre bene passare copie di variabili locali.
Io sinceramente me ne sono sempre fregato di potenziali terroristi del codice e restituisco sempre riferimenti const.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 16:51   #299
a2000.1
Senior Member
 
L'Avatar di a2000.1
 
Iscritto dal: Aug 2004
Messaggi: 311
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Realizzare una GUI in puro C secondo me è da masochisti.
Mai avuto a che fare con le Win32 o le GTK?
Evidentemente no, altrimenti non avresti fatto un'affermazione simile.
__________________
Senior Member
Registrato il: Jan 2001
Messaggi: 2609
a2000.1 è offline   Rispondi citando il messaggio o parte di esso
Old 05-01-2008, 17:22   #300
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Il mio discorso si concretizzava in particolare sui metodi set, visto che qualcuno ti passa un riferimento esterno, controlli se il riferimento contiene valori accettabili e infine lo copi su una variabile della classe per poterlo riusare in altre parti della classe stessa, ovunque sia necessaria. Era questo il senso del mio "riusare", non certo nel senso di riutilizzo di variabili per scopi differenti.
Certo se vuoi usarlo cosi' devi fai la copia, ma in che modo questo e' differente in C++ da Java (ricordo che il discorso iniziale era che il C++ obbligherebbe a fare piu' copie) ?

Quote:
Il C++ in questo non aiuta visto che i riferimenti devono sempre esistere, una variabile di classe che sia un riferimento deve essere inizializzata nella lista di inizializzazione e quindi in generale di scarsa utilità.
Il C++ in questi casi obbliga ad usare i puntatori.
Perdonami, ma non ho capito cosa intendi dire con questo...

Quote:
const_cast e passa la paura.
Purtroppo il C++ non garantisce niente, in quanto potresti volutamente togliere il const a qualunque cosa.
Infatti a causa di questo in linea teorica sarebbe sempre bene passare copie di variabili locali.
Io sinceramente me ne sono sempre fregato di potenziali terroristi del codice e restituisco sempre riferimenti const.
E' difficile che una persona aggiunga un const_cast per sbaglio, per cui si evitano tutti i casi in cui si va a modificare involontariamente un oggetto.
Era questo a cui mi riferivo, e non e' una cosa da poco. Il problema di chi opera con malizia e' tutto un altro paio di maniche, ma anche piu' circoscritto, visto che di solito e' legato a chi scrive codice che deve essere utilizzato da terze parti (ad esempio una libreria).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
Sharkoon punta sui case a basso costo, m...
La tua rete Wi-Fi fa pena? Questi FRITZ!...
Amazon, un weekend di fuoco per gli scon...
Ancora 3 smartwatch Amazfit in forte sco...
Sharkoon A60 RGB: dissipatore ad aria du...
HONOR 400 Pro a prezzo bomba su Amazon: ...
Offerte da non perdere: robot aspirapolv...
Apple Watch e Galaxy Watch ai minimi sto...
Il rover NASA Perseverance ha ''raccolto...
NASA e ISRO hanno lanciato il satellite ...
Switch 2 ha venduto 5,82 milioni di cons...
Assassin's Creed Black Flag Remake: le m...
Cosa ci fa una Xiaomi SU7 Ultra alle por...
Promo AliExpress Choice Day: prezzi stra...
Nostalgico, ma moderno: il nuovo THEC64 ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v