|
|
|
|
Strumenti |
14-09-2007, 12:37 | #361 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
Quote:
Perchè il C è l'unico linguaggio usato per questi scopi? Evidentemente di meglio non c'è. |
|
14-09-2007, 12:42 | #362 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Che è sta cosa della pera? E' un coda di macchine, di pere, di ogni cosa... Noi dobbiamo tener presente che l'amorfismo è una qualità dal prezzo eccezionalmente elevato: ciò che in un linguaggio polimorfo è uso in un linguaggio amorfo diventa tentativo d'uso.
Come fai a sapere, in un linguaggio amorfo, se l'oggetto ciccio possiede o non possiede la caratteristica x? Lo presumi. In un linguaggio polimorfo quella presunzione diventa precondizione, espressa nel tipo del riferimento. Il polimorfismo è una scomoda certezza. Io penso che le certezze in programmazione valgano oro.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
14-09-2007, 13:09 | #363 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
Quote:
Un linguaggio amorfo non può ovviamente controllare se stai mettendo una pera in coda alle macchine, dovremmo quindi definire delle porcate i linguaggi amorfi per questo loro mancato controllo? Evidentemente no. In C# ad esempio si è sentito la necessità di introdurre il (non) tipo "var" per consentire di estendere le funzionalità del linguaggio. Evidentemente tipizzare troppo può risultare dannoso. |
|
14-09-2007, 13:11 | #364 | |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Quote:
... ma allora è una sorta di "amorfismo" anche il fatto che nelle Collection di Java "ante-generics" non si conoscesse il tipo degli oggetti (che erano visti tutti come "Object")? In effetti, anche in quel caso, il controllo si fa a runtime all'atto di popolamento della Collection: a posteriori, possiamo verificare solo se il tipo che arriva è esplicitamente quello con "instanceof" o costrutti simili. Che dovrebbe essere cattiva programmazione OO, in ogni caso. Che dite?
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
|
14-09-2007, 13:13 | #365 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7084
|
|
14-09-2007, 13:44 | #366 | ||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
Quote:
Quote:
Comunque in Python è possibile controllare il tipo dei dati che vengono utilizzati, e regolarsi di conseguenza. Se una funzione si aspetta un intero come parametro basta un isinstance(Parametro, int) e il gioco è fatto.
__________________
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 |
||||
14-09-2007, 13:45 | #367 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
__________________
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 |
|
14-09-2007, 13:50 | #368 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Il "morfismo" è l'identificabilità del tipo di un'espressione. Durante la compilazione, verrebbe da dire.
Una lingua è a-morfa se il tipo dell'espressione non è determinabile. Poli-morfo significa che le espressioni hanno uno o più tipi. Monoformo significa che le espressioni hanno tutte quante lo stesso tipo. Un insieme di Object non è amorfismo: è un insieme di Object. Amorfo è un insieme di non si sa cosa. Nota che Object un'espressione di tipo Object in Java non è polimorfa: il typesystem di Java non è ricorsivo, in cima c'è Object e fine della storia. E' polimorfo, ad esempio, un riferimento di tipo String. Ha due tipi: String e Object. E' polimorfo un riferimento di tipo Integer: ha tre tipi, Integer, Number, Object. E così via. Devo ammettere che con l'arrivo di Java 5 ho faticato anche io a trattenere la mia gioia, di fronte alla possibilità di poter finalmente vedere dichiarazioni di questo genere: class Ciccio<E, T extends Document & Comparable<? super String> & Map<? extends Comparable<Number>, ? extends Comparable<E>>>
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
14-09-2007, 14:01 | #369 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7084
|
Quote:
List<String> list; o proprio al limite un: List<List<String>> list; qualsiasi cosa più complicata di questa la ignoro |
|
14-09-2007, 14:08 | #370 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Noi dobbiamo guardare il male e commisurare ad esso la cura. Il male era:
(String)arrayList.get(index); La cura consta di 50 pagine di teoria dei tipi, in parte eccepite dalla necessità di preservare l'interazione con codice non generico. In Java 5 mi hanno detto che se ho il raffreddore posso curarmi togliendo la sicura alla granata che mi sono infilato in bocca.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
14-09-2007, 14:12 | #371 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7084
|
il male era che se ti finiva una pera in coda al casello il compilatore non te lo diceva
|
14-09-2007, 14:18 | #372 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Codice:
>>> a = 'Pippo' >>> b = 2 >>> c = a * b >>> c 'PippoPippo' >>> type(c) <type 'str'> >>> Non mi pare che l'identificabilità sia una condizione necessaria, per lo meno leggendo la tua prima frase. Quote:
Leggibilissimo [MODE PGI-Bis OFF]
__________________
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 |
||
14-09-2007, 14:20 | #373 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
__________________
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 |
||
14-09-2007, 14:23 | #374 | ||
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
[AGGIUNTO] Quote:
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
||
14-09-2007, 14:39 | #375 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Non era assolutamente mia intenzione prenderti in giro.
Semplicemente come programmatore m'è capitato non poche volte di avere l'esigenza di manipolare dati di qualunque tipo (l'esempio della lista è un classico). Coi linguaggi non-amorfi la soluzione è usare un puntatore "generico" (TObject in Delphi, Object in Java, ecc. ecc.) e "sporcarsi le mani" col casting. Con quelli amorfi non serve perché i costrutti accettano qualunque tipo. Da ciò, non penso che aver bisogno di una struttura che manipoli dati di qualunque tipo sia un male. Tutto qui.
__________________
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 |
14-09-2007, 14:44 | #376 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7084
|
ah nemmeno io avevo intenzione di prendere in giro qualcuno.. tuttavia se non si introducono i generics il problema della pera rimane irrisolto
|
14-09-2007, 16:45 | #377 | |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Quote:
Adesso mi risponderete che, in generale, questo non è sempre possibile... però forse lo è ma è troppo contorto a livello di programmazione?
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
|
14-09-2007, 21:13 | #378 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
|
Perdonate se parto con una scarrettata di quote, ma gli ultimi giorni sono stati molto intensi e non ho potuto seguire piu' di tanto la discussione...
Quote:
__________________
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 |
|
14-09-2007, 21:26 | #379 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Il mio "mi prendete per le natiche" era amorevole: sapete che io sono inoffendibile per costituzione.
E' possibile che sia passato inosservato, quindi lo ripeto: <E, T extends Document & Comparable<? super String> & Map<? extends Comparable<Number>, ? extends Comparable<E>>> Una cosa come questa sarebbe accettabile se curasse la fame nel mondo, prevenisse la morte o abbassasse le tasse del 40%. Il problema della pera... quella roba che ho scritto là sopra in Java significa qualcosa! Non ci si riesce a credere!
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
14-09-2007, 21:33 | #380 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1816
|
Quote:
La lingua deve essere leggibile per chi la conosce, non per il lettore casuale. Per leggibile, nel caso dei linguaggi di programmazione perlomeno, intendo dire che trasmette chiaramente e in modo non ambiguo il suo significato. La @ del python puo' non piacere ma, per uno che ci programma, puo' voler dire solo una cosa. Essempi di illeggibilita' sono secondo me altri, come ad esempio di implementare operatori che non fanno quello che sembrano (il buon Bjarne ad esempio ha deciso che quelli di bit-shifting andassero bene per scrivere sui canali...) o combinazione malsana di costruttori impliciti in cui pensi di chiamare un certo metodo ma invece ne chiami un altro perche' invece di convertirti il primo argomento lo fa sul secondo...
__________________
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 |
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:34.