Autore Topic: DrawingArea  (Letto 6772 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #15 il: 23 Marzo 2008, 16:44:46 »
Grazie andy !

Comunque, a parte quanto ho scritto, la drawingarea è sempre utilizzabile, non ho detto di no; solo che in particolari situazioni è piuttosto fastidioso il fatto della lentezza. Il problema comunque si presenta con aree molto grandi, se questo non è necessario, la velocità è apprezzabile anche con diversi oggetti disegnati sopra. Diciamo che il problema non è il disegno vero e proprio, ma le dimensioni dell'area di disegno; purtroppo, credo ci sia ancora da lavorare in gambas, nell'uso delle librerie esterne (es. kde, gnome, ecc.), sicuramente devono essere  ottimizzate, perchè al di fuori di gambas, queste sono molto veloci, e questo di può vedere in pratica già dall'ambiente desktop.
In altri linguaggi, anche se interpretati, il divario sembra non esserci più; come ho scritto, già in python che in java, la velocità non è più un problema.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: DrawingArea
« Risposta #16 il: 23 Marzo 2008, 19:01:40 »
mi piacerebbe studiare python ma dovresti dirci con quali strumenti utilizzarlo, cosi' tanto x fare le cose + veloci...(ide o eventuale editor preferito....ecc). domandina gambas: se devo implementare un oggetto da spostare, devo usare la drawing area? non posso draggare qualunque oggetto?

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: DrawingArea
« Risposta #17 il: 23 Marzo 2008, 19:57:20 »
@md9327:
le OpenGL non sono vecchiotte. Sono ottime librerie grafiche che la Microsoft vuol far credere siano delle ciofeche ;-)
E se anche così non fosse, sotto Linux non hai altro :-P
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #18 il: 23 Marzo 2008, 21:19:58 »
Rispondi subito a leo: sai che non sono amante di ms, però ti confermo che le opengl sono vecchiotte, anche se funzionano e sono le uniche sotto linux. Mica sono contrario ad usarle, solo che sono un pò ostichette... :-)
Comunque, ora stò combattendo con l'aggiornamento della distro, appena posso ci faccio qualche prova e vi dico... Dal semplice esempio fornito con gambas, si vede la loro potenza, e probabilmente, se ci riesco, adotterò quella strada; per ora ci provo...

Caro andy, per python esistono un mucchio di librerie che neppure immagini però, a parte prodotti commerciali, non c'è molto software, ovvero ambienti ide che ti permettono, come per gambas, di costruirti graficamente le finestre (per esempio...). Tutti gli ambienti ide che ho provato (open, ovviamente) hanno molte cose relative agli editor e al debugging, ma poco o nulla che riguarda la parte grafica. Le librerie wxWidget, per esempio, hanno tutto quello che serve per la parte grafica (e non), ma l'unico ide che le utilizza in maniera non testuale è wxDesigner che è commerciale (anche se non costa poi molto).

Data la mia provenienza dal C/C++, posso dirti che python è un linguaggio molto potente e paragonabile quasi ad un linguaggio a basso livello, e probabilmente più potente di java (che mi pare venga utilizzato più per la moda del momento, che per altro...).

Ue!!! Con questo non voglio dirti di passare al python !
E' pure normale che quel linguaggio sia così potente e diffuso, dopotutto è un bel pò che è in giro, e ci lavora un mucchio di gente in giro per il mondo.

:-)

Per rispondere alla domanda sulla drawingarea, posso dire che se vuoi utilizzarla per disegnare oggetti più o meno rettangolari, senza linee ecc, potresti abbinarla con l'oggetto PictureBox. Dato che la PictureBox è un oggetto di tipo window, il motore del movimento è gestita dalla libreria; tu non devi far altro che disegnarci su il contenuto, e associarla alla drawingarea, oppure anche ad un semplice Panel. Set tutto questo lo metti dentro una ScrollArea, puoi crearti un ambientino da disegno, praticamente come ho fatto io con pgDesigner. Questo ovviamente se non devi disegnare qualcosa di diverso...

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: DrawingArea
« Risposta #19 il: 24 Marzo 2008, 00:21:20 »
Mi intrometto anch'io nella questione dei linguaggi di scripting perché tempo fa fui tentato di impararne uno anch'io...

Come tutti, iniziai col Python, che però ho abbandonato non appena ho iniziato ad addentrarmi un po' nella lettura di uno dei tanti "tomi" che si trovano in libreria. Non mi piaceva....
Mi sono avvicinato allora al Ruby ed ho trovato un linguaggio ugualmente potente ma più "naturale" nei suoi costrutti e più orientato agli oggetti di Python. Ed ho deciso di acquistarmi l'ennesimo tomo da leggere la sera prima di addormentarmi ;)

