PDA

View Full Version : [Python] Qualche suggerimento


Shirov
12-07-2008, 14:57
Finalmente anche quei testoni dei nostri partner (russi) hanno capito che non esistono solo il C e ASP (classico) e si sono decisi ad abbracciare altri strumenti di lavoro per il futuro Problema: lo sviluppo che dovrà essere svolto è piuttosto di ampio respiro e abbraccierà più SO (Win, Linux e anche MAC) nonchè il Web. Da qui a dicembre dovremo fare alcune valutazioni. Premetto che qui non amano molto soluzioni in qualche modo "proprietarie" per cui escludo subito .NET, ovviamente anche per questioni di portabilità, ma anche Java che, pur non essendo del tutto fuori gioco, in qualche modo è molto osteggiato, non chiedetemi perchè, anche se ritengo che gratta gratta certe antipatie storiche alla fine fanno capolino. Gli strumenti su cui ci si sta orientando principalmente sono Ruby, che sarà valutato da altri, e Python che ho proposto come alternativa (diciamocelo: per consentire al mio gruppo di non restare fuori dal giro). In attesa di organizzare le risorse chiedo qualche lume qua e là (quindi anche qui) visto che non conosco gran che gli strumenti utilizzabili in congiunzione con Python. Si tratterebbe di:
1) sviluppare applicazioni (di tipo gestionale e di gestione db con grosse moli di dati) che possano girare su Win e Linux, in qualche caso anche Mac con interfaccia grafica. la domanda su questo punto è: cosa usare per favorire il riutilizzo del codice a livello di presentazione, di interfaccia? Cioè esistono delle librerie di facile (più o meno)utilizzo con Python che facilitino lo sviluppo di GUI con un buon grado di riutilizzo del codice sui OS citati?
2) è possibile usare Python per interfacciarsi con OpenOffice (tutto si può fare, il senso della domanda è se sapete di qualche esperienza in proposito)?
3) sviluppo lato WEB: che ne pensate di Django? tenete presente che le applicazioni da creare si dovranno interfacciare con db Mysql e in qualche caso MSSQL e dovranno avere un alto grado di dinamicità
4) tenendo presente che le prestazioni non sono un problema primario (e comunque vale anche per il gruppo Ruby) cosa usare per costruire semplici applicazioni di gestione grafici (Web e non)?
5) tools / editor / IDE di buon livello x Python?

Spero di essere stato chiaro, grazie per ogni consiglio / suggerimento

marko.fatto
12-07-2008, 15:15
per la GUI prova a vedere wxpython.. per il resto mi dispiace ma non so.. se vuoi al massimo posso dirti per ruby :asd:

atragon
12-07-2008, 15:49
Stavo per suggerirti anche io Wx. Per il resto mi sa che devi aspettare CDMauro.

teox13
12-07-2008, 17:22
Io come editor uso Vim!:D

atragon
12-07-2008, 17:41
Io come editor uso Vim!:D

Facile facile...

khelidan1980
12-07-2008, 17:55
ti rispondo per quanto riguarda openoffice,si è possibile attraverso pyuno,il binding python per utilizzare udk,la piattaforma di sviluppo di openoffice,ti avverto che pyuno è molto poco documentato e tutto il manuale su Uno si basa sul binding java con qualche esempio per il C++

In sostanza sì è possibile,con un po di sbattimento,sarebbe molto meglio java in questo caso

per gli editor c'è: http://pythonide.blogspot.com/ oppure anche pydev,plugin per eclipse

per le gui,posso consigliarti anche gtk,attraverso il binding per python,sono multi piattaforma anchesse

cdimauro
12-07-2008, 21:07
Finalmente anche quei testoni dei nostri partner (russi) hanno capito che non esistono solo il C e ASP (classico) e si sono decisi ad abbracciare altri strumenti di lavoro per il futuro Problema: lo sviluppo che dovrà essere svolto è piuttosto di ampio respiro e abbraccierà più SO (Win, Linux e anche MAC) nonchè il Web. Da qui a dicembre dovremo fare alcune valutazioni. Premetto che qui non amano molto soluzioni in qualche modo "proprietarie" per cui escludo subito .NET, ovviamente anche per questioni di portabilità, ma anche Java che, pur non essendo del tutto fuori gioco, in qualche modo è molto osteggiato, non chiedetemi perchè, anche se ritengo che gratta gratta certe antipatie storiche alla fine fanno capolino. Gli strumenti su cui ci si sta orientando principalmente sono Ruby, che sarà valutato da altri, e Python che ho proposto come alternativa (diciamocelo: per consentire al mio gruppo di non restare fuori dal giro). In attesa di organizzare le risorse chiedo qualche lume qua e là (quindi anche qui) visto che non conosco gran che gli strumenti utilizzabili in congiunzione con Python. Si tratterebbe di:
1) sviluppare applicazioni (di tipo gestionale e di gestione db con grosse moli di dati) che possano girare su Win e Linux, in qualche caso anche Mac con interfaccia grafica. la domanda su questo punto è: cosa usare per favorire il riutilizzo del codice a livello di presentazione, di interfaccia? Cioè esistono delle librerie di facile (più o meno)utilizzo con Python che facilitino lo sviluppo di GUI con un buon grado di riutilizzo del codice sui OS citati?
T'hanno già risposto.

Comunque se il progetto dev'essere multipiafforma, puoi tenere in considerazione anche la possibilità di sviluppare l'applicazione come web.
2) è possibile usare Python per interfacciarsi con OpenOffice (tutto si può fare, il senso della domanda è se sapete di qualche esperienza in proposito)?
Io no, ma vedo che qualcun altro t'ha consigliato.
3) sviluppo lato WEB: che ne pensate di Django? tenete presente che le applicazioni da creare si dovranno interfacciare con db Mysql e in qualche caso MSSQL e dovranno avere un alto grado di dinamicità
Django lo stanno usando i miei colleghi (uno in particolare), e ogni giorno che passa sono sempre più soddisfatti.

Tra l'altro ha un'interfaccia col db del tutto trasparente: puoi passare da MySQL a qualunque altro SQL engine con una facilità disarmante.
4) tenendo presente che le prestazioni non sono un problema primario (e comunque vale anche per il gruppo Ruby) cosa usare per costruire semplici applicazioni di gestione grafici (Web e non)?
Per gestione grafici cosa intendi?
5) tools / editor / IDE di buon livello x Python?
SPE, come ti hanno già suggerito.
Spero di essere stato chiaro, grazie per ogni consiglio / suggerimento
Se hai altri dubbi, chiedi pure. :)

cdimauro
12-07-2008, 21:08
Io come editor uso Vim!:D
:Puke:

L'homo informaticus è uscito dalle caverne parecchio tempo fa. L'homo informaticus sapiens sapiens ha imparato a usare gli IDE al posto della clav, ehm, dei soli editor di testo. :cool:

Shirov
13-07-2008, 00:06
Grazie a tutti per le risposte-



Per gestione grafici cosa intendi?



Semplicemente creare i classici istogrammi, torte ecc a partire dai dati estratti da un DB. Volevo sapere se ci sono delle librerie grafiche particolari.

Un'altra domanda: sul piano della computazione numerica e del calcolo statistico come se la cava Python? Esistono, solito dubbio, delle librerie matematiche pronte all'uso? Il fatto è che i due programmatori dedicati all'analisi numerica se ne andranno in pensione e il loro ottimo lavoro, da sempre basato sul Fortran, non avrà eredi....

Infine: ho letto che Python è utilizzabile anche come linguaggio funzionale... è così? Da noi esisteva un progetto di integrazione con applicativi creati in Haskell ed era stato buttato uno sguardo anche su F# ma certo sarebbe bello usare almeno in parte lo stesso strumento....

Grazie ancora.

cdimauro
13-07-2008, 06:37
Grazie a tutti per le risposte-

Semplicemente creare i classici istogrammi, torte ecc a partire dai dati estratti da un DB. Volevo sapere se ci sono delle librerie grafiche particolari.
Librerie grafiche ce ne sono parecchie, ma per questo particolare scopo onestamente non ti saprei dire.

