Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony FE 16-25mm F2.8 G: meno zoom, più luce
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Il nuovo Sony FE 16-25mm F2.8G si aggiunge all'analogo 24-50mm per offrire una coppia di zoom compatti ma di apertura F2.8 costante, ideali per corpi macchina altrettanto compatti (vedi A7c ) e fotografia di viaggio.
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola è decisa sulla sua strada: questo nuovo edge 50 Pro non guarda a specifiche stellari ma considera di più l’aspetto estetico. E si propone elegantemente con linee sinuose e un sistema operativo veloce. Peccato per un prezzo un po' fuori mercato.
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace
Ecovacs allarga la sua famiglia di robot tagliaerba, ed abbiamo testato per diverse settimane il nuovo Goat G1-800. Installazione velocissima, app precisa, e lavoro infallibile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-09-2007, 11:46   #681
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7057
Quote:
Originariamente inviato da cionci Guarda i messaggi
E che c'entra questo ? Vorresti dire che se avessi un metodo di definire tutti gli operatori che vuoi allora la possibilità di avere l'overloading degli operatori è un bene, mentre se sei limitato agli operatori definiti dal linguaggio è un male ?

Secondo me non è vero che perde di omogeneità, se io faccio:

A = Z.scalarMultiply(B * C + D);

non vedo alcuna perdita di omogenità. Tra l'altro anche Matlab non ha un'operatore per tutte le operazioni permesse con le matrici, si fa uso anche lì di funzioni per gli operatori meno comuni.
no io dico che ci sono sempre due modi per fare questa cosa: creare un metodo apposta oppure fare l'overload dell'operatore.
quello più generale è creare un metodo, per cui è l'overload che è superfluo, anche perchè introduce non pochi problemi! adesso stiamo guardando le matrici e già la questione non è banale, pensa che potrebbe essere ancora meno banale

per me A = Z x (B * C + D); è omogeneo mentre A = Z.scalarMultiply(B * C + D); un pò meno.. tutta qui.
anche java presenta delle disomogeneità, ma le limita per quanto possibile
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 11:47   #682
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53963
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
si è vero.. ma con il design dell'esempio che ho scritto io non serve creare una classe per ogni significato che assume l'operatore >, ma è sufficiente aggiungere una proprietà all'oggetto.. non so mi sembra più logico
Quello che volevo dire è che quello hai scritto te (confronto tramite metodi) si può fare anche con il C++ anche in presenza dell'operatore in overloading.
L'operatore in overloading offre informazioni in più rispetto alla semplice presenza di metodi: ci dice come chi ha implementato la classe vuole che venga effettuato il confronto.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 11:50   #683
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53963
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
, anche perchè introduce non pochi problemi! adesso stiamo guardando le matrici e già la questione non è banale, pensa che potrebbe essere ancora meno banale
Guarda...è la prima cosa che ho detto: non bisogna abusarne, ma in alcuni casi è utile. E ti ho anche elencato alcuni dei casi di possibile impiego
E' chiaro che se mi metto a fare l'overloading degli operatori più assurdi diventa un macello, ma ripeto che per alcune cose, come l'ordinamento che ti ho presentato, è utile e permette di fare davvero diverse cose che altri linguaggi non possono fare ed in meno tempo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 11:56   #684
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7057
Quote:
Originariamente inviato da cionci Guarda i messaggi
Guarda...è la prima cosa che ho detto: non bisogna abusarne, ma in alcuni casi è utile. E ti ho anche elencato alcuni dei casi di possibile impiego
E' chiaro che se mi metto a fare l'overloading degli operatori più assurdi diventa un macello, ma ripeto che per alcune cose, come l'ordinamento che ti ho presentato, è utile e permette di fare davvero diverse cose che altri linguaggi non possono fare ed in meno tempo.
beh in realtà l'interfaccia Comparable di Java sta lì apposta

quello che penso è che è vero che l'overload può servire, ma quando si può è meglio non fare molto affidamento al buon senso di chi scrive. a parte che per me può essere elegante, per te no.. sempre meglio ridurre il campo d'azione così ci si capisce meglio anche tra persone diverse.
per me l'overload rimane una potenziale fonte di casini.. magari quando hai progettato la classe era tutto perfetto e liscio come l'olio, poi devi apportare delle modifiche e l'overload non va più bene. cioè tutto questo per dire che io non vedo questi enormi vantaggi, ma in compenso ci sono molti casi in cui si combinano casini.
la linea tra "abuso" e "non abuso" è molto sottile
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 13:28   #685
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12068
Quote:
Originariamente inviato da dupa Guarda i messaggi
overloading operatori, ereditarietà multipla, ...
se il c++ ha più funzionalità del java perchè c'è sempre più gente che usa java e sempre meno che usa c++?
forse xkè l'ereditarietà multipla conduce ad un bad-design e l'overloading degli operatori non è ke serva poi a molto una volta ke ti ci 6 abituato alla sua mancanza?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2007, 13:48   #686
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
non è così semplice.. ci sono vari tipi di moltiplicazione nelle matrici http://en.wikipedia.org/wiki/Matrix_multiplication
a quale si dovrebbe fare riferimento? a quella più comune? e se mi serve un altro tipo di moltiplicazione che simbolo uso? questo è un caso in cui l'overload degli operatori introduce disomogeneità nel linguaggio, non ha senso usare l'operatore * per la moltiplicazione classica tra matrici e poi dei comuni metodi per le altre moltiplicazioni.
La risposta te la sei data da solo: lo usi per le operazioni "classiche", appunto.

Con l'* puoi gestire:
- prodotto fra due matrici;
- prodotto fra matrice e vettore;
- prodotto fra vettore e vettore;
- prodotto fra matrice e scalare;
- prodotto fra vettore e scalare

il tutto in maniera semplice e trasparente, come tra l'altro avresti dovuto imparare a fare quando hai studiato geometria.
Quote:
ti assicuro che poi A.multiply(B) non ha niente da invidiare a A*B come leggibilità. al massimo è più lungo da scrivere ma finisce lì la questione.
Chiedilo a un matematico o una studente che deve lavorare con matrici et similia quale soluzione preferirebbe e sarebbe più leggibile.
Quote:
per quanto riguarda le proprietà io continuo a non vederle di buon occhio perchè sono un modo per nascondere l'operato del codice e questo per me è un male. preferisco getters e setters che mi dicono esplicitamente cosa sta succedendo, mi sa che qui sei te che non sei abituato, perchè ti assicuro che la comodità non ne risente minimamente (ma anche la leggibilità)
E io ti continuo a dire che come UTILIZZATORE di una certa classe NON mi serve conoscerne i dettagli implementativi, ma soltanto la sua interfaccia.

Tutt'altra cosa è, invece, andare a LAVORARE sulla classe per modificarne il codice: in questo caso è a dir poco ovvio che mi serva conoscere il dettaglio implementativo.

La divisione fra interfaccia e implementazione nasce dalla notte dei tempi (informatici): non è certo una cosa che mi sto inventando io. Per cui se esiste la possibilità di nascondere dei dettagli implementativi non vedo perché non la si dovrebbe sfruttare.
__________________
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 20-09-2007, 15:09   #687
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
non è così semplice.. ci sono vari tipi di moltiplicazione nelle matrici http://en.wikipedia.org/wiki/Matrix_multiplication
a quale si dovrebbe fare riferimento? a quella più comune? e se mi serve un altro tipo di moltiplicazione che simbolo uso?
La moltiplicazione tra matrici è quella "comune", le altre usano operatori diversi dallo standard per cui non c'è motivo di confusione. Moltiplicazione per scalare o per vettore coinvolgono tipi diversi per cui non c'è problema. E' vero che e' un peccato non poter aggiungere nuovi operatori, ma meglio averne pochi in questo caso che nessuno.


Quote:
ti assicuro che poi A.multiply(B) non ha niente da invidiare a A*B come leggibilità. al massimo è più lungo da scrivere ma finisce lì la questione.
Se non provi ribrezzo nel vedere la prima notazione, vuol dire che nella tua vita hai visto troppo Java e troppa poca matematica .
Soprattutto nell'ottica di dover "tradurre" formule come y = A*x + b; o peggio. Non voglio pensarci .
Tra l'altro trovo curioso che (in generale) ci si lamenti che altri linguaggi "non somigliano abbastanza" a quelli classici (C++,Java) mentre secondo me e' molto piu' importante che ci si possa esprimere nel dominio in cui si sta programmando (nel caso specifico quello matematico).
__________________
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 20-09-2007, 15:21   #688
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7057
l'informatica agli informatici
torna subito a studiare gli spazi di Banach

ps. ovviamente scherzavo sarà mica andato sul serio a studiare gli spazi di Banach?

Ultima modifica di k0nt3 : 20-09-2007 alle 15:40.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2007, 11:25   #689
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7057
sapete che vi dico? a ognuno il suo linguaggio! però non scassate i cosiddetti a Torvalds la sua scelta finora ha pagato, quando non pagherà più si faranno altre scelte
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2007, 11:37   #690
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Fino a prova contraria è Torvalds che scassa i maroni agli altri con le sue idiozie su C e C++, sulla quale mi sembra che più o meno tutti siamo d'accordo.

Il segreto del successo di Torvalds non è tanto nel linguaggio che ha adottato (su cui vale quanto scritto finora e che è ampiamente provato essere superato da eoni), ma sulla massa di gente, spesso di spessore (come Alan Cox), che lo hanno attorniato.

Con strumenti migliori molto probabilmente si sarebbero ottenuti risultati migliori di quelli finora raccolti.

La dimostrazione che servono strumenti migliori l'abbiamo avuta pure coi programmatori di Gnome, che pur di poter lavorare con gli oggetti si sono inventati una libreria che è un autentico abominio già soltanto a guardarla.

Penso che sia del tutto inutile cercare di screditare un linguaggio come il C++ soltanto per esaltare il C e "salvare il culo" a Linus: non ne vale la pena perché le sue posizioni sono del tutto indifendibili, oltre che incompatibili col logica e razionalità.

Per il resto, i linguaggi sono come le distro: il mio è sempre migliore del tuo.
__________________
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 21-09-2007, 11:40   #691
ramhd
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 40
Quote:
Originariamente inviato da marco.r Guarda i messaggi
La moltiplicazione tra matrici è quella "comune", le altre usano operatori diversi dallo standard per cui non c'è motivo di confusione. Moltiplicazione per scalare o per vettore coinvolgono tipi diversi per cui non c'è problema. E' vero che e' un peccato non poter aggiungere nuovi operatori, ma meglio averne pochi in questo caso che nessuno.



Se non provi ribrezzo nel vedere la prima notazione, vuol dire che nella tua vita hai visto troppo Java e troppa poca matematica .
Soprattutto nell'ottica di dover "tradurre" formule come y = A*x + b; o peggio. Non voglio pensarci .
Tra l'altro trovo curioso che (in generale) ci si lamenti che altri linguaggi "non somigliano abbastanza" a quelli classici (C++,Java) mentre secondo me e' molto piu' importante che ci si possa esprimere nel dominio in cui si sta programmando (nel caso specifico quello matematico).
Infatti esiste Octave per questo tipo di programmazione
ramhd è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2007, 12:06   #692
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7057
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Per il resto, i linguaggi sono come le distro: il mio è sempre migliore del tuo.
ne consegue che i linguaggi sono come le ragazze
e non ho detto io che il C è da porci
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2007, 13:21   #693
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
Quote:
Originariamente inviato da ramhd Guarda i messaggi
Infatti esiste Octave per questo tipo di programmazione
Non sempre e' possibile usare programmi di quel tipo, soprattutto quando il codice generato deve interoperare con altro oppure sottostare ad alcune limitazioni (ambiente real-time ad esempio).
__________________
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 29-01-2008, 13:09   #694
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
però uno che scrive un software come git in C per me è un pazzo
E' anche un genio però...

Esercizion 1.4 di questa guida (grazie cdimauro per avermi salvato dall'altra pseudo-guida!! ) http://www.python.it/doc/Howtothink/...l-it/index.htm

Frase 1: Linu$ Torv@ld$ i$.... (continuate voi... fate sbizzarrire la fantasia!)

Frase 2: Torvalds il perde quando controllo... (come sopra!)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace Ecovacs Goat G1-800, mettiamo alla prova il robo...
ASUS ProArt 1, un PC completo ad altissime prestazioni per creator e non solo ASUS ProArt 1, un PC completo ad altissime prest...
OPPO Reno11 F 5G: vuole durare più di tutti! La recensione OPPO Reno11 F 5G: vuole durare più di tut...
Horizon Forbidden West per PC: ecco perc...
Fallout: che livello ha raggiunto Lucy n...
Appian potenzierà il suo Data Fab...
Ring celebra il primo compleanno di Ring...
PS5 Pro: Sony, gli sviluppatori siano pr...
Amazon Music lancia "Maestro",...
Micron, arriva la NAND QLC a 232 layer: ...
iPhone 16 Pro, un nuovo rivestimento per...
I TV TCL con tecnologia Mini LED hanno o...
HUAWEI dice addio alla storica serie P. ...
Star Wars Outlaws: i giocatori incontrer...
Vulnerabilità grave su iMessage: ...
Arriva Insta360 X4 per realizzare veri v...
AMD presenta i Ryzen PRO 8000: sono megl...
Iliad: la prima offerta fibra in Italia ...
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: 18:03.


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