Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-01-2011, 00:39   #1
Alekinos
Junior Member
 
Iscritto dal: Oct 2010
Messaggi: 15
[Python] A caccia del Pitone

Salve popolo,
prima di incominciare chiedo scusa a tutti per il titolo, forse un po' eccentrico, ma è stato più forte di me

Mi piacerebbe conoscere l'esperienza di chi lavora col Python o, quantomeno, ne conosce le caratteristiche. Gli aspetti a cui maggiormente sono interessato sono:

a) Pregi e difetti in generale

b) Protabilità\compatibilità dei suoi prodotti sui vari OS

c) Come e con cosa è preferibile compilarlo

d) Perché Python piuttosto che un altro linguaggio orientato ad oggetti

Grazie a tutti coloro che parteciperanno alla discussione sperando che possa servire anche ad altri che vogliano avvicinarsi all'argomento

Ultima modifica di Alekinos : 11-01-2011 alle 23:33.
Alekinos è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 07:30   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Alekinos Guarda i messaggi
Salve popolo,
prima di incominciare chiedo scusa a tutti per il titolo, forse un po' eccentrico, ma è stato più forte di me
Occhio a non farsi cacciare dal pitone.
Quote:
Mi piacerebbe conoscere l'esperienza di chi lavora col Python o, quantomeno, ne conosce le caratteristiche. Gli aspetti a cui maggiormente sono interessato sono:

a) Pregi e difetti in generale
In estrema sintesi:
- è sintetico ;
- semplice da imparare e da scrivere;
- facile da leggere (ma scrivere brutto codice in Python è sempre possibile, come per qualunque altro linguaggio; solo che oltre certi limiti non si può andare);
- ti obbliga indentare il codice (niente codice modello "albero di natale / dente si sega";
- la differenza fra codice Python e pseudocodice è irrisoria;
- tutto è un oggetto, ma è possibile "simulare" diversi paradigmi di programmazione oltre a quello a oggetti (quindi anche la classica strutturata/imperativa e funzionale);
- supporti alcuni comodi costrutti della programmazione funzionale (iteratori, generatori, comprehension);
- c'è la metaprogrammazione;
- ci sono i decoratori;
- ha diversi tipi "base" (compresi gli insiemi!) che coprono la stragrande maggioranza delle esigenze comuni;
- ha una buona e abbastanza completa libreria in dotazione;
- è fortemente tipizzato (non puoi sommare stringhe e numeri, ad esempio);
- è modulare (nozione di modulo/unit e di package);
- è interattivo (puoi sperimentare idee scrivendo provando al volo pezzi di codice);
- può utilizzare facilmente librerie dinamiche scritte in qualunque altro linguaggio;
- è pensato per essere esteso (con codice scritto in altri linguaggi) ed "embeddato".

Difetti: nessuno. A parte gli scherzi:
- è più lento di altri linguaggi staticamente tipizzati e compilati, a volte anche di due ordini di grandezza;
- odio l'operatore != per la disuguaglianza (avrei preferito il <>), ma ormai dobbiamo tenercelo;
- i booleani sono derivati dalla classe int, per cui si possono eseguire tutte le classiche operazioni con gli interi;
- l'embedding e l'estensione richiedono più codice e attenzione rispetto ad altri linguaggi (come Lua), a causa della maggior complessità interna.

Se mi viene in mente altro editerò il post.
Quote:
b) Protabilità\compatibilità dei suoi prodotti sui vari OS
Come Java e altri linguaggi, dipende dalla bontà del porting. Comunque sono ben supportate le piattaforme più diffuse, e anche altre meno diffuse.

E' possibile trovare VM Python anche per sistemi più rari (come AROS), anche se non godono della stessa cura e funzionalità.
Quote:
c) Come e con cosa è preferibile compilarlo
Dipende dalla piattaforma. GCC per sistemi Unix-Like, Visual Studio per Windows. Per gli altri, non so.
Quote:
d) Perché Python piuttosto che un altro linguaggio orientato ad oggetti
Perché è il più fico. Vabbé, il linguaggio deve anche piacere: può offrire tante meraviglie, ma se non ne digerisci la sintassi avrai sempre un rapporto di odio. Io lo amo per com'è fatto, ma altri programmatori hanno un giudizio diametralmente opposto.

Comunque dal punto di vista che t'interessa tecnicamente è preferibile per i seguenti motivi:
- ha l'ereditarietà multipla delle classi (quindi "simulare" di tutto; anche l'ereditarietà multipla tramite interfacce);
- ha il duck typing per cui non è strettamente necessario che un oggetto derivi da una classe o implementi una determinata interfaccia per poter dire "lo uso come stringa, file, o altro"; è sufficiente che esponga i metodi che ci si aspetta con gli stessi parametri (esempio: i metodi read e write per scrivere "su file");
- puoi modificare, aggiungere e togliere metodi e attribuiti dinamicamente;
- puoi modificare, aggiungere e togliere classi dinamicamente dall'elenco delle classi da cui eredita la tua;
- puoi creare nuove classi a runtime, e costruirtele come ti pare;
- hai le metaclassi per manipolare in maniera controllata e accurata la creazione di una classe (argomento abbastanza avanzato);
- hai i decoratori di classe (che semplificano molto il punto precedente, oltre che a renderlo più elegante e di più semplice comprensione);
- tutto è pubblico (niente visibilità privata/protetta/pubblica), a parte per alcuni meccanismi di importazione di moduli e accesso alle classi (ma è roba molto avanzata).

Anche qui, se mi viene in mente qualcos'altro, editerò il post.
Quote:
Grazie a tutti coloro che parteciperanno alla discussione sperando che possa servire anche ad altri che vogliano avvicinarsi all'argomento
Concordo.
__________________
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 11-01-2011, 12:06   #3
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12939
I difetti più grandi secondo me sono principalmente le prestazioni e poi la mancanza di un IDE completo (magari senza bug) che integri anche un designer di interfacce.

E' anche vero che con PyQt scrivere l'interfaccia manualmente non è un grosso sforzo, ma alla lunga si sente.

Per il resto è un linguaggio eccezionale IMHO, ho cominciato a lavorarci "seriamente" per la tesi e mi ha impressionato.

Una caratteristica dei linguaggi dinamici e che puoi di fatto lavorare con la meta-programmazione, ad esempio puoi far interpretare codice a run-time e magari creare una funzione (tramite le lambda) al volo .

Ad esempio, sto creando un filtro e le condizioni di filtraggio devono essere impostate/create a run-time, con python è molto facile passare ad una prima funzione una stringa con la condizione, tipo "x > 20" e il programma a run-time crea una funzione che poi potrà essere usata in un ciclo per testare ripetutamente quella condizione senza perdere troppo tempo.

C'è da dire che spiazza un po' chi ha esperienza di linguaggi C++/Java, dove magari si è un po' più attenti alle prestazioni e quindi si è tentati di fare delle pseudo-ottimizzazioni poco inclini alla natura di python (spesso partendo da premesse sbagliate).

Ultima modifica di WarDuck : 11-01-2011 alle 12:10.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 14:14   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
I difetti più grandi secondo me sono principalmente le prestazioni e poi la mancanza di un IDE completo (magari senza bug) che integri anche un designer di interfacce.
Personalmente mi trovo benissimo con NetBeans (6.9.1), e tra l'altro ho apprezzato moltissimo gli ultimi aggiornamenti che mi consentono di vedere le modifiche effettuate tramite SVN.
Quote:
E' anche vero che con PyQt scrivere l'interfaccia manualmente non è un grosso sforzo, ma alla lunga si sente.
Scusami, ma se usi Qt lo sforzo per disegnare la GUI non è lo stesso per tutti i linguaggi? Per il binding, poi, dovrebbe essere più semplice con Python.
Quote:
C'è da dire che spiazza un po' chi ha esperienza di linguaggi C++/Java, dove magari si è un po' più attenti alle prestazioni e quindi si è tentati di fare delle pseudo-ottimizzazioni poco inclini alla natura di python (spesso partendo da premesse sbagliate).
Verissimo, ma penso che, magari in misura diversa, sia lo stesso per tutti linguaggi: ognuno ha le sue caratteristiche peculiari e bisogna entrare nella mentalità giusta per sfruttarlo come si deve.

Certo, con linguaggi come Python lo si sente molto di più proprio perché abbastanza diverso da quelli a cui siamo stati abituati.

Nell'approccio alla risoluzione dei problemi mi rendo conto che ho una visione molto diversa da quella che avevo prima.
__________________
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 11-01-2011, 15:14   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Personalmente mi trovo benissimo con NetBeans (6.9.1), e tra l'altro ho apprezzato moltissimo gli ultimi aggiornamenti che mi consentono di vedere le modifiche effettuate tramite SVN.
A proposito di IDE per Python, le funzionalità di refactoring sono adeguate alle esigenze che ti possono capitare, nella tua esperienza?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 21:28   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Nella mia esperienza sì, per l'uso che ne faccio sono sufficienti, ma oggettivamente le funzionalità esposte sono poche e andrebbero ampliate.

In ogni caso c'è da dire che tirare fuori strumenti di rifattorizzazione che tenga fermamente fede a questo nome è difficile in Python, perché si tratta di un linguaggio dinamico.

Me ne sono accorto nel tempo: più sono passato a utilizzare la sua dinamicità, e più le righe "segnate in rosso" (presunti errori) sono aumentate, pur essendo i sorgenti sicuramente corretti.

E' il prezzo da pagare per ottenere una produttività elevata. D'altra parte NetBeans ha pure un buon supporto per lo unit testing in Python, per cui il lapis della maestra non mi preoccupa più di tanto.
__________________
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 11-01-2011, 23:28   #7
Alekinos
Junior Member
 
Iscritto dal: Oct 2010
Messaggi: 15
Bene,
sono contento di aver avviato una discussione utile e, spero, interessante. Grazie a tutti voi, con particolare riguardo a Mauro, e permettetemi di dedicarvi Five to One dei mitici Doors che sto ascoltando mentre vi scrivo
Aggiungo, a titolo informativo, una notizia ricevuta poco fa che risulterà utile agli utenti MacOS:

I possessori di un melacomputer interessati al Python, oltre che provare i vari editor disponibili in rete, possono compilarlo tranquillamente dal terminale (ovviamente tramite interfaccia a riga di comando) digitando il comando python. Questo discorso vale per le versioni di Leopard dalla 10.2 in poi.
Alekinos è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2011, 07:15   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ehm, mi chiamo Cesare, non Mauro.
__________________
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 12-01-2011, 13:59   #9
ashram
Senior Member
 
Iscritto dal: Oct 2001
Città: Parma
Messaggi: 817
Su snow leopard c'è python 2.6 non il 3.0...e ovviamente puoi fare tutto da terminale

Un piccolo consiglio da nabbo quale sono : dai una occhiata anche a ruby,sempre incluso in macosx...ha sintassi molto più simile alla lingua naturale,manca di indentazione obbligatoria ed soprattutto è usato in ruby on rails per la programmazione (veramente easy e model-view-controller) per il web

Ci ho fatto un piccolo portale per il lavoro e dopo 2 giorni era finito...ero scandalizzato da quanto è stato facile.

Poi ho provato a fare la stessa cosa con django (che usa python) e mi è venuto male (a parte l'admin automatica che è incredibile)

Ma penso che la cosa si possa applicare a tutti i framework al di là di rails ahaha
ashram è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2011, 15:40   #10
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12939
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Personalmente mi trovo benissimo con NetBeans (6.9.1), e tra l'altro ho apprezzato moltissimo gli ultimi aggiornamenti che mi consentono di vedere le modifiche effettuate tramite SVN.
Si però ad esempio sotto Linux NetBeans fa un po' le bizze, il debugger anche fa un po' i capricci (oltre ripeto ad non avere un GUI editor integrato pensato per Python).

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Scusami, ma se usi Qt lo sforzo per disegnare la GUI non è lo stesso per tutti i linguaggi? Per il binding, poi, dovrebbe essere più semplice con Python.
Quello che intendo dire è che si sente la mancanza di un IDE pensato appositamente per disegnare le GUI e programmare in Python, come ad esempio può essere Visual Studio per C# e NetBeans per Java (tramite Matisse).

Questo anche perché C# e Java hanno delle librerie grafiche ben più utilizzabili di quelle fornite di default da Python, che ti costringe a rivolgerti a librerie di terze parti come le Qt (seppur ottime IMHO).
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2011, 18:14   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ho capito, e concordo. Non ho usato NetBeans su Linux, per cui non ti so dire.

Riguardo al debugger, ho usato quello di Eclipse +PyDev, ma soltanto un paio di volte ed era ottimo. Per il resto preferisco nettamente lo unit testing e qualche print dove serve.
__________________
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 12-01-2011, 18:31   #12
dojolab
Senior Member
 
L'Avatar di dojolab
 
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Si però ad esempio sotto Linux NetBeans fa un po' le bizze, il debugger anche fa un po' i capricci (oltre ripeto ad non avere un GUI editor integrato pensato per Python)
Mai avuto problemi io sotto GNU/Linux anche perché essendo in Java e la JVM la medesima di Sun...ops, Oracle il prodotto è il medesimo .

Per il resto quoto Cesare.
__________________
Il mercatino di dojolab: VENDO UN PO' DI COSE! VAI
Vendo Libro Oracle 10g GUIDA COMPLETA della Oracle Press, ITALIANO: LINK
dojolab è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2011, 19:25   #13
Alekinos
Junior Member
 
Iscritto dal: Oct 2010
Messaggi: 15
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ehm, mi chiamo Cesare, non Mauro.
infatti non ce l'avevo con te sherzo

Quote:
Su snow leopard c'è python 2.6 non il 3.0...e ovviamente puoi fare tutto da terminale

Un piccolo consiglio da nabbo quale sono : dai una occhiata anche a ruby,sempre incluso in macosx...ha sintassi molto più simile alla lingua naturale,manca di indentazione obbligatoria ed soprattutto è usato in ruby on rails per la programmazione (veramente easy e model-view-controller) per il web
Sulla distro xcode di leopard Python è supportato in parte, per eseguirlo bisogna comunque ricorrere al terminale.
Si, mi sono imbattuto nel ruby parecchie volte, pare interessante. Magari, se ti va possiamo approfondire il discorso in un altro thread senza rischiare di andare ot.

Quote:
Quello che intendo dire è che si sente la mancanza di un IDE pensato appositamente per disegnare le GUI e programmare in Python
Quindi, tirando le somme, è un linguaggio veloce grazie alla semplicità della sua sintassi ma poco supportato?
Alekinos è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2011, 20:51   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
No, supporto ne trovi abbastanza, e in continuo miglioramento (grazie alla diffusione sempre più elevata, e un'ottima comunità che ci sta dietro).

Semplicemente a livello di interfaccia grafica non c'è un supporto "standard" (o di serie che dir si voglia), come invece avviene con altri linguaggi (i già citati C# e Java).

Per cui si deve ricorrere integrando strumenti di terzi parti. Ma l'importante è che ci siano, in fin dei conti.
__________________
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


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
La Cina lancia un servizio simile a Dire...
SpaceX: Elon Musk torna a parlare dei pr...
G.Skill risarcisce 2,4 milioni di dollar...
Test degli annunci su ChatGPT avviati: '...
TSMC approva investimenti record da quas...
L'IA agentica arriva anche sullo storage...
Euro digitale, il Parlamento UE cambia r...
Alphabet e la sua obbligazione centenari...
L'UE anticipa un intervento per bloccare...
Il Trump Phone esiste ma è molto ...
Frodi deepfake fuori controllo: perch&ea...
Consumano il 30% in meno: arrivano i nuo...
Tesla Semi svela i numeri definitivi: 80...
La Air Force statunitense vieta occhiali...
Wi-Fi Intel e Windows: le novità ...
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: 05:23.


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