Ma sta sicuro che qualcuno che ha avuto i tuoi stessi problemi qualche libreria l'ha tirata fuori. La comunità Python è grande, e continua a crescrere. :)
Un'altra domanda: sul piano della computazione numerica e del calcolo statistico come se la cava Python? Esistono, solito dubbio, delle librerie matematiche pronte all'uso? Il fatto è che i due programmatori dedicati all'analisi numerica se ne andranno in pensione e il loro ottimo lavoro, da sempre basato sul Fortran, non avrà eredi....
Qui penso che le persone più titolate a risponderti siano ZioSilvio e marco.r.

Dal ricordo di qualche loro messaggio provo a darti qualche dritta, poi eventualmente mi correggeranno se ho detto qualche castroneria:

http://www.scipy.org/more_about_SciPy

Probabilmente, dalla descrizione, risolvono anche il tuo problema di generazione di immagini statistiche. :p
Infine: ho letto che Python è utilizzabile anche come linguaggio funzionale... è così? Da noi esisteva un progetto di integrazione con applicativi creati in Haskell ed era stato buttato uno sguardo anche su F# ma certo sarebbe bello usare almeno in parte lo stesso strumento....

Grazie ancora.
Sì, Python ha diverse componenti funzionali. Ovviamente non ha la ricchezza (nonché la "filosofia") di linguaggi come Haskell e F#, ma un po' di strumenti che ti permettono di utilizzare il calcolo funzionale ci sono:
- libreria functools;
- libreria itertools;
- iteratori e generatori;
- generator expression;
- list comprehension;
- decoratori (una forma sintatticamente elegante di composizione di funzioni);
- inner function;
- funzioni built-in (map, reduce, filter, ecc.).

Probabilmente ho dimenticato qualcosa, ma grosso modo dovremmo esserci. :p

teox13
13-07-2008, 08:23
:Puke:

L'homo informaticus è uscito dalle caverne parecchio tempo fa. L'homo informaticus sapiens sapiens ha imparato a usare gli IDE al posto della clav, ehm, dei soli editor di testo. :cool:



:D Comunque mi sto aggiornando anche io! :D :D

atragon
13-07-2008, 13:03
Sì, Python ha diverse componenti funzionali. Ovviamente non ha la ricchezza (nonché la "filosofia") di linguaggi come Haskell e F#, ma un po' di strumenti che ti permettono di utilizzare il calcolo funzionale ci sono:
- libreria functools;
- libreria itertools;
- iteratori e generatori;
- generator expression;
- list comprehension;
- decoratori (una forma sintatticamente elegante di composizione di funzioni);
- inner function;
- funzioni built-in (map, reduce, filter, ecc.).

Probabilmente ho dimenticato qualcosa, ma grosso modo dovremmo esserci. :p

Azz, queste non le sapevo.... mi stai facendo venire l'acquolina in bocca pure a me.....:)

cdimauro
13-07-2008, 13:35
Ottimo. Prova, prova, vedrai che non te ne pentirai.

Il lato oscuro della programmazione ti aspetta. :cool:

http://www.theforce.net/kids/coruscant/probe_droid/palpatine.jpg

Shirov
14-07-2008, 19:25
Beh che dire... mille grazie. Mi resta solo da approfondire le potenzialità di Django rispetto a Rails.....

nico159
17-07-2008, 02:38
Probabilmente QT (http://trolltech.com/products/qt) è il miglior framework per scrivere applicativi che esista (esiste un intero desktop (http://en.wikipedia.org/wiki/KDE) sviluppato sopra che ne dimostra la potenza), guardati la sua (stupenda) documentazione:
http://doc.trolltech.com/4.4/index.html

Esiste un ponte per Python
http://www.riverbankcomputing.co.uk/software/pyqt/intro
Gira in maniera impeccabile su Windows, Mac OS X, Linux & amici (BSD, Solaris...)
E' software open source sì, ma se sviluppi applicativi commerciali devi comprare licenza per entrambi. Se è un progetto importante valuta attentamente