Gambas-it

Programmazione => Altri linguaggi => Topic aperto da: Picavbg - 04 Ottobre 2013, 11:48:06

Titolo: [Risolto] Uscire fuori dal seminato?
Inserito da: Picavbg - 04 Ottobre 2013, 11:48:06
Mi trovo di fronte ad una difficoltà pratica e psicologica. Dovrei scrivere, perchè l'ho avuto richiesto, un programma che giri in ambiente windows, ma io di windows non ne voglio sapere. Perciò l'ideale sarebbe scrivere il programma su Linux e poi farlo girare su windows. Ridurrei così i contatti con quel sistema al minimo indispensabile. Però, essendo Gambas monopiattaforma, non posso, in quest'occasione, farne uso. Dovendo girare lo sguardo verso altre potenzialità software di programmazione, ho davanti a me tre possibilità di scelta. Potrei puntare su C++, Python o Java. Qualcuno mi consiglia Java, più vicino al C++, ma più semplice e più versatile a funzionare su più piattaforme , senza dovere affrontare, probabilmente, una compilazione obbligatoria su Windows.
Son sul punto di dover decidere, ma non ci riesco. Graderei, se possibile, ricevere conforto e consiglio da chi conosce i suddetti linguaggi o  :D non necessariamente tutti e tre.
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 04 Ottobre 2013, 12:49:19
Un pò ti sei risposto da solo.

Dovendolo sviluppare sul tuo linux per poi farlo girare su windoz, devi andare su linguaggi interpretati multipiattaforma, onde evitarti problemi e perdite tempo con le differenti compilazioni.

Premetto che sono un antico fan di C/C++, posso dire che Java offre sintassi simile, per cui per chi è familiare il C, il passaggio può essere quasi indolore. Sulla facilità, la cosa dipende dalla propria esperienza e da cosa devi fare.

Il php e il python sono ottimi. Il php anche è molto simile al C, mentre python ha una sua sintassi particolare. Entrambi hanno un'ampia scelta tra librerie e codice di esempio, oltre che di tanta documentazione.

Anche come ambienti di sviluppo ce ne sono a bizzeffe.

Sò che non dovrei dirlo, ma gambas è legato a linux, per cui io non intraprenderei un discorso di creazione ambiente virtuale o l'uso di ambienti simulati. Anche sul sito di gambas non ci sono riscontri su implementazioni create con successo di questo tipo.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 04 Ottobre 2013, 15:51:44
Grazie md9327! Dopo la nostra chiaccherata sul virtuale, ho capito che avrei fatto bene a dirottarmi verso altri lidi, ma la mia idea è quella di non abbandonare Linux come mio ambiente di sviluppo, anche se poi il programma eseguibile dovrà girare in ambiente W...

Scarterei anche la possibilità di installare VirtualBox sul mio pc e scrivere il programma in Java. Ciò soprattutto perchè dovrei portare  la memoria RAM del mio pc, se ancora possibile, dopo 5 anni dalla data d'acquisto, dagli attuali 2 GB ai 4 GB necessari per rendere più snello il sistema.

Utilizzando però Java, così come C++ o Python, dovrei sviluppare senza potere sfruttare da subito la GUI, a cui dovrò sempre arrivare per non vedere il mio lavoro spregevolmente scartato. Per me che sono abituato a gestire la codifica dentro l'ambiente grafico diventa enigmatico; infatti non so se i due promessi sposi, programma sorgente e interfaccia grafica, andranno subito d'accordo o se, invece, non dovrò, modificare poi la codifica per adattarla alle esigenze della GUI.   :D
 :ciao:


Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 07 Ottobre 2013, 14:21:25
Mica ti ho capito, sai?

Puoi programmare in quei linguaggi, java compreso, direttamente sotto linux, e portare il pacchetto finito su windoz.
L'importante è che sul sistema target vi sia la VM Java o comunque l'interprete per quel linguaggio.

Su Linux puoi usare sia Eclipse che NetBeans, che sono due ambienti molto potenti, o anche altri a tuo piacimento. Il fatto che tu svlippi sotto linux non ha assolutamente importanza, se parliamo di linguaggi interpretati.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 07 Ottobre 2013, 15:08:26
 ???
Da una settimana cerco, anche leggendo, sulla programmazione, in Python ed in Java, di trovare un indirizzamento e l'unica cosa che ho capito è che Java è molto vicino al C++, e quindi, più familiare a me, Python invece ha un suo ambiente, molto semplificato per il programmatore in erba, ma un pò ostico per me, abituato al basic base.
Per es., non ho più trovato tipi di dato byte, nè la possibilità di manipolare bit. i cicli di if, for, while sono privi delle rispettive istruzioni endif,next,wend.
Di contro dovrebbe essere più semplice gestire un output di stampa. Ho letto anche che nativamente si può acquisire un documento da un file Excel.
Insomma, per concludere ora sono peggiorato e mi sento  :rolleyes:
 ;D  :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 07 Ottobre 2013, 21:15:33
Python invece ha un suo ambiente, molto semplificato per il programmatore in erba

