|
|
|
![]() |
|
Strumenti |
![]() |
#201 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Sia che scrivo: Codice:
a = 1 Codice:
class Tk(Misc, Wm): Sì, entrambi sono oggetti, ma sono istanze di classi diverse e hanno caratteristiche diverse. In particolare Tk rappresenta la definizione di una classe, ed è un oggetto che in Python è definito come "callable", cioé richiamabile (come fosse una funzione; anch'essa oggetto "callable") e che come risultato della chiamata restituisce un'istanza della classe che definisce. Come vedi Python è un linguaggio a oggetti "puro", e in ciò è assolutamente coerente. La stessa cosa, però, non si può dire di Java, dove gli oggetti esistono soltanto nella misura in cui sei proprio tu a crearli, tramite la chiamata a un costruttore pubblico (con l'operatore new) oppure "occulto" (stringhe, array). Le classi, quindi, non sono l'unità fondamentale della programmazione in Java: lo sarebbero se al posto di definire una variabile di tipo int ci fosse Integer, tanto per fare un esempio, e quindi lavorasse sempre con oggetti, ossia istanze di particolari classi. Ciò non è, e quindi Java lo possiamo definire come un ibrido, un linguaggio che è un misto fra dati / codice strutturati e oggetti, e che offre due paradigmi di programmazione: a oggetti e strutturato. Python lo possiamo definire un linguaggio puramente a oggetti, e che offre però diversi paradigmi di programmazione: a oggetti, strutturato, funzionale, ad aspetti e anche metaprogrammazione. Questo lo possiamo considerare un "effetto collaterale" dovuto alle intrinseche caratteristiche che offrono gli oggetti che questo linguaggio mette a disposizione. Non so se sono stato chiaro. ![]() Quote:
Poi anche Python dà questa possibilità e lo fa pure in maniera molto semplice. Ma al momento, per quanto detto, non è nemmeno in discussione.
__________________
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 |
||
![]() |
![]() |
![]() |
#202 | ||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Quote:
Con Python, invece, deve scrivere soltanto il codice che serve a risolvere il problema. E scusa se è poco (anche come dimensioni ![]() Quote:
![]() Quote:
![]() Quote:
Quote:
![]() ![]() La prossima volta cosa gli consiglierai? Dai un'occhiata alla finestra della CPU, col valore dei registri, e i dump dei segmenti di codice, dati e stack? ![]() Un traceback è nettamente più a portata di mano di un debugger, specialmente per chi comicia a programmare. Poi ai debugger preferisco di gran lunga una batteria di test. ![]() Qui però ci stiamo infognando su discorsi che vanno ben oltre lo scopo del thread.
__________________
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 |
||||||
![]() |
![]() |
![]() |
#203 | |||||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7244
|
Quote:
quindi semplicemente la pensiamo in maniera diversa.. sarà dura convincerti della mia idea, ma non credere che le tue argomentazioni hanno un effetto diverso su di me ![]() Quote:
![]() Quote:
nel caso non si fosse capito sostenevo che è indifferente Quote:
Quote:
la batteria di test non sostituisce in nessun modo il debugger la batteria di test la deve scrivere uno che se la cava abbastanza, altrimenti fa più danni di quelli che risolve (quindi dubito che sia il nostro caso) Ultima modifica di k0nt3 : 02-10-2007 alle 22:05. |
|||||
![]() |
![]() |
![]() |
#204 | |||||
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Quote:
+ è il codice e + aumentano gli errori, inoltre se il codice risulta sintetico e ridotto allo stretto necessario, è possibile concentrarsi maggiormente sulla risoluzione del problema e sull'algoritmo da implementare. Questi sn ragionamenti che si applicano per la programmazione in generale, non certo per la programmazione in un dato linguaggio. Quote:
Quote:
In primis vi sono studi scientifici così come vi sono analisi che determinano la scelta di un linguaggio +ttosto che un altro nella realizzazione di qualsiasi progetto e qualsiasi software "serio". In secundis se io dico che la sintassi del Perl è + complessa di quella di Java, credo di non dire una bestialità per nessuno. E allora cos'è questo "gusto" piace a tutti mentre se si tratta di Python no? Dai su, fai la persona seria ![]() Quote:
Siete riusciti a dire che Java utilizza un solo paradigma di programmazione (OO), siete riusciti a dire che Python non dispone di strumenti di sviluppo qualitativamente pari a quelli Java, ora le eccezioni e poi me ne dimentico altre per strada. Chissà quale sarà la prossima panzana che vi inventerete pur di dare sostanza alle vostre argomentazioni ![]() |
|||||
![]() |
![]() |
![]() |
#205 | |||||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Quote:
![]() Quote:
Una classe io la uso soltanto per modellare il comportamento di un oggetto. Quote:
Quote:
![]() Quote:
Quote:
![]() Quote:
Poi non sempre è possibile utilizzare un debugger. 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 |
|||||||||
![]() |
![]() |
![]() |
#206 | ||||||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7244
|
Quote:
Quote:
![]() non è vero che meno codice = meno errori Codice:
a = 1 b = "pippo" c = a/b Codice:
int a int b int c a = 1 b = "pippo" c = a/b nonostante sia più codice è evidente che nel secondo caso il linguaggio mi viene in aiuto per evitare degli errori Quote:
![]() Quote:
è tutto serio quello che ho detto ![]() Quote:
e comunque non so perchè tutti hanno letto: "le eccezioni sono inutili" ho detto questo per caso? Quote:
e python dispone di strumenti di sviluppo totalmente differenti da quelli di java, quindi un confronto è abbastanza inutile |
||||||
![]() |
![]() |
![]() |
#207 | ||||||
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Per esempio è un fatto che l'indentazione forzata di Python costringa il programmatore a scrivere codice in un dato modo, ordinato, evitando che vi siano spaziature diverse per una medesima struttura e all'interno di un unico file di codice sorgente. Con Java da questo punto di vista si ha + libertà. A parte scrivere "voi avete torto", non mi sembra di aver scorto molta sostanza, men che meno da parte tua. Ma puoi sempre rimediare, argomentando con eloquenza i tuoi punti Quote:
Io parlo di esempi che siano raffrontabili. E in ogni caso, sfuggi al discorso già menzionato, il numero di linee di codice sorgente è una discriminante per poi poter valutare la qualità del codice stesso che è dato ANCHE dal numero di errori ivi presenti. Se tu o chi altro, vuole continuare a sostenere che non sia un parametro importante ai fini della correttezza, della manutenibilità e della leggibilità del codice allora siete liberi di farlo. E conseguentemente di riscrivere buona parte della teoria di Ingegneria del Software degli ultimi 30 anni (per carità le teorie nuove sono sempre bene accette...a volte si tratta di vere e proprie rivoluzioni ![]() Quote:
Quote:
Tu hai risposto che ci sono le eccezioni. Mbè? Ci sono anche in Java come in altri linguaggi, quindi non capisco il motivo per cui tu abbia dato una risposta del genere. Lui ha dato una motivazione per cui sia preferibile cominciare con Python, tu hai risposto dando un'annotazione che non mette in luce Java, bensì qualsiasi linguaggio che sappia gestire delle eccezioni. Non sò quali siano i tuoi interlocutori abituali, ma rigirare la minestra qui credo funzioni molto poco ![]() Quote:
E infatti nei corsi di programmazione in Java, quando si studiano i mattoni fondamentali si parte proprio dalla programmazione strutturata...evidentemente in Java e non in un altro linguaggio (cosa che poi sarebbe necessaria se si seguisse il tuo consiglio di cominciare dal Basic, quando poi ci si trova ad affrontare l'OOP...), dato che uno switching dopo nemmeno un trimestre di corso sarebbe un suicidio didattico-educativo. Quote:
![]() Sono così diversi per cui, esistono versioni di Eclipse sviluppate ad hoc per sviluppare sia in Java che in Python, oppure si può utilizzare i plugin per sfruttare il medesimo ambiente (PyDev il + famoso). Questo vale per Eclipse, vale per Visual Studio, vale per jEdit, IntelliJIDEA, JDeveloper ecc...praticamente tutti gli IDE migliori e + famosi in circolazione che usano, com'è logico che sia, una struttura a plugin. Sempre + Zelig Circus ![]()
__________________
Vendo accessori, console e giochi (PS2, PSX, Dreamcast, Nintendo, PC Engine, Neo Geo) Vendo BlackBerry Bold 9700 e auricolare Nokia stereo Bluetooth BH-903 Appunti Digitali: La Valigia del Videogamer Ultima modifica di DioBrando : 02-10-2007 alle 23:40. |
||||||
![]() |
![]() |
![]() |
#208 | ||||||
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
Quote:
poi butti li' un "occulto" quasi in senso spregiativo... ma non eri tu che, a proposito delle forme implicite, dicevi che queste sono ben documentate nelle specifiche del linguaggio? Quote:
![]() ![]() Quote:
Quote:
![]() ![]() Quote:
l'ho gia' detto e lo ripeto, con la speranza di sbagliarmi: tutto cio' sa molto di "101 modi per giustificare l'uno di python a ogni costo". |
||||||
![]() |
![]() |
![]() |
#209 | |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
parlando di manutenibilita'... vogliamo parlare di quanto possa essere difficile, per chi prende in mano un codice non suo, districarsi tra oggetti di tipo ignoto (cosa che rende il codice NON auto esplicativo)? |
|
![]() |
![]() |
![]() |
#210 |
Senior Member
Iscritto dal: Oct 2001
Città: Firenze
Messaggi: 585
|
Ma di ruby cosa mi dite?
http://www.ruby-lang.org/en/document...y-from-python/ http://www.ruby-lang.org/en/document...uby-from-java/
__________________
http://www.gnu.org/philosophy/no-wor...hments.it.html http://gprime.net/flash/postingandyou.php [1510 kB] |
![]() |
![]() |
![]() |
#211 | ||||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Questo lo fa anche Java, perché è oggettivamente utile avere delle "scorciatoie" in alcuni casi, che semplificano di molto la scrittura del codice. Quote:
![]() Quote:
Io non ho alcuna difficoltà ad accetterle: è PGI-Bis che oppone una forte resistenza, e la forma "dispregiativa" che ho usato era proprio per calcare la mano. ![]() Per quanto riguarda queste "forme implicite", non sono tali perché si tratta di oggetti aventi PRECISE caratteristiche, che tra l'altro sono anche ben documentate. Esempio: se definisco un oggetto funzione, so ESATTAMENTE cosa potrò fare. Non c'è niente di "occulto", "implicito", "poco documentato". Quote:
![]() A me hanno insegnato intanto a RISOLVERE i problemi. POI, SE E SOLO SE le prestazioni sono un problema, si pensa a soluzioni ALGORITMICHE, e come ultima possibilità c'è quella di riscriverne parti con linguaggi più a basso livello. Tra l'altro col termine efficienza abbracciamo sia le prestazioni che lo spazio di memoria occupato, e in quest'ultimo caso Python, dai test effettuati (di cui ho riportato anche un link), mediamente risulta gestire meglio la memoria. Quote:
Quote:
Ai miei tempi queste cose si chiamavano unit, moduli, ecc. In Java tra l'altro vengono chiamati "package". Per me è privo di senso usare una classe per scopi diversi da questo: http://it.wikipedia.org/wiki/Classe_(informatica) Sui tipi primitivi, vedi sopra Tra l'altro è bene notare che in Java avere le classi e usarle sono due cose diverse. Quote:
Quote:
PGI-Bis ha parlato di programmazione concorrente, e io ho sottolineato due cose: - che per l'argomento del topic è inutile citarla; - che non è un'esclusiva di Java visto che altri linguaggi la mettono a disposizione. Mi spieghi cosa c'è che non va in quello che ho scritto, e come si concilia il tuo quote con tutto ciò? ![]()
__________________
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 |
||||||||
![]() |
![]() |
![]() |
#212 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
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 |
|
![]() |
![]() |
![]() |
#213 | |||||||||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7244
|
per prima cosa modera i toni che non stai parlando con tua sorella, zelig circus tientelo per te
Quote:
Quote:
Codice:
while(a<b) dosomething() if(b>c) a = a +1 ... else c = c - 2 ... try dosomethingelse() except Error print "error" altra cosa che balza subito all'occhio è la mancanza di omogeneità nel linguaggio. perchè print "error" e non print("error") per esempio? Quote:
la sensazione che ho è che ultimamente il consiglio a chi vuole imparare è "non sporcarti le mani", ovvero "è meglio che stai in una cupolina di vetro perchè sennò rischi di farti male" ecc.. ragazzi se uno vuole diventare programmatore le mani se le deve sporcare e deve pure capire tutto quello che succede nel suo codice. hanno insegnato e da qualche parte continuano a insegnare C come primo linguaggio di programmazione eppure non è mai morto nessuno. anzi se il risultato di un segmentation fault è il panico consiglio di cambiare hobby (parlo di programmazione al livello iniziale, non programmi di decine di migliaia di righe codice.. lì il panico ci sta ![]() Quote:
![]() Quote:
![]() il fatto che perl sia "oggettivamente" poco leggibile non significa che python sia "oggettivamente" leggibile. tu continui a dire di dimostrare cose, ma io non vedo niente Quote:
Quote:
ho dato una risposta del genere perchè il mio obiettivo non era confrontare python con java, ma stavo facendo considerazioni più generali. e in queste considerazioni generali ho affermato che il fatto che python gestisce le eccezioni non è un motivo per preferirlo come linguaggio per imparare a programmare. non perchè le eccezioni sono inutili, ma perchè sono superflue ai fini dell'apprendimento (della programmazione in generale). c'è sempre tempo per imparare a usarle Quote:
![]() un dato di fatto è che in java non si può fare a meno di un qualche oggetto e quindi la definizione di programmazione strutturata in questo caso è un pò tirata. diciamo che si può emulare la programmazione strutturata usando solo metodi statici, ma è diverso da dire che java supporta la programmazione strutturata in effetti ho preso solo 27 all'esame Quote:
![]() per prima cosa non mi puoi paragonare il plugin per python di eclipse con quello di java ![]() seconda cosa io parlavo del framework, non dell'IDE... hai un pò di confusione in testa |
|||||||||
![]() |
![]() |
![]() |
#214 | |||
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
Quote:
Quote:
![]() se ho una classe che esegue solo istruzioni sto definendo un tipo di oggetto che espone un determinato comportamento... non mi interessa cosa faccia internamente, so che è un'entità con caratteristiche definite, cioè un oggetto... non mi pare scandaloso e anzi, del tutto in linea con il link che hai postato. è molto semplice: molti tuoi post mi sembrano orientati a voler giustificare python sempre e comunque e ad ogni costo. |
|||
![]() |
![]() |
![]() |
#215 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7244
|
@DioBrando
quasi dimenticavo... non mi confondere basic con pascal ![]() |
![]() |
![]() |
![]() |
#216 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 1278
|
Primo anno di "Informatica e Tecnologie produzione software " (Bari)
Esame di Programmazione : Linguaggio usato ---> Java ![]() argomenti del corso in pillole ---> programmazione strutturata (come si è arrivati e il perchè [GOTO] ecc ecc) ---> Cos'è l' OOP e infarinatura di Java ---> Algoritmi fondamentali (metodi di ordinamento e di ricerca principalmente) ---> Case of study (programmazione in piccolo per la risoluzione di un problema )
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle! Ultima modifica di mindwings : 03-10-2007 alle 09:14. |
![]() |
![]() |
![]() |
#217 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Questo sopra mi sembra un ottimo corso universitario per principianti...bello. Giudizio dopo averlo seguito ?
|
![]() |
![]() |
![]() |
#218 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 1278
|
Quote:
![]() ![]()
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle! |
|
![]() |
![]() |
![]() |
#219 | |
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
|
|
![]() |
![]() |
![]() |
#220 | |
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Il concetto è il medesimo, dato che nessuno dei due nasce con il paradigma OO, quindi i discorsi si applicano nella medesima sostanza e quindi lo switch dovresti farlo cmq. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:13.