Autore Topic: Idea su una libreria comune e condivisa  (Letto 61002 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Idea su una libreria comune e condivisa
« il: 10 Maggio 2011, 21:44:04 »
Avevo già in mente di proporla a suo tempo, quando ho iniziato a concentrare pezzi di codice all'interno della libreria CLib.

In parole povere, l'idea sarebbe quella di riunire in un'unica libreria, o framework, tutte quelle funzioni, classi e oggetti che ognuno di noi ha contribuito a creare e a distribuire alla comunità Gambas. Ho visto creare molti bei pezzi di software, e popolare il repository di questo sito, ma ho pure notato che tutto ciò ha contribuito a frastagliare il nostro lavoro in tanti singoli pezzetti, non ottimizzati, separati tra loro.

La mia idea sarebbe quella di creare una sorta di blocco unico (chiamatelo pure framework, anche se la parola non mi piace molto), composto da varie classi o oggetti, ma raggruppati, unificati e standardizzati in un'unica libreria di utility.

Come esempio porto quello di CLib, dove stò tentando di fare questa cosa, ma sarebbe carino che questa logica venga espansa a livello globale. E' sottonteso che quello di CLib non vuole essere un campione di quello che ho in mente, ma solo un'idea su una possibile implementazione, d'accordo con tutti gli amici di questo forum.

Che ne dite?

Potrebbe diventare un pezzo importante di/per Gambas, e magari portare più popolarità e prestigio a questo sito...

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #1 il: 10 Maggio 2011, 22:42:07 »
...e magari diventare uno stimolo per le genti d'oltralpe...
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Idea su una libreria comune e condivisa
« Risposta #2 il: 11 Maggio 2011, 00:22:38 »
Come avresti intenzione di muoverti? Repository condiviso? Le diretive di base come le si impostano? creiamo una pagina wiki con i punti da seguire per ottimizzare la creazione della classe? Qualcuno dovrà però supervisionare il codice ogni tanto perchè gente diversa che lavora allo stesso progetto sicuramene apporta "doppioni" e codice superfluo.

A me interessa molto visto che ho tentato mille votle invano di creare un repo centralizzato di tutte le nostre classi....

Vorrei più informazioni...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #3 il: 11 Maggio 2011, 10:57:14 »
La mia idea è un concetto astratto, che però comprende sia la definizione di un repository concentrato, sia la definizione di una struttura logico/sintattica con cui scrivere il codice.

Il repository lo abbiamo già: download

Per la libreria, visti i limiti e le modalità di creazione delle librerie in Gambas, penserei ad una serie di pacchetti, ognuno specializzato in una determinata cosa. Porto ad esempio la libreria che avevo iniziato a costruire CLib che, in realtà è un repository dove poi inserisco i vari pacchetti specializzati (es. gb.clib.tree).

La creazione di ogni singolo pacchetto deve seguire una determinata nomenclatura, sia per identificarlo univocamente all'interno del repository, sia per identificarlo come facente parte del repository stesso. Sempre nell'esempio di CLib, i singoli pacchetti (come anche suggerito dal sito ufficiale gambas) iniziano tutti con un "gb.clib", seguito dal nome della classe principale contenuta all'interno dello stesso.

La creazione di singoli pacchetti permette ad ognuno di gestirsi autonomamente la propria libreria, senza escludere la possibilità di team di sviluppo ad-hoc.

Il concetto è, tutto sommato, molto semplice, perchè è solo un concetto.
Per il dettaglio delle specifiche, si può definire una volta che si unranno abbastanza persone per creare il team di sviluppo.
Bè, in realtà non è che dobbiamo creare appositi team, perchè ognuno potrà contribuire al progetto, ma dovrà attenersi alle specifiche che andremo a definire.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Idea su una libreria comune e condivisa
« Risposta #4 il: 11 Maggio 2011, 13:22:03 »
Come già detto io sarei interessatissimo.....però secondo me il repository lo si potrebbe creare su un sito tipo github o sourceforge così la collaborazione sarebbe mille volte più semplice

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #5 il: 11 Maggio 2011, 16:59:40 »
Il mio era un concetto, ovviamente nella pratica è tutto da decidere.

Và benissimo sourceforge, o altro, che forniscono tutti gli strumenti che permettono la gestioni di progetti multiusers.

Vediamo se altri si uniscono all'idea, poi si forma il primo gruppuscolo di individui, e si mette giù qualche idea pratica, con anche una linea guida...

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Idea su una libreria comune e condivisa
« Risposta #6 il: 12 Maggio 2011, 00:11:56 »
Io preferisco github perchè utilizza git che è ottimo (esce dalla capoccia di Linus torvalds, mica un Ceskho qualsiasi), agevola la creazione di fork, è possibile creare un sito statico, da possibilità di creare wiki e microforum (issues), multiutenza, ...etc....

Ma si tratterà solo di classi o di classi e moduli?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #7 il: 12 Maggio 2011, 00:55:55 »
La preferenza non si discute, perchè è soggetta a esperienza personale, comunque io mi sono trovato bene con sourceforge, che tra l'altro ha le stesse cose che hai menzionato, con anche altre feature.

Ma, a prescidere da questo, che andrà valutato dopo, la mia idea è quella che più si avvicina ad un framework (il che potrebbe essere che forse in futuro riusciremo ad implementare).

Abbiamo già un certo numero di moduli, classi o quant'altro, scritti da vari amici del forum. Quello che mi piacerebbe ottenere è una sorta di contenitore, di classi, oggetti e funzioni, di utilità, ma catalogati e gestiti secondo uno standard, un formato ben definito. Il tutto dovrebbe poter essere amalgamato in una sorta di framework embrionale.
Questo, ci permetterà, una volta raggiunto un certo grado di affidabilità e completezza, di creare un vero e proprio ambiente di sviluppo completo, a disposizione di tutti, con caratteristiche evolute, il tutto basato sulla struttura di base che è gambas.

Ribadisco, la mia idea è più un concetto di standardizzazione, più che una situazione reale. Per trasformarla in realtà è necessario un certo interesse da parte di un gruppo di persone. Se poi se ne aggiungeranno altre, meglio...


Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Idea su una libreria comune e condivisa
« Risposta #8 il: 15 Maggio 2011, 18:36:47 »
bellissima idea, approvo e se posso dare una mano mi farà piacere

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #9 il: 16 Maggio 2011, 15:05:28 »
Sicuramente andy!!!
Fare una cosa di questo genere comporta la gestione di alcuni aspetti, sia a livello di codice che altro. Ogni contributo sarà valido se gestito secondo specifica. Anche un pezzetto di codice, una funzioncina utile e indipendente può contribuire a creare un oggetto particolare.
Credo che ognuno di noi abbia in qualche modo scritto cose particolari per i propri programmi, per cui...

E siamo tre...

Se sono riuscito a esprimere bene il mio concetto, dovremmo iniziare a definire il nome dell'intero progetto. Sulla base di questo, poi, metteremo a punto le singole specifiche, in modo che siano comuni a tutte le librerie che andremo ad includere nel progetto.
Da parte mia ho pensato, anche sulla base delle specifiche ufficiali dettate dal progetto Gambas, di chiamare il progetto così: CLib  ;D (hehehe che fantasia, ovviamente scherzo...). Dopodiche ogni libreria dovrà contenere un solo elemento utile, una classe principe, che funge da unico scopo della libreria stessa. Ovviamente, la stessa singola libreria potrà contenere ulteriori oggetti, moduli o altro, necessari alla classe base. Però, se una funzione o oggetto, sarà considerato utile anche ad altre librerie, dovrà essere contenuto in un'apposita libreria di utilità.
Per fare un esempio, se qualcuno ha dato un'occhiata alla CLib, ho cercato di applicare questa logica, unendo varie funzionalità di precise librerie, dipedentemente dalla loro funzione.
Fatemi sapere cosa ne pensate...

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #10 il: 16 Maggio 2011, 18:29:30 »
Quindi, tu dici, per es.: mentre un'apprendista stregone come me, sta scrivendo un programma, sente, a un certo punto del lavoro che avrebbe bisogno di una funzione che tiene conto di quanti caratteri sono stati immessi in una TextBox, basta che traduca codesto bisogno in una ricerca, magari per "descrizione di funzione" nela scatola delle raccolte e ... ,voilà, la trova lì, pronta, la scarica e la incollo al programmino, senza nessuna fatica. Certamente è una bella idea, che aiuta a velocizzare il lavoro di programmazione senza obbligare a scoprire ogni volta l'acqua calda. Se, nel mio piccolo, posso fare qualcosa pure io, sono pronto.
Ciao.
:ciao:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #11 il: 16 Maggio 2011, 23:35:02 »
e a me non mi contate?  :hatecomputer:

posso offrire una funzioncina per trasformate una variabile cdate in una stringa tipo: "lunedi 1 aprile" io la uso spessimo,

ma se il progetto va in porto e il numero delle funzioni cresce a dismisura ci si potrebbe trovare con due problemi, uno che servirebbe una guida che illustra tutte le funzioni e il secondo che si dovrebbe inglobare tale libreria nei propri progetti , ma se questa libreria ha 300 funzioni ed io ne uso una sola ne vale la pena di portarsela appresso per intero? o forse non ho capito nulla come al solito?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #12 il: 17 Maggio 2011, 09:58:50 »
Ma certo fsurfing...  ;D

Allora, dato che finalmente si è unito più di qualcuno al discorso, vediamo di chiarire meglio tutto il concetto...

Per costruire una cosa abbastanza dinamica e snella, si dovrebbe prevedere una serie di piccole librerie, ognuna mirata ad determinate funzionalità. Questo è valido anche per le funzioni di utilità, come accennato da picavbg. Per fare un esempio sempre basato sul mio piccola lavoro, a suo tempo avevo tradotto da java una libreria di funzioni di geometria; sono circa una ventina e molto piccole, con il risultato di una librerie piccola e snella. La mia idea è proprio questa, ovvero di non inzeppare dentro uno stesso blocco un numero eccessivo di funzioni, anche se queste sono apparentemente allacciate tra loro. Per fare un'altro esempio, noi possiamo costruire una libreria per la gestione avanzate di una TableView, ma non è detto che molte delle funzionalità che andrà ad usare debbano essere per forza incluse nello stesso file di libreria; molte di queste funzioni potrebbe servire anche ad altri scopi, e quindi devono poter essere costruite in modo il più possibile slegato da riferimenti specifici.
E' ovvio che se ci serivirà una di queste librerie, e questa dipende da altre, dovremo portarci appresso anche le dipendenze. Questo è una cosa valida un pò per tutto e per tutti i linguaggi.

Detto questo, tutto quanto dovrà essere documentato il più possibile in modo dettagliato, quindi dovremo manutenere una sorta di documento (o wiki) che riporti mano mano il contenuto del progetto, per le singole librerie, una sorta di gambasdoc (preso da javadoc...). In questo caso dovremo fare uno sforzo collettivo, e cercare di aggiornare in tempo reale questa documentazione. In pratica si tratterebbe di scrivere cosa fà la libreria, l'elenco dei suoi metodi (o funzioni) e dei parametri, e via dicendo, cercando di dettagliare in modo chiaro il tutto, e il tutto (libreria e doc) inserito nel repository del progetto. Se possibile faremo in modo di creare espressamente le librerie, compilandone i sorgenti in modo che chiunque dovràsolo che inserire la libreria medesima nel suo progetto, oppure aggiungerla alle libreria di gambas.

Scusate per il testo, ma con il browser che stò usando ora, non riesco a vedere bene il testo, visto che scrolla da solo... non sò perchè...

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Idea su una libreria comune e condivisa
« Risposta #13 il: 17 Maggio 2011, 10:01:09 »
completamente dìacccorddo con quanto detto dal buon Luigi, a proposito non lamentarti della tua età che non sai la mia! :2birre:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Idea su una libreria comune e condivisa
« Risposta #14 il: 17 Maggio 2011, 11:22:54 »
Bè, sò la mia in compenso...  ;D