Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-11-2007, 19:47   #1
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
[PYTHON] why not?

Il titolo del thread è già tutto un programma.
Sarebbe interessante conoscere ciò che di "negativo" gli altri programmatori pensano di questo linguaggio.

Le critiche, se costruttive, sono ben accette (quindi niente roba come "fa schifo", "non mi piace", "è brutto", ecc.), perché questo consente di apportare miglioramenti (la comunità che ruota attorno a Python è molto sensibile ai suggerimenti e tiene molto a cuore l'evoluzione del linguaggio e della libreria standard), di comprendere eventuali comportamenti scorretti nell'uso e/o eventuali "falle" strutturali del linguaggio, e in ogni caso di farsi un'idea di come gli altri programmatori preferisco lavorare e come vorrebbero che fossero gli strumenti che usano per sviluppare codice.

Questo thread vorrei, quindi, che divenisse un cantiere di lavoro in cui all'indicazione di una critica da parte di uno o più utenti seguisse un approfondimento (per chi se la sente, ovviamente) per cercare di sviscerare il problema, facendo saltare fuori magari qualche soluzione.

Spero raccolga il favore dei frequentatori del forum e diventi un punto di riferimento per questo linguaggio.
__________________
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-11-2007, 20:55   #2
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
Io sinceramente il thread non lo chiamerei "why not ?"...anche perché "why not" presuppone risposte come "è illeggibile", che non è una critica costruttiva, visto che chiaramente rimarrà una caratteristica invariabile del linguaggio.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 07:19   #3
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Il linguaggio, invece, è nato per essere leggibile: non a caso è stato definito "pseudocodice eseguibile".

Sulla leggibilità, quindi, abbiamo di che discutere.

Se è una questione di gusti e/o abitudini, invece, è chiaro che c'è ben poco da parlare: ognuno ha i suoi e si tratta di scelte prettamente individuali.

A me, ad esempio, non piacciono assolutamente i linguaggi con sintassi C-like.
__________________
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-11-2007, 08:50   #4
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
Io mi ricordo del codice che ha postato te qualche tempo fa...
Capisco che le generator expression siano state inserite per cercare di rendere il linguaggio più vicino al modo di scrivere umano e fino ad un'espressione molto semplice ci riescono anche bene. Il problema è quando l'espressione è complicata.
Ti spiego secondo me qual è il problema: nel linguaggio parlato ci sono le pause e la tonalità della voce, in quello scritto c'è la punteggiatura.

Purtroppo in situazioni come queste non ci si capisce proprio niente:

g = (tgtexp for var1 in exp1 if exp2 for var2 in exp3 if exp4)

e ne ho presa una semplice
E' un po' la stessa cosa che avviene per le espressioni matematiche, solo che la precedenza fra gli operatori matematici ci è stata insegnata fino dalle elementari
Ad esempio un'altra cosa che non si capisce è cosa ci finisce in g...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 10:42   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da cionci Guarda i messaggi
Io mi ricordo del codice che ha postato te qualche tempo fa...
Immaginavo. Però avevo anche fatto un mea culpa dicendo che il codice che avevo postato non era da prendere a campione e generalizzare annacquando il concetto di leggibilità del codice Python.
Quote:
Capisco che le generator expression siano state inserite per cercare di rendere il linguaggio più vicino al modo di scrivere umano e fino ad un'espressione molto semplice ci riescono anche bene. Il problema è quando l'espressione è complicata.
Ti spiego secondo me qual è il problema: nel linguaggio parlato ci sono le pause e la tonalità della voce, in quello scritto c'è la punteggiatura.

Purtroppo in situazioni come queste non ci si capisce proprio niente:

g = (tgtexp for var1 in exp1 if exp2 for var2 in exp3 if exp4)

e ne ho presa una semplice
Infatti, ma anche i nomi delle variabili non aiutano molto...

Alla fine è pur sempre compito del programmatore utilizzare le strutture che un linguaggio mette a disposizione scrivendo un codice più leggibile.
Se quella generator expression la trovi troppo complicata, è compito tuo "spezzarla" in modo da renderla più leggibile e/o usare dei nomi per gli identificatori che la rendano di più semplice comprensione.

Ad esempio, se prendiamo quella che ho utilizzato in questo http://www.hwupgrade.it/forum/showpo...70&postcount=2 messaggio:
Codice:
Lista = ['gasfsgafsagfsga', '', '', '', '  gahsfsga', 'ahsg']
with open('Pippo.txt', 'w') as f:
  f.writelines(Stringa + '\n' for Stringa in Lista)
Direi che è abbastanza semplice comprendere il funzionamento della generator expression.
Quote:
E' un po' la stessa cosa che avviene per le espressioni matematiche, solo che la precedenza fra gli operatori matematici ci è stata insegnata fino dalle elementari
Ad esempio un'altra cosa che non si capisce è cosa ci finisce in g...
In g ci finisce un... generatore, appunto.

Il concetto è che hai un insieme di valori da elaborare, ma li tiri fuori man mano che ti servono, quindi ottimizzando le risorse (non si spreca memoria generandoli tutti in una volta). In altri linguaggi si chiamano iteratori.

Invece se avessi scritto questo:

g = [tgtexp for var1 in exp1 if exp2 for var2 in exp3 if exp4]

g sarebbe diventata una lista contenente TUTTI i valori che soddisfano le condizioni che hai posto.

La cosa interessante in entrambi i casi è che chi ha un'infarinatura di matematica si "ritrova a casa", visto che la sintassi richiama la definizione di un insieme i cui elementi soddisfano certe condizioni.

Comunque sia le list comprehension che le generator expression sono argomenti più avanzati, che si apprendono dopo aver acquisito i concetti più elementari del linguaggio.

Procedendo gradualmente noteresti che Python come linguaggio rimane piuttosto semplice e leggibile.

Se vuoi possiamo anche scrivere degli esempi di algoritmi e vedere come vengono resi con linguaggi diversi: si capirebbe al volo perché Python è stato definito "pseudocodice eseguibile".
__________________
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-11-2007, 10:50   #6
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Se è una questione di gusti e/o abitudini, invece, è chiaro che c'è ben poco da parlare: ognuno ha i suoi e si tratta di scelte prettamente individuali.
Per me e' una questione puramente di gusti, perche' non ho nulla di personale contro Python
Al lavoro c'e' tutto un sistema di decine e decine di migliaia di righe di codice in Python per fare il build degli asset e cerco di evitarlo come la peste. Ci avro' scritto dentro un centinaio di righe di codice a dire tanto.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 11:11   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
D'accordo, ma mi piacerebbe capire se ci sono delle particolari caratteristiche del linguaggio sono ritenute errate per motivi che prescindono dai gusti.

Ad esempio so che a te non piace l'indentazione forzata a cui sei obbligato con Python, ma per quel poco che ti conosco sono convinto che non si tratti di una semplice questione di gusti, ma magari c'è qualche solida motivazione alla base del tuo rigetto.
Poi se è veramente una questione "epidermica", vorrà dire che avrò preso un'altra delle mie cantonate.

Per fare un altro esempio, Bruce Eckel vorrebbe veder sparire il parametro self "obbligatorio" nella definizione dei metodi (e, se non ricordo male, anche per l'accesso agli attribuiti e/o agli altri metodi) di una classe.
Qui l'argomento porterebbe a non poche discussioni.

A me, ad esempio, piacerebbe una soluzione "ibrida / intermedia": self non dovrebbe essere presente nella definizione / signature del metodo, ma nel corpo se si volesse accedere a un attributo e/o altro metodo si dovrebbe forzamente utilizzare il self, che a questo punto diventerebbe una sorta di variabile "nascosta" (ma disponibile) all'interno della funzione (perché i metodi, in Python, sono pur sempre delle funzioni, anche se "particolari").

Il motivo per cui finora si è rimasti saldamente all'implementazione attuale (self SEMPRE specificato) è che la filosofia di Python è "explicit is better than implicit", quindi alla volontà di far trasparire sempre tutto ciò con cui si lavora.

La condivido in buona parte, ma mantengo sempre le mie idee, che ritengo comunque valide.
__________________
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-11-2007, 11:49   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ad esempio so che a te non piace l'indentazione forzata a cui sei obbligato con Python, ma per quel poco che ti conosco sono convinto che non si tratti di una semplice questione di gusti, ma magari c'è qualche solida motivazione alla base del tuo rigetto.
L'indentazione forzata gia' da sola mi basta per farmelo evitare...

Quote:
Per fare un altro esempio, Bruce Eckel vorrebbe veder sparire il parametro self "obbligatorio" nella definizione dei metodi (e, se non ricordo male, anche per l'accesso agli attribuiti e/o agli altri metodi) di una classe.
Qui l'argomento porterebbe a non poche discussioni.
... e il self sempre specificato ci mette una pietra tombale sopra. Python sembra fatto apposta perche' a me non piaccia.

Poi, se lo devo usare lo uso e buona notte.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 12:13   #9
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 fek Guarda i messaggi
Python sembra fatto apposta perche' a me non piaccia.

Poi, se lo devo usare lo uso e buona notte.
Idem
Cioè...per me non ha niente di attrattivo. Ad esempio è da una vita che critico il C++ perché non impone una struttura ad oggetti al programma e permette di mischiare programmazione procedurale ed a oggetti...Python fa lo stesso.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2007, 13:36   #10
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da fek Guarda i messaggi
L'indentazione forzata gia' da sola mi basta per farmelo evitare...



... e il self sempre specificato ci mette una pietra tombale sopra. Python sembra fatto apposta perche' a me non piaccia.

Poi, se lo devo usare lo uso e buona notte.
OK, quindi è un problema di empatia: "a pelle" non ti piace.

Immagino, allora, che nemmeno la soluzione ibrida che mi piacerebbe non ti ispiri.
__________________
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-11-2007, 13:36   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da cionci Guarda i messaggi
Idem
Cioè...per me non ha niente di attrattivo. Ad esempio è da una vita che critico il C++ perché non impone una struttura ad oggetti al programma e permette di mischiare programmazione procedurale ed a oggetti...Python fa lo stesso.
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
L'IA ha fatto incetta anche di processor...
Affidabilità delle GPU NVIDIA cro...
Maxi incendio in un parcheggio BYD: fiam...
Apple potrebbe diventare il terzo produt...
L'IA aiuta i computer quantistici con i ...
Nutanix Database Platform è ora i...
iliad lancia il 5G Standalone in Italia:...
Alexa+ da oggi disponibile anche in Ital...
SpaceX Starship: Ship 39 ha eseguito il ...
Auto usate: Peugeot 3008 tra le peggiori...
YMTC, il produttore di memorie 100% cine...
I gamer rinunciano alla RAM ma non agli ...
Oltre 100 estensioni Chrome malevole rub...
Multi Frame Generation 5x e 6x anche su ...
Kraken sotto ricatto dopo due accessi in...
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: 00:47.


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