|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
esempio : "Non adesso, ma il concetto di lista e dizionario si affrontano dopo aver trattato i tipi numerici, in virgola mobile e le stringhe." uno ha seguito questo percorso, quindi questo è l'unico percorso seguibile ![]() non c'è spazio per una discussione oggettiva, è inutile |
|
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Io sono disponibile a continuare.
__________________
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 |
![]() |
![]() |
![]() |
#23 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
In Java si chiamano array, mentre in Python liste. Eppure per te non è oggettivo il fatto che io affermi che dovrebbero essere trattati prima delle librerie. ![]()
__________________
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 |
|
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
gli array si, le liste no... in java sono due cose leggermente diverse.
stando a quello di cui parlavi tu il dizionario è una struttura non necessariamente primaria... l'array si, sono d'accordo ma già parlando di array si introduce il concetto di reference e di oggetto, e da qui il passo alla libreria è brevissimo |
![]() |
![]() |
![]() |
#25 | ||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Sono tanti i linguaggi che lo mettono a disposizione nativamente, infatti. Quote:
Quote:
Per gli oggetti, beh, in Python sono tutti oggetti...
__________________
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 |
||||
![]() |
![]() |
![]() |
#26 | |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
reference e libreria non c'entrano niente... quello che ho scritto è che una volta che si è appreso cos'è un oggetto si inizia a spulciare la libreria alla ricerca delle strutture dati che ci servono invece che reimplementarle da zero... |
|
![]() |
![]() |
![]() |
#27 | |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
così i primi concetti appresi sono stati: classe e oggetto package import membro statico metodo solo dopo sono venuti i numeri e gli array... per un linguaggio OO non mi pare un percorso assurdo |
|
![]() |
![]() |
![]() |
#28 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Mi tolgo solo la curiosità di chiedere a chi ha definito baggianata il fatto che Java supporti una ed una sola prospettiva (quella orientata agli oggetti) di scrivere un programma strutturato in Java.
E faccio in anticipo la domanda che segue all'esempio che sarà scritto: a quale elemento della programmazione strutturata corrisponderebbe la classe? Volendo si può anche scegliere di scriverne uno funzionale o imperativo. Resta comunque la domanda: a quale elemento della prospettiva funzionale corrisponderebbe mai la classe? A quale elemento della prospettiva procedurale corrisponderebbe mai la classe?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#29 | ||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
E io non amo usare cose delle cose soltanto perché ci sono: le uso in base al problema che devo risolvere. A parte questo, immagino che avrai usato spesso degli switch, catene di if-else, tabelle di costanti, tavole hash, ecc., che rappresentano l'universale concetto di SELEZIONE. Concetto che in Python si traduce molto spesso nell'uso di dizionari, appunto. Quindi come vedi non puoi dire che li hai usati poche volte: semplicemente hai reso l'operazione di selezione in modo diverso. Quote:
Quote:
Codice:
print 'Hello, world!' Quanto a ciò di cui stavamo parlando, resta ancora in piedi il concetto che ho espresso: avere a che fare con sequenze di dati e strumenti di selezione è cosa comunissima nella programmazione, e Python e te li offre in maniera estremamente flessibile. Il tutto senza andare, appunto, a scomodare alcuna libreria (a proposito, sempre per il discorso dell'omogeneità di cui si parlava prima, in Python anche queste sono... oggetti ![]()
__________________
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 Ultima modifica di cdimauro : 03-10-2007 alle 20:57. |
||||
![]() |
![]() |
![]() |
#30 | ||||||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
Quote:
Comunque su questo ti ha risposto in maniera impeccabile marco.r, con cui mi ritrovo pienamente. Quote:
Se c'è una cosa che a cui si tiene particolarmente in Python è proprio quella di offrire (possibilmente) un solo modo per fare la stessa cosa: è proprio nel DNA del linguaggio e il pensiero di fisso di chi l'ha creato e di chi lo sostiene. Guarda qui cosa succede se scrivi "import this" (senza virgolette) e premi invio nell'interprete Python: Codice:
>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! Codice:
General goals A general goal is to reduce feature duplication by removing old ways of doing things. A general principle of the design will be that one obvious way of doing something is enough. Quindi fammi il favore: se di Python sai poco e niente, evita di lanciarti in affermazioni suicide che cozzano violentamente con la FILOSOFIA di base di questo linguaggio. I pythonisti sono talmente fissati che non si fanno nemmeno problemi a rinunciare alla compatibilità col passato pur di avere un linguaggio "omogeneo" e con una solida filosofia, ed è quello che avverrà appunto con Python 3.0. In particolare, http://www.python.org/dev/peps/pep-3...and-transition : "Python 3.0 will break backwards compatibility with Python 2.x." Una cosa che non vedrai con gli altri linguaggi, che pur di mantenere la compatibilità col passato diventano dai pachidermi che inglobano tutto. Quote:
Quote:
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 |
||||||||||
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Faccio una premessa.
trovo che il titolo sia stato poco azzeccato. Sarebbe stato meglio scrivere "confronto tra Java e Python", oppure "imparare a programmare: scelgo Python o Java?" et similia. Così non si capisce come il cuore della discussione sia il confronto tra i due linguaggi (ed anche di là, alla fine 9 pagine su 11 si parlava proprio di questo). Cmq vabbè ormai è stato scelto così, pazienza. Quote:
No perchè se dobbiamo fare un minestrone di "cose da sapere" al primo Hello world che l'utente (che vuole imparare a programmare) si trova a fare, tanto vale farlo bene no? (Anzi studiamoci direttamente tutta la teoria e poi applichiamola...e con un linguaggio X perchè tanto in fin dei conti non conta molto questa scelta ![]() d'altra parte è logico che per te sia un approccio corretto, visto che è normale, sempre secondo te, studiare Fondamenti I come primo corso universitario... Con Java scrivi: Codice:
class HelloWorld { public static void main (String[] args) { System.out.println("Hello World"); } } S = studente P = professore S: prof che cos'è class? P: "è un argomento che tratteremo + avanti non ti preoccupare, intanto ricordati per un motivo di leggibilità e di non confusione che il nome della classe che sceglierai dovrà avere la prima lettera della parola in maiuscolo" S: E public? P: anche quello lo vedremo + avanti, intanto ricordati di copiare, dopo la linea in cui definisci la classe, tutta quella riga S: quindi le parole "public static void main (String[] args)" ci verranno spiegati + avanti nel programma? P: sì nella prossime lezioni vedremo i tipi di dato, poi le strutture di controllo... Questo è quello che succede in un corso "normale" di programmazione 1 in cui si scelga Java come linguaggio. Alla faccia della didattica: uso una decina di parole riservate e per ovvii motivi mi trovo a spiegarne una sola. Con Python invece scrivi: Codice:
print "Hello World" Si impara cosa sia print (che è +ttosto intuitivo da solo no?). Poi dopo ci sarà il tempo per complicarsi la vita e per imparare le altre strutture del linguaggio. Se invece lo scopo è quello di imparare a programmare direttamente con un approccio OO allora prendiamo Smalltalk o Eiffel che sono OO puri.
__________________
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 : 03-10-2007 alle 21:42. |
|
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Anche Python è OO "puro", eh!
![]() Tutti gli elementi con cui interagiamo sono oggetti che si "scambiano dei messaggi". ![]()
__________________
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 |
![]() |
![]() |
![]() |
#33 | |||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
Quote:
![]() Quote:
Quote:
![]() poi non ho mai capito perchè print "hello" e non print("hello") |
|||
![]() |
![]() |
![]() |
#34 |
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
sì io per "puro" intendevo per quanto riguarda sia il paradigma di programmazione usato sia per quanto riguarda le strutture usate
![]() |
![]() |
![]() |
![]() |
#35 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
|
![]() |
![]() |
![]() |
#36 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
Comunque, a dimostrazione che di Python non t'interessi e che ne sai poco e niente, direttamente dal primo link che ho riportato sopra (e che non hai nemmeno letto a questo punto): "Replace print by a function[done]" Contento? Come vedi chi sviluppa il linguaggio è talmente ossessionato dal fatto che debba essere "omogeneo" che non gliene frega nulla di compere la compatibilità col passato andando a cambiare addirittura un'istruzione usatissima come print. E scusa se è poco. Quote:
Codice:
if True: pass
__________________
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 Ultima modifica di cdimauro : 03-10-2007 alle 22:12. |
|||||
![]() |
![]() |
![]() |
#37 | |
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 |
|
![]() |
![]() |
![]() |
#38 | |||
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Altrimenti questo tipo di analisi come lo svolgi quando si tratta di software che utilizza + linguaggi di programmazione? (tanto per citare un caso) Hai dato l'esame di Ingegneria del Software 1 e 2? ![]() Quote:
Guarda uno sviluppatore che non si preoccupa della lunghezza del codice, nè per il numero di bug che (inevitabilmente) si verificano, non l'ho mai sentito. Quote:
Mi sfugge la logica del tuo ragionamento per cui dovrebbero essere in contraddizione. |
|||
![]() |
![]() |
![]() |
#39 | ||||
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7249
|
prima ho portato un esempio in cui scrivere più codice serviva a evitare gli errori.. guardacaso calzava a pennello confrontando python con java. potresti portare un controesempio?
Quote:
![]() ma stavamo parlando di imparare a programmare no? cosa c'entrano i programmi di una certa consistenza? Quote:
Quote:
![]() Quote:
![]() non capisco il tuo secondo esempio :| se prendi java ad esempio le interazioni tra gli oggetti si vedono sempre |
||||
![]() |
![]() |
![]() |
#40 | |||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Comunque mi ritrovo con quello che ha scritto DioBrando poco fa. Quote:
"non ho mai sentito dolore per un bug nel codice. se non si nota a occhio si fa un pò di debug e via." e i dolori dovuti a bug per codice non banale si fanno sentire, eccome. Quote:
Poi come programmatore puoi sfruttare le loro caratteristiche per implementare un algoritmo come vuoi, anche sfruttando una mistura di ciò che a più alto livello sono due paradigmi diversi. Quote:
Da notare che esistono altri linguaggi, come il PL/1, che non riservano parole chiave per nessuna istruzione. Quote:
Guido comunque ha fornito delle valide motivazioni per farla diventare una funzione built-in, esattamente come tante altre che Python mette a disposizione. Quote:
Quote:
Codice:
int i = 1;
__________________
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 |
|||||||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:12.