Il problema di questi linguaggi, però, come ha fatto presente md, è la gestione delle GUI. Di proprio si appoggiano a schifezze di librerie: Ruby, ad esempio, usa le Tcl/Tk versione 8.4 mi pare, in pratica sono le GTK1: la resa è orribile se paragonata alle interfacce moderne. E per costruire qualcosa di serio devi usare uno dei tanti binding verso qualche libreria più diffusa. E qui entri in un ginepraio da cui non esci più.... Ci sono le Qt, le GTK, le FOX, le wxWidgets ecc...... ma generalmente bisogna fare molto lavoro a mano perché di GUI builder mica ce ne sono tanti... Forse l'accoppiata migliore su Linux è usare le GTK e Glade per costruire le interfacce. E poi c'è il problema dell'IDE per scrivere il linguaggio: essendo linguaggi interpretati e di scripting, sono in continua evoluzione per cui spesso negli IDE mancano diverse caratteristiche a cui chi ha lavorato sugli ambienti tipo Gambas mancano (una fra tutte, per me che sono smemorato assolutamente fondamentale) è il completamento automatico.

Insomma, non è così semplice come sembra...


Io alla fine son rimasto a Gambas perché, nel bene o nel male, è un ambiente che integra tutto quello di cui ho bisogno: IDE per la scrittura del codice con autocompletamento, GUI builder, compilatore.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: DrawingArea
« Risposta #20 il: 24 Marzo 2008, 01:15:39 »
Concordo con te. Gambas è un ottimo compromesso. Io poi gia' impiego un botto di tempo a costruire software con Gambas figurati con gli altri :-)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #21 il: 24 Marzo 2008, 02:13:04 »
Leo ha detto cose giuste.

In effetti, qualunque linguaggio usi, hai dei vantaggi ma anche svantaggi.

Almeno per me, data anche la mia veneranda età :-) , di linguaggi ne ho visti e usati parecchi, ognuno aveva le sue peculiarità ma anche le sue pecche.

Ho lavorato con C/C++ per 16 anni, in contemporanea usavo il DB2Plus (chi se lo ricorda?), Clipper e Basic; poi, con la nascita di windoz, tutto è stato portato su un'altra dimensione, forse a mio avviso anche discutibile, comunque un'altra era. COmunque, la faceva sempre da padrone MS, anche se in settori sistemistici già si usavano linguaggi di scripting. Con linux è esploso tutto, più libertà alla fantasia, poca spesa per affrontare un problema (non eri costretto per forza a comprare un pacchetto MS), sperimentazione, ecc. Da lì sono nati un mucchio di progetti, linguaggi, applicazioni, e così via, insomma il boato.
Fate un pò il conto di quanti linguaggi, non dico applicazioni end-user, che ci sono in giro, alcune molto pubblicizzate, altre molto potenti, altre facilmente assimilabili (come gambas...), e tutte hanno le loro caratteristiche e pecche; però se ti fai prendere da uno solo di questi, poi è difficile che lo molli, tant'è che ne conosci alla fine tutti i particolari, hai pure contribuito a farlo crescere...

Fai bene andy a buttarti su gambas, è una scelta, e se ti ci incaponisci sopra alla fine potrai dire di conoscere il linguaggio.

Una cosa ti posso dire con sicurezza: alla fine utilizzarne un'altro diventa più facile, perchè anche se diversi tra loro, tutti i linguaggi (e non solo) hanno e avranno sempre qualcosa che li accomuna, come le capoccie di noi poveri programmatori... :-)

Che filosofia, eh?  :lol: :lol: :lol:

g.paolo

  • Visitatore
Re: DrawingArea
« Risposta #22 il: 24 Marzo 2008, 20:50:18 »
@md9327
Tu almeno sei riuscito a fare quel salto di qualità, che io invece non son riuscito a fare.
Forse la mia età è più veneranda della tua (ne ho 59) ed ho "consumato" il DB2 DB3 e DB4 oltre che il Clipper il FoxPro ed il VBA, e proprio a causa della loro particolare sintassi, non sono mai riuscito a digerire gli ambienti che usano le parentesi graffe solitarie ed il cui codice non è così compatto come lo è in gambas.
Se ricordi bene, il linguaggio di interrogazione del DB3 era dotato di una potenza incredibile, potenza che ancora oggi rimpiango, e che ti permetteva addirittura di lavorare su un database in modo interattivo.
Oggi queste cose le puoi fare solo in ambienti tipo Calc o Excel, ma è un altro modo di lavorare.
Ecco perchè considero gambas un ottimo compromesso, perchè come dice Leo, tutto sommato ha tutto cio che serve, o quasi.
Ma so che diverrà sempre migliore, ci conto proprio!

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #23 il: 25 Marzo 2008, 14:26:38 »
Acc... sei più vecchio tu! :-)