Magari per programmatori che l'erba l'hanno appena fumata  :) La forza di Python (ultimamente l'ho frequentato un po', a discapito anche di Gambas purtroppo) io la vedo nella semplicita' di alcune operazioni, e nel numero di "moduli" accessori, anche fuori dalla libreria standard. Di contro, vedo male la voglia di "fare tutto" della stessa libreria standard (questo lo dico anche per Gambas, non capisco perche' il numero di componenti continua a crescere), e l'impressione che ci sia un po' troppa confusione  :D
Comunque trovo Gambas molto piu' veloce.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 08 Ottobre 2013, 15:42:33
Aspettate un attimo...

Python ha un'espansione enorme, forse non molto qui in Italia, ma è grande e forse più di Java.
La potenza è certamente un fattore anche personale, ma posso affermare con certezza che è uno dei linguaggi più potenti e veloci che ci sono oggi.
La sua potenza è proprio basata sulla facilità di manipolazione dei dati, che non ha nessun linguaggio (eccetto il C), e al suo motore.
Di librerie ce ne sono a iosa.
L'unica particolarità è che è idealmente stato inizialmente creato da alcuni puristi, per cui ha anche una sua particolare sintassi, ma non è per nulla ostica, anche se la sua struttura somiglia molto all'antico Cobol (molto lontanamente somigliante...).
E' sottinteso che i linguaggi, più sono vicini alla macchina (vedi ASM e C), più sono ovviamente veloci, ma tra quelli interpretati credo si posizioni tra il gruppo dei superpremiati.
Ha certamente alcune lacune, visto da una prospettiva da neofita, ovvero l'assenza di un ambiente grafico, cosa che fà erroneamente pensare sia un linguaggio da script e non visuale, ma basta dare un'occhiata in giro per la rete, e se ne trovano a bizzeffe che fanno concorrenza a molti bei programmi.
Gambas è sicuramente veloce rigurdo lo sviluppo, ma è anche la sua pecca, perchè un pò troppo facilitato dall'eliminazione di alcune delle potenzialità che hanno altri linguaggi.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 08 Ottobre 2013, 22:35:20
uno dei linguaggi più potenti e veloci che ci sono oggi.

Veloce, ma non per tutto. Con i testi trovo Lua e Gambas molto piu' performanti.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 08 Ottobre 2013, 23:08:34
Aspettate un attimo...

Python ha un'espansione enorme, forse non molto qui in Italia, ma è grande e forse più di Java.

L'unica particolarità è che è idealmente stato inizialmente creato da alcuni puristi, per cui ha anche una sua particolare sintassi, ma non è per nulla ostica, anche se la sua struttura somiglia molto all'antico Cobol (molto lontanamente somigliante...).

Questa tua affermazione sulla sua somiglianza col Cobol mi lascia un pò perplesso. Io conosco molto bene il Cobol. É stato il mio strumento di lavoro per diversi anni e, salvo evoluzioni, che magari mi sono sconosciute negli ultimi 15 anni, non mi pare che i due linguaggi abbiano alcun grado di parentela sintattica.