Sì, ricordo tutto quanto, anche perchè quella era l'epoca della nascita del computer in genere, e io ci sono stato dentro fino al collo; pensa che ho iniziato proprio con l'hardware, poi mi sono butto anche nel software.
Sì, adesso il modo di lavorare è diverso, ma è anche vero che molti giovani, traviati da questo modo di lavorare, non hanno basi di conoscenza adeguate per capire il perchè delle cose; mi dispiace dirlo ma è così, ci lavoro tutti i giorni a contatto, e se ne rendono conto pure loro...

Riguardo gambas, da parte mia lo considero una buona idea, anche una delle tante, e soprattutto coraggio ad implementarla su linux. Su linux servono queste cose, a parte contrastare il dominio di MS, anche per avere una più vasta variatà di possibilità sotto questo sistema operativo.
Penso anche io che crescerà, anche con il nostro aiuto, e crescerà come hanno fatto altri linguaggi. Abbi fede!

Viva Gambas !!! :-)

g.paolo

  • Visitatore
Re: DrawingArea
« Risposta #24 il: 25 Marzo 2008, 14:39:05 »
Continuo ad essere off-topic, ma concludo dicendo:
anche io ho proprio iniziato con l'hardware, con le logiche digitali TTL e poi piano piano contatori, decodifiche, memorie e processori.
Ho iniziato col binario per passare poi all'assembler sull'8080 e lo Z80, ma quando le cose si son fatte più complesse e complicate, complice anche una spiccata esigenza di lavoro, ho dovuto per forza passare ai linguaggi evoluti dimenticando piano piano il passato.
Oggi invidio profondamente chi riesce ancora a manipolare i registri del micro, cosa che ho progressivamente abbandonato quasi trent'anni fa.
Sono menti eccelse per me, coloro che ancora riescono a farlo!
Evviva Gambas!

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #25 il: 25 Marzo 2008, 15:08:04 »
Tanto visto che sei fuori topic tu...

Ricordo e ho iniziato anche io in quel modo ma, come dici tu, per lavoro si è passati ad altro. Io, per quanto posso, cerco di tenermi aggiornato, ma è difficile, non si può stare dietro a tutto, anche se la voglia c'è.
Ho ancora il tester, qualche analizzatore perso da qualche parte, il mio tavolo di lavoro... ma ormai sono poche le volte che mi metto... Tra l'altro non ci vedo un piffero a saldare i piedini di un integrato... cavolo !!!


:-) Ricordi... vabbè... :-)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: DrawingArea
« Risposta #26 il: 26 Marzo 2008, 11:49:05 »
Purtroppo l'usare un linguaggio evoluto è oggi una necessità. Pensate a chi scrive un software come Photoshop oppure un gioco come Quake3 se lo dovesse fare INTERAMENTE in Assembly!
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #27 il: 26 Marzo 2008, 18:45:55 »
Forse funzionerebbe... :-)

No, scherzo!

Il problema dei linguaggi moderni è la virtuale necessità di avere un ambiente grafico, per cui un'applicazione deve essere composta dal 95% di codice per gestire la grafica, e il restante 5% per la logica vera e propria. La cosa bella è che l'utente, attratto dal luccicare delle finestre, tutte belle e carine, poi non si rende effettivamente conto se sotto c'è effettivamente quello che serve veramente; e le applicazioni fanno sempre più pietà, piene di bachi, inutilmente troppo grosse per poter essere gestite e manutenute in modo umano.
Poi teniamo conto che basta metter su un gruppo di ragazzini, che conoscono un pò di linguaggio, che costino poco, e si tira su un sistema... Questo senza badare, anzi, fregandosene altamente della qualità... non dico altro, e ce ne sarebbe da dire.
Purtroppo noto questa cosa sempre su più vasta scala, in piena espansione e, a questo punto, si vende tutto e si passa tutto per applicazioni serie, di cui non si può farne a meno. Un pò come i telefonini, le auto, ecc... Diciamo che siamo entrati nel mondo della moda... :-)

Ovviamente non parlo di imparare e/o sperimentare, come facciamo noi qui per esempio in questo sito, ma del lavoro in particolare; di esempi ce ne sono a bizzeffe, a cominciare dai sistemi operativi...
Con questo non voglio nulla togliere a tutto quello che si è creato o è nato a livello collaterale, ovvero all'espasione che si è avuta del computer e la possibilità di avere un maggior numero di persone a lavorarci sopra.

Se penso che per fare la stessa cosa, prima utilizzavo pochi Kbyte di memoria, mentre ora ci vogliono carrettate di giga... Prima si stava attenti al bit, ora ce ne freghiamo altamente, compriamo un pc più potente!
Ho usato lunguaggi che per scrivere il classico "Ciao mondo", si portavano appresso 300/400Mbyte di librerie... E' perchè ? Ma che ti frega ! Compra una macchina più potente ! Fai costruire ad Intel un chip con 64 processori interni con 20G di memoria, poi incarica MS di creare un windows vista con i pulsanti, con le stelline luccicanti, che metre aspetti due ore per l'apertura di una finestra, ti fà intanto un caffè brasiliano, così il tizio davanti il computer non bestemmia turco per il ritardo, magari solo per scrivere una semplice email...

Per ritornare al discorso di photoshop o quake, ricordo che sono nati un migliardo di anni or sono, e strutturalmente non sono cambiati se non per la grafica. Il motore di base del gioco è identico a quello che girava su dos, sempre un milione di anni or sono... :-)

Scusate, mi sono lasciato andare un pochino... :-)

Comunque, la riflessione è quasi d'obbligo...

Bye

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: DrawingArea
« Risposta #28 il: 27 Marzo 2008, 08:28:03 »
E' vero.
Io mi sono accorto, nel passaggio da Windows a Linux, di quanto fossero più piccoli gli eseguibili del Pinguino rispetto a quelli di Bill.
Perché Linux è ancora (chissà per quanto) a livello di sistema per hacker, termine inteso nel senso buono: cioè persona che si sforza di imparare come funzionano le cose e di superare i limiti delle stesse.
Siccome si ha a che fare con un sistema che, bene o male, è supportato meno dagli sviluppatori hardware, i programmatori si sforzano ancora di spremere tutto il possibile e con il meno possibile. Se pensiamo a cosa fanno ad esempio Compiz con poche centinaia di Kb di codice in relazione a quanto peso è Vista per effetti secondo me assolutamente inferiori...

In questo, poi, le architetture chiuse erano forse molto più vantaggiose: venivano spronati i programmatori a tirar fuori dalle stesse tutto il possibile. Vi ricordate ad esempio i primi giochini che uscivano insieme ad un home computer degli anni '80, ad esempio C16, C64, Amiga? Erano orribili!!! Poi, dopo qualche anno, facevano fuoco e fiamme. Questo perché la macchina era sempre la stessa ed i programmatori pian piano la imparavano a conoscere e col tempo tiravano fuori da essa ogni goccia di potenzialità.

Fallo oggi! Ogni 6 mesi devi cambiare scheda grafica o processore, altrimenti non fai più girare il gioco di ultima generazione...
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: DrawingArea
« Risposta #29 il: 27 Marzo 2008, 11:52:58 »
Purtroppo è vero... hai detto tutto giusto... è comunque solo uno scopo commercialistico...

Me è pure vero che è così che uno impara, non è aver la pappa pronta che ti fà crescere, su linux è così ed è per questo che mi piace, il poter esprimere le mie capacità, sforzare la mente nel risolvere problemi, anche inventarli magari...

Se prendi un software che ti fà tutto, alla fine che gusto c'è?
E poi, comunque, per fare un buon software serve sempre un buon programmatore.
Se prendiamo ad esempio i videogiochi, che a me comunque non interessano (preferisco andare a pesca...), comunque c'è qualcuno con le p... che si inventa i motori, e questi sono a bassissimo livello, altrimenti non gira nulla...

Pensa a java, che ora và di moda e sembra che non se ne può fare a meno... ma tu come credi possa girare ? Non pensi abbia bisogno di un numero di motori di base, diversi per sistema operativo, che la fanno girare ? L'idea è buona, permette di far girare lo stesso codice, interpretato, su diversi sistemi ma, ad ogni modo devi per forza creare motori diversi. Se togli questi motori sottostanti, che ne sarebbe di java? Questo ovviamente riguarda tutti i linguaggi interpretati (vedi perl, python, php, ecc...), posso girare ovunque, ma le librerie di base sono diverse e fatte, guarda caso, tutte in C/C++ se non addirittura in ASM.

Io, che sono anche uno smanettone, e provengo da un periodo dove tutto questo non esisteva, e si doveva per forza inventarsi le cose, risparmiando sul bit, bè... preferisco quei tempi, che comunque hanno forgiato gente capace (non parlo di me, ovviamente :-) ), persone capaci di giudicare un programma, e di stare ancora attenti al bit, nonostante le idee odierne...

Comunque, questa è una bella discussione, solo che credo non era questo l'ambito, e credo si potrebbe spostare da altra parte più appropriata del forum... che ne dici webmaster ?