Comunque, visto che siamo di fronte ad un bivio senza cartelli indicativi sulla strada più corta per arrivare alla meta, tu opteresti per Java o per Python?
Considera che dovrei gestire i soliti sempre presenti report di stampa.
(http://image.forumfree.it/1/0/0/4/2/7/8/1/1379538734.gif)

Ciao.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 09 Ottobre 2013, 12:04:27
Aspettate un attimo...

Python ha un'espansione enorme, forse non molto qui in Italia, ma è grande e forse più di Java.

L'unica particolarità è che è idealmente stato inizialmente creato da alcuni puristi, per cui ha anche una sua particolare sintassi, ma non è per nulla ostica, anche se la sua struttura somiglia molto all'antico Cobol (molto lontanamente somigliante...).

Questa tua affermazione sulla sua somiglianza col Cobol mi lascia un pò perplesso. Io conosco molto bene il Cobol. É stato il mio strumento di lavoro per diversi anni e, salvo evoluzioni, che magari mi sono sconosciute negli ultimi 15 anni, non mi pare che i due linguaggi abbiano alcun grado di parentela sintattica.

Comunque, visto che siamo di fronte ad un bivio senza cartelli indicativi sulla strada più corta per arrivare alla meta, tu opteresti per Java o per Python?
Considera che dovrei gestire i soliti sempre presenti report di stampa.
(http://image.forumfree.it/1/0/0/4/2/7/8/1/1379538734.gif)

Ciao.

La somiglianza, e l'ho messa lì con una pausa, è per il fatto che ha una sintassi strutturata, dipendente dalla posizione, tutto qui. Per il resto non è assolutamente uguale...  ;D
Ci ho lavorato, purtroppo, anche io... molti millenni fà...  ;D

Riguardo al linguaggio, a questo punto non posso dirti altro. Forse opterei per java, in quanto molto simile (ripeto simile) al c, su cui ho lavorato svariati anni, ma anche con il python ho fatto qualcosa, anche divertente programmarci. Come ho detto, per questo linguaggio ci sono pochissimi ambiente di sviluppo grafici, per cui è in effetti un pò più laborioso creare form e dialog. Sò che ne esistono, ma la maggior parte è purtroppo a pagamento.
Per java, come pure ho scritto, di ambienti ne esistono molti, i più blasonati sono eclipse (open) e netbeans (anch'esso open ma di proprietà di Oracle). Io uso netbeans, un pò perchè per lo sviluppo di applicazioni web è un pò più aiutato. Eclipse ha la stessa potenza (forse anche di più), ma devi andarti a cercare ed installare tutte le librerie che ti servono, e io l'ho trovato un pò fuorviante, in particolare perchè in java esistono megatonnellate di librerie, e spesso fanno le stesse cose, ma di sicuro c'è poco che puoi inventarti tu, e in rete trovi le risposte su tutto.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: splugenbrau - 09 Ottobre 2013, 12:31:40
Ciao md9327, ciao Picavbg, ciao a tutti.
Forse il Python ricorda un pò il Cobol anche perchè
nella sintassi hanno cercato di ridurre la punteggiatura (parentesi, punto e virgola, etc)
rispetto al C, Java, PHP, JavaScript.
Hanno imposto delle buone regole di indentazione che nel Cobol puro
non sono obbligatorie ma fortemente raccomandate.

Meglio il Java o il Python? Bella domanda:
Java. C'è quello originale della Sun e quello Open. Il primo forse si riserva dei
diritti sulle applicazioni commerciali. Il secondo mi sa che é GPL3. Non so
quanto siano compatibili tra loro: tipo compilare con uno e far girare col runtime
dell'altro. Credo che difficilmente possano convivere sulla stessa macchina.
Come ambiente di resource workshop raccomandano Swing. Che consente
di realizzare finestre e textbox e tasti stile Windows 3.11. Un pò vecchi rispetto
alla qualità di Gnome 2.
Python. So solo che studiando la grammatica GTK2.8 e GTK3.8 mi accorgo
che rispetto al C si scrive di meno ed è più facile rileggere. Non conosco le licenze
del Python. Come ambiente resource workshop è senz'altro conveniente Glade.
Vedi anche: http://www.micahcarrick.com/gtk-glade-tutorial-part-3.html#2
e anche: http://gladewin32.sourceforge.net/
Ciao. :hard:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 09 Ottobre 2013, 14:23:45
Come ambiente resource workshop è senz'altro conveniente Glade.
resource workshop    ???

In qualche occasione l'ho detto: l'inglese purtroppo è la lingua ufficiale della scienza informatica, anche se non tutti i paesi del modo la utilizzano senza tradurla nella lingua nazionale. Io però l'ho sempre rifiutata e non riesco a mescolare i termini inglesi con quelli della lingua che madre natura ci ha donato, quindi, ti chiedo scusa, ma non capisco a cosa ti riferisci. Se ti puoi esprimere in termini che io  possa comprendere a cosa ti riferisci, te ne sarei assai grato.
Ciao.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 09 Ottobre 2013, 14:53:22
Java è libero, a prescindere che sio o meno della Oracle. Non credo proprio che possanno renderlo a pagamento, perchè sarebbe adesso la rovina della società, perchè verrebbe abbandanato sicuramente dal ceto medio-basso dei programmatori, e delle società che si basano su questo linguaggio.
Questo ovviamente è un mio pensiero...
Riguardo al fork open-source, sò per certo che non è perfettamente compatibile, ed è anche un tantino arretrato rispetto a quello standard.
Che possono coesistere posso affermarlo, in quanto sulla mia macchina ci sono tutti e due (anche più d'uno per esigenze di versioning), e non si danno fastidio, in quanto java è indipendente dal sistema operativo, in particolare delle varie configurazioni di sistema. E' un sistema a sè stante, con i pregi e difetti che questo comporta.

A differenza, php, python ecc., sono sicuramente portabili, ma si integrano anche con il sistema operativo (vedi librerie contenute appunto nelle cartele di sistema).

Di certo è che si tratta di programmare prevalentemente applicazioni web, java, javascript e php, la fanno da padroni, in quanto appunto sviluppati principalmente per questo scopo, e poi devenuti dei mostri adattabili a tutte le esigenze.
Se uno vuole anche non perdersi nella pura programmazione, creare form e quant'altro in maniera veloce e visuale, avere già tutti gli strumenti pronti da usare, evitare problemi legati allo studio di tutte quelle cose che, alla fine, fanno perdere di mira l'obiettivo finale (vedi creare una maschera scrivendola tutta a mano), bè allora la direzione è appunto java.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 09 Ottobre 2013, 18:48:30
Se uno vuole anche non perdersi nella pura programmazione, creare form e quant'altro in maniera veloce e visuale, avere già tutti gli strumenti pronti da usare, evitare problemi legati allo studio di tutte quelle cose che, alla fine, fanno perdere di mira l'obiettivo finale (vedi creare una maschera scrivendola tutta a mano), bè allora la direzione è appunto java.

Cioè, se non ho capito male, in definitiva per uno come me, che non conosce nè Java nè Python, completa il suo programma più velocemente con Java che Python.
 :o Per la verità ero convinto del contrario.

Ma non ho ancora capito, ed è importantissimo per la mia scelta finale, come posso produrre una stampa cartacea senza imbarcarmi in sofferenti e lunghe ricerche d'aiuto nei meandri della documentazione disponibile sul web. Non posso partire a scrivere un programma che dovrà stampare con gli archivi da preparare e poi, alla fine del viaggio, quando il programma funziona, trovarmi con le mani legate perchè non trovo la maniera giusta per ottenere la stampa di uno "stupidissimo" foglio, del tipo, tanto per fare un esempio, stampare un modulo di c/c postale.  ;)
 :ciao:

Titolo: Re: Uscire fuori dal seminato?
Inserito da: splugenbrau - 10 Ottobre 2013, 09:30:24
Ciao Picavbg, ciao a tutti.
L'inglese lo conosco anch'io non completamente.
Resource Workshop letteralmente vuol dire "negoziamento delle risorse",
cioè finestre, tendine, pop-up, tasti, box di testo, etichette.
Quando l'ambiente Resource Workshop è in grado di visualizzare anche
l'aspetto definitivo si dice che è WYSIWYG che sono le iniziali di
"What You See Is What You Get" che letteralmente vuol dire
"Quello che vedi é quello che otterrai".
Resource Workshop é un termine coniato dalla Apple-Machintosh nei primi anni
'90 e adottato anche nelle prime versioni di Visual Basic Microsoft
e Borland C++.
Esso si contrappone all'ambiente IDE, che sta per Integrated Developpement
Environment che è principalmente lo strumento grafico che visualizza il
codice con l'evidenziazione della sua sintassi.
L'IDE può e può anche non comprendere un Resource Workshop.
Ciao. :ot:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: splugenbrau - 10 Ottobre 2013, 10:18:55
Ciao md9327,
al link: http://www.oracle.com/us/legal/terms/index.html
al paragrafo 2 si legge:
" In the event that Software is provided on or through the Site and is not licensed for your use through License Terms specific to the Software, you may use the Software subject to the following: (a) the Software may be used solely for your personal, informational, noncommercial purposes; (b) the Software may not be modified or altered in any way; and (c) the Software may not be redistributed."

Che in soldoni vuol dire:
"Salvo indicazioni specifiche contrarie allegate allo specifico software Oracle (quindi anche il run-time e il compilatore Java):
 (a) Il software può essere usato solo a fini personali e non commerciali."

Vuol dire che, come regola generale, non puoi trarre profitto dai tuoi programmi se
non ti metti prima d'accordo con la Oracle. :o

Credo invece che le licenze GPL3 siano più libere.
Ciao.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 10 Ottobre 2013, 11:43:53
@ splugenbrau
Ho l'impressione che tu abbia interpretato la mia riflessione sull'inglese come un rimprovero rivolto a te. Sono dispiaciuto per come l'hai presa, ma ti assicuro che non era una lamentela nei tuoi confronti , ma un commento sul modo ordinario di intercalare termini inglesi nei documenti e frasi di qualsiasi tipo, dai fatti quotidiani seguiti dalla gente comune a tutti i settori specialistici della nostra povera Italia. Il settore informatico, che è quello che conosco un pò più da vicino. ha praticamente da sempre costretto gli utenti, con la scusa che la traduzione in italiano potesse alterare il significato originale degli argomenti affrontati, a leggere manuali  scritti in lingua inglese. E chi ha detto che leggendo una cosa che non capisco, perchè non è scritta nella mia lingua, produca alla fine un risultato migliore  di quello che avrei potuto raggiungere se avessi potuto disporre di un testo scritto in italiano? La realtà è, purtroppo un'altra: la traduzione costa e, con la scappatoia di non rischiare di alterare il contenuto dei manuali, hanno fatto nascere alle aziende utenti un  costo nascosto nella gestione dei sistemi informatici, cioè il tempo esageratamente lungo necessario ai dipendenti impegnati nel lavoro di lettura ed interpretazione di termini tecnici che nei dizionari traduttori non erano e non sono nemmeno riportati. Un esempio pratico in merito alla traduzione, era la Francia, che non accettava, ora non so,  prodotti commerciali di qualsiasi tipo che non riportassero istruzioni scritte nella lingua francese.

Anch'io ho dovuto sorbirmi letture di manuali scritti in inglese, col dizionario a fianco. Allora non c'era google. Mi capitava non di rado di dare un'interpretazione personale che mi permettesse di abbozzare una sorta di concetto adattabile al momento di vita professionale vissuta, ma quanto ci impiegavo a darmi una spiegazione più o meno prossima a quello che mi doveva tornare come informazione dalla lettura di un paragrafo?

Comunque, se ho intaccato la tua sensibilità, ti prego di scusarmi.
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: md9327 - 11 Ottobre 2013, 14:05:22
Ciao md9327,
al link: http://www.oracle.com/us/legal/terms/index.html
al paragrafo 2 si legge:
" In the event that Software is provided on or through the Site and is not licensed for your use through License Terms specific to the Software, you may use the Software subject to the following: (a) the Software may be used solely for your personal, informational, noncommercial purposes; (b) the Software may not be modified or altered in any way; and (c) the Software may not be redistributed."

Che in soldoni vuol dire:
"Salvo indicazioni specifiche contrarie allegate allo specifico software Oracle (quindi anche il run-time e il compilatore Java):
 (a) Il software può essere usato solo a fini personali e non commerciali."

Vuol dire che, come regola generale, non puoi trarre profitto dai tuoi programmi se
non ti metti prima d'accordo con la Oracle. :o

Credo invece che le licenze GPL3 siano più libere.
Ciao.
Potrei dire una baggianata, ma non mi risulta che chicchessia vada ad accordarsi con Oracle per la costruzioni di applicativi basati sul linguaggio Java.
Il motore è di libero scaricamento e installazione (anzi, ormai se non lo hai non ti funziona nulla...). Costruire applicazioni non è vietato, anche a livello commerciale, tuttalpiù Oracle ti può vietare di installare il motore, ma qui la vedrei alquanto fuori luogo.
Cosa diversa se vai a modificare il codice sorgente, ma qui entriamo in un altro mondo.

Ad ogni modo, per evitare problemi, e cambi di direzione della società, l'idea di adottare software open-source la vedo sempre un'ottima scelta, ma è da fare attenzione appunto a livello commerciale, ovvero, sarai in grado di dettare le specifiche al cliente riguardo l'implementazione di software non perfettamente compatibile? Premetto, la jdk open credo sia valida, ma da voci in rete non è proprio compatibile sotto alcuni aspetti, perciò potresti trovarti nei casini se ti trovassi in condizioni di coesistenza. Sul mio pc le ho tutte e due, ma è pur vero che ne uso una alla volta, per cui non sò cosa accade nel caso in cui vada a lanciare app che utilizzano jdk diverse. Ho notato anche problemi con versioni diverse della stessa java fornita dallo stesso produttore...
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Taurus dei miracoli - 27 Novembre 2013, 19:10:00
Ho letto tutta la discussione con interesse...
...ma non so quale sia stata la scelta finale ???

Picavbg, alla fine con cosa hai deciso di sviluppare?

Grazie :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 27 Novembre 2013, 23:07:46
Picavbg, alla fine con cosa hai deciso di sviluppare?
Hai ragione, non ho più ripreso la discussione. La verità è che sto ancora cercando di capire come installare Java perchè non ci riesco.
Per l' occasiione ho deciso di installare sia Python che Java su Ubuntu, il 2° SO. avviabile dal mio pc. Python già è installato ed ho cominciato a lavorarci; non ho ancora affrontato la parte GUI, perchè voglio capire bene come gestire le classi. Sono abbastanza soddisfatto dei passi avanti compiuti. Trovo il linguaggio accatttivante. Certo la strada da percorrere è ancora lunga, ma ho trovato qui (http://www.iprogrammatori.it/forum-programmazione/programmatori/) un ambiente vivo per crescere, e non soltanto in Python. Senza avere provato Java non mi posso esprimere in maniera definitiva, ma la mia attuale impressione è che Python  mi calza in maniera appropriata.
Ma, ... perchè ti interessa tanto sapere come andrà a finire?
(http://image.forumfree.it/1/0/0/4/2/7/8/1/1379775699.gif)
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Taurus dei miracoli - 28 Novembre 2013, 23:28:38
Ma, ... perchè ti interessa tanto sapere come andrà a finire?

Per il motivo più ovvio...
...Gambas è eccezionale ma... ho letto tutta la discussione e quindi ho preso atto dell'opinione comune di una sua impraticabilità in caso di utilizzo multipiattaforma.
Ecco perchè vorrei rimanere attento a questo tipo di scelte fatte da chi come me usa Gambas in modo sistematico.
Come si dice (anche se è un po' improprio in questo caso): chi si somiglia si piglia  :2birre:
Anche a me intriga abbastanza Phyton (e non perchè like-Cobol, nonostante come tanti ho smanettato per parecchio tempo con il vecchio linguaggio di gestione dati), e il tuo link ad una comunità che possa essere di aiuto è senza dubbio un motivo interessante per iniziare a metterci un po' il naso.
Ti pregherei, ogni tanto, di farci sapere come vanno le cose, tanto per tenere un po' viva anche questa possibilità.
 :ok: ;D :ok: ;D
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 29 Novembre 2013, 23:04:28
... ogni tanto, di farci sapere come vanno le cose, tanto per tenere un po' viva anche questa possibilità.
Lo farò senz'altro,ma solo dopo avere terminato un'implementazione del mio ContabFam in un passo che ho cominciato, lasciato e ripreso saltuariamente con una perdita di tempo non indifferente, visto che ogni volta ho dovuto ristudiare quanto avevo dimenticato nel frattempo. Perciò ho deciso: prima finisco il passo di programma nuovo, non ancora finito, e poi potrò passare ad altro. Spero di farcela entro l'anno.  ;)
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 31 Gennaio 2014, 18:30:23
Eccomi qua, finite le ultime cure al  "ContabFam", ho ripreso a studiare Python e devo dire che sono riuscito ad andare avanti: infatti ho potuto aggiungere l'aspetto grafico al mio primo programma Python. Lo stato delle arti presenta ad oggi questa situazione:
1) Ho costruito un modulo a riga di comando in grado di prendere in input alcuni dati ed a registrare un file .txt coi dati registrati.
2) periodo di natalizio = periodo di p-a-u-s-a a base di pasti abbondanti con contorno di dolciumi   :D
3) ho costruito la mia prima Finestra (Form in Gambas) dove ho posizionato una bellissima barra-dei-menù per le successive scelte operative.
4) Ho tentato, ma ancora senza successo di aggiungere una nuova classe corredata di relativa finestra per gestire quello che attualmente funziona solo da riga di comando, in modo da sfruttare così la funzione di intercettazione degli eventi, attraverso la GUI di Tkinter di Python.

A questo stadio del lavoro, il programma è incorso in una condizione di anomalia che non capisco come risolvere. Mi permetto di riportare qui appresso uno scorcio di codice nella speranza di intercettare un 'evento di tipo "maggiore esperienza pythoniana" per aiutarmi a rialzarmi:  ;)

All'interno della classe "Fmain" di avvio del programma, fra le istruzioni di definizione delle righe di selezione del menù a tendina "giocatori", si riscontrano quelle relative alla riga di selezione "Inserimento"
Codice: python [Seleziona]
def __init__(self, quadro_avvio):
#---------------- omesse  righe contenenti estranee al problema -------
      mGiocatori = Menu(barraMenu, tearoff=0)      barraMenu.add_cascade(label="Giocatori",           
      menu=mGiocatori, font = ("arial", 11))
      mIns_giocatori = Menu(mGiocatori, tearoff=0)
      mGiocatori.add_command(label="Inserimento", command=lambda : self.ins_giocatori)


L'ultima di esse dovrebbe avviare la funzione ins_giocatori, definita correttamente più sopra, nel programma:
Codice: python [Seleziona]
def ins_giocatori():
      print "ramo inserimento giocatori in lavorazione"
      fIns_giocatori=Tk()
      fIns_giocatori.title="Sezione   INSERIMENTO  GIOCATORI"                 
      giocInser=fInsGiocatori(fIns_giocatori)
      fIns_giocatori.mainloop()   
      print "------ fine lavoro ------"

Come prima ed ultima riga del gruppo di istruzioni, ho inserito una "Print" per capire attraverso la relativa stampa sul terminale shell su cui si appoggia Python che la funzione venga eseguita. Ebbene le print non vengono eseguite, quindi, devo pensare, che la funzione non venga eseguita. Non viene segnalato alcun errore ed il programma è sempre attivo, per cui posso continuare a giocare col click del mouse sulle etichette presenti nella barra-dei-menù.
L'unica seleziona che funziona è quella relativa al Menù: File->Esci
Codice: python [Seleziona]
mFile = Menu(barraMenu, tearoff=0) 
barraMenu.add_cascade(label="File", menu=mFile, font = ("arial", 11) )
mFile.add_command(label="Esci", command=root.quit)

Il comando "quit" contenuto nell'ultima riga viene eseguito correttamente, infatti il programma si chiude e la finestra con la barra-dei-menù scompare.

Qualcuno potrebbe dirmi perchè la funzione  ins_giocatori non viene eseguita?
Ho cercato fra le casistiche persenti sul Web un esempio di programmazione simile a quello scritto da me, ma non l'ho ancora trovato.
 :(
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 31 Gennaio 2014, 19:47:21
Codice: [Seleziona]
      mGiocatori.add_command(label="Inserimento", command=lambda : self.ins_giocatori)
Qualcuno potrebbe dirmi perchè la funzione  ins_giocatori non viene eseguita?

No, mai usato tkinter. Ma mi viene un grosso dubbio a vedere command=lambda : self.ins_giocatori, non e' che deve finire con ()?

Ho cercato fra le casistiche persenti sul Web un esempio di programmazione simile a quello scritto da me, ma non l'ho ancora trovato.

Questo lo avrai visto di sicuro: http://www.webalice.it/srosta/tkinter005.html
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 31 Gennaio 2014, 22:25:52
No, mai usato tkinter. Ma mi viene un grosso dubbio a vedere command=lambda : self.ins_giocatori, non e' che deve finire con ()?
No, non è quello. L'ho già provato e produce addirittura un errore.

Citazione
Questo lo avrai visto di sicuro: http://www.webalice.it/srosta/tkinter005.html
Si. è proprio quello da cui ho tratto lo spunto per costruire la mia interfaccia grafica. Vi sono trattate anche le classi, ma sempre con argomentazioni semplici. Nessun riferimento a creazioni di classi definite in moduli diversi da quello corrente e richiamate poi da un oggetto della GUI.

Domanda:  per generare GUI nei tuoi progranmmi Python quale software utilizzi?
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 01 Febbraio 2014, 17:14:18
No, non è quello. L'ho già provato e produce addirittura un errore.

Ripeto che non ho mai usato tkinter, ma negli esempi parrebbe che la funzione richiamata nel menu finisca con (). Allora, guarda altri esempi :) Questo, per dire: http://zetcode.com/gui/tkinter/menustoolbars/ (http://zetcode.com/gui/tkinter/menustoolbars/)

Citazione
Domanda:  per generare GUI nei tuoi progranmmi Python quale software utilizzi?

Due volte sole ne ho avuto bisogno di gui, una volta ho usato Gambas e una volta, assai piu' low level, Zenity :)
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 01 Febbraio 2014, 22:35:44
Ripeto che non ho mai usato tkinter, ma negli esempi parrebbe che la funzione richiamata nel menu finisca con (). Allora, guarda altri esempi :) Questo, per dire: http://zetcode.com/gui/tkinter/menustoolbars/ (http://zetcode.com/gui/tkinter/menustoolbars/)

Grazie per l'ulteriore indicazione, ma probabilmente Tkinter è cambiato dalla data di quell'esempio (2010), perchè inserendo le "()" nella riga, modificata così come nell'esempio, viene prodotto un  errore già all'avvio del programma:
Citazione
-------- Avvio programma --------
Traceback (most recent call last):
  File "calcio.py", line 105, in <module>
    fMain=FMain(root)
  File "calcio.py", line 54, in __init__
    mGiocatori.add_command(label="Inserimento", command = self.ins_giocatori())
TypeError: ins_giocatori() takes no arguments (1 given)


------------------
(program exited with code: 1)
Press return to continue
:(
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 02 Febbraio 2014, 16:55:12
probabilmente Tkinter è cambiato dalla data di quell'esempio (2010), perchè inserendo le "()" nella riga, modificata così come nell'esempio, viene prodotto un  errore già all'avvio del programma:

Ma qui non ci sono i () :)
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 04 Febbraio 2014, 09:27:25
Sono andato un pò avanti, ma ho difficoltà a gestire in Tkinter una seconda Form definita in una nuova classe richiamata attraverso il click di selezione in uno dei menù del Form-Main.
Non ho trovato niente di specifico in giro per il web. A questo punto mi occorrerebbe visitare un Forum-Python frequentato attivamente dove potere trovare utilizzatori di Tkinter. L'unico che ho trovato è "python-it.org" a cui, proprio da qualche mese, si è aggregato python-it. Avevo comniciato a frequentare quel forum sin dai primi passi, ma ho avuto la sfortuna di incontrare un moderatore dai modi cattedratici ed arroganti allo stesso tempo, cosa che si scontro con lo spirito dei Forum e con lo stesso decalogo comportamentale del Forum. Ho deciso, pertanto, quasi subito di cancellare il mio profilo.
Ne conoscete altri?
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 04 Febbraio 2014, 19:45:42
Ne conoscete altri?
 :ciao:
I forum (ora qualcuno mi sparera', visto che lo è pure gambas-it), come le tastiere qwerty sono servite a rallentare la scrittura, sono serviti a rallentare la lettura. Prova con i (sempre meno frequentati purtroppo) newsgroup, spesso c'è gente di esperienza. E' vero che molto del traffico pitonesco e' sui gruppi in inglese, comunque. Ai tempi dei tempi, da bravo lettore veloce, riuscivo a leggere anche 7-800 messaggi al giorno sui gruppi di programmazione che mi interessavano :)
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 16 Febbraio 2014, 22:34:25
Ho dovuto lasciare, per ora, l'utilizzo della GUI, per il semplice fatto, che va studiata in profondità ed il tempo stringe. Ho deciso perciò di completare il mio progettino sfruttando il terminale a riga di comando. Lì mi muovo ormai abbastanza bene e procedo in maniera meno lenta. Ho già completato la scrittura di 2 delle 14 classi che compongono tutto il progetto. Di esse però le essenziali sono 8. Ho anche fatto una prova di esecuzione in un pc, con Windows installato, ottenendo come prima volta un risultato accettabile. ;D

Ciao a tutti.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 19 Febbraio 2014, 15:18:55
Ogni linguaggio diventa una corsa ad ostacoli, o forse sarebbe meglio dire "una co...lla ad ostacoli"  :hatecomputer:;   si perchè oltre le naturali difficoltà del linguaggio che già frenano di suo, specialmente per un neofita, si frappongono anche le mancanze di compatibilità degli strumenti disponibili coi SO. ospiti.
Detto così sembra uno sfogo, ma in realtà i giorni trascorrono infruttuosi ed il sistema nervoso va sempre più su di giri  >:(.
Visto che il mio primo programma Python dovrà girare sia su Linux.Ubuntu che su Windopws, ho pensato di creare i file.txt, riservati al trattamento dei dati relativi, in una directory, figlio della directory User Home, rilevando il percorso di quest'ultima con la seguente funzione Python:
Codice: [Seleziona]
dir_base = os.getenv('HOME')
In Ubuntu: Nessun problema.
In Windows7 la variabile dir_base viene valorizzata con None, cioè "NULL". Dopo di chè, il programma va in errore. Sono tre giorni che mi accanisco su questo ... problema, senza riuscre a cavarne un ragno dal buco.

La differenza con qualsiasi ambiente Linux è che in Windows manca il login dell'utente correntemente attivo. Ciò probabilmente manda a pallino la funzione "os.getenv". Sarebbe quantomeno accettabile sapere quali directory sono presenti in "C:\", in modo da potere costruire successivamente il percorso corretto.
Chi mi può aiutare?
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: pastrank - 20 Febbraio 2014, 00:46:30
Qui http://python.6.x6.nabble.com/How-to-get-user-home-directory-on-Windows-td1325228.html (http://python.6.x6.nabble.com/How-to-get-user-home-directory-on-Windows-td1325228.html) mi pare ci siano le risposte a tutto quello che potresti chiedere, tipo la storia delle variabili da leggere sotto Windows... comunque, anche su Stackoverflow ci sono tanti esempi, qualcosa ci trovi sicuramente.
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 20 Febbraio 2014, 15:23:05
@ pastrank:

Ti ringrazio per l'interessamento. Ho già guardato in giro ed ho trovato già delle problematiche che posso assumere solamente linee guida. Oggi ho approfondito lo studio e sono arrivato ad una conclusione: La gestione delle directory Windows è diversa da quelle Linux, e questo lo sappiamo. Proprio per questo, dopo avere interrogato il SO., potrò organizzare in un certo albero di directory per Windows, diversamente di quanto non faccia per Linux.
Per il resto il programma gira benissimo in entrambi i SO.
 :ciao:
Titolo: Re: Uscire fuori dal seminato?
Inserito da: Picavbg - 28 Febbraio 2014, 17:26:00
Beh! É  passato un pò di tempo dall'apertura di questa discussione e credo che ormai valga la pena di chiuderla. :)
Dalla sua apertura sono trascorsi quasi 5 mesi e, con tutte le notizie che ho saputo raccogliere, le prove fatte e la modesta esperienza acquisita, mi sento di fare alcune considerazioni: Il linguaggio di base si appoggia sulla struttura a riga di comando ed a me, tutto sommato, è sembrato non difficile da capire ed utilizzare. Trovo però lo snellimento che è stato delineato per le strutture delle istruzioni "if, for, while", con l'eliminazione delle istruzioni di chiusura dei rispettivi cicli di controllo, come "endif, next, wend", rende la fase di scrittura più lenta e farraginosa. Ciò è determinato dalla necessita di mantenere sempre alto il livello di concentrazione nel processo di indentazione, interno a cicli suddetti. La difficoltà di stesura aumenta notevolmente quando occorre modificare il contenuto di cicli "if, for, while" quando bisogna aggiungere o togliere istruzioni, nella fase di test ed aggiustamento o di revisione del programma. Ho incontrato anche difficoltà a mettere in debug il programma, sia per assegnare punti di interruzione, sia per rilevare il contenuto delle variabili sotto test. La gestione si complica ancora di più quando poi si voglia fare sposare al programma un'interfaccia grafica per dargli una veste degna del periodo sociale corrente, in cui qualsiasi espressione viene trasmessa sotto forma di immagine. Ho cominciato, nel mese di dicembre, a mettere in pratica l'uso di Tkinter per aggiungere la GUI al mio programma, ma ho trovato molto impegnativo il lavoro di progettazione di una form e particolarmente ostico quello di disegnare una semplice coppia di oggetti, come un'etichetta e la relativa Textbox, tanto per fare un esempio. Ho dovuto perciò, per non allungare di tantissimo il tempo di totale scrittura del programma corrente, rinunziare alla GUI e continuare la scrittura in python base. Ha però un grande vantaggio: il mio programma, che lavora solo in locale, ha funzionato sia in ambiente Linux che in ambiente windows quasi subito. Il "quasi subito" è dovuto al fatto che ho dovuto imparare come riconoscere la differenza di riconoscimento delle directory dei due SO., però, una volta capito come fare, è bastato che copiassi il mio codice sorgente nella cartella prescelta dell'altro SO ed avviassi sotto l'interprete python il programma, per vederlo funzionare con soddisfazione. Ciò vale naturalmente per oggni nuova versione del programma. Altro grandissimo vantaggio è costituito dalla stragrande disponibilità di documentazione. Ho potuto infatti costruire il mio primo programma, ancora non tutto finito, senza avere praticamente bisogno di chiedere aiuto dopo la fase di primo approccio col nuovo strumento.
Conclusione?

Peccato che Gambas giri solamente sotto Linux.  ;D

 :ciao:  :ciao: