Sarebbe possibile creare una libreria software open source, interamente sviluppata e moderata da una comunità aperta? [chiuso]

0

Chiamalo sviluppo software democratico, o open source con steroidi, se vuoi.

Non sto solo parlando della possibilità di fornire una patch che può essere approvata dal proprietario della biblioteca. Pensa più a come funziona Stack Exchange. Chiunque può postare codice e attraverso la moderazione della comunità viene ripulito e alla fine il codice valido finisce nella libreria finale.

Per le librerie complesse dovrebbe probabilmente essere creato un sistema elaborato, ma per una semplice libreria credo sia già possibile ad es. all'interno della piattaforma Stack Exchange.

Esempio

Prendi una libreria di metodi di estensione per .NET per esempio. Ognuno va per la sua strada e implementa il proprio sottoinsieme di ciò che ritengono importante, libreria open source o meno. Le persone vogliono condividere il loro codice, ma non esiste una piattaforma adeguata per questo. extensionmethod.net è il risultato del rispondere a questa chiamata per i metodi di estensione, ma il framework irrimediabilmente cade; non esiste alcun ordine o struttura.

Non sai se un'idea è valida fino a quando non la provi, quindi ho deciso di creare una proposta di Metodi di estensione su Area51. Credo che con la giusta moderazione, potrebbe essere possibile che il sito sia più di un sito Q & A, e che una libreria reale (o sottoinsiemi di esso) possa essere estratta da esso.

Sentiti libero di dare un feedback a questa idea particolare sulla sua pagina di proposta su area51, ma è solo un esempio. Questa domanda ha lo scopo di trovare una risposta all'idea generale di creare una libreria software open source moderata da una comunità aperta.

Domande

  1. È possibile? Quali sarebbero i problemi principali a tale approccio?
  2. È già stato tentato qualcosa del genere?
  3. Ci sono piattaforme più adatte a questo?
posta Steven Jeuris 16.11.2011 - 16:14
fonte

3 risposte

7

Come risposta diretta a questa citazione dalla domanda originale:

Everybody goes their own way and implements their own subset of what they feel is important, open-source library or not.

I miei due centesimi: Design by committee è un fallimento iniziare con . Vuoi davvero importare ogni singola funzionalità ogni singola persona su Internet è un requisito (ti sto guardando Jakarata Commons) solo perché vuoi uno di quelli che potrebbero esserti utili? Diventa una corsa verso il basso della mediocrità al meglio!

Immagina una base di codice modificata come una wiki. Ogni volta che qualcuno riformatta il codice o rinomina una variabile, inizierà una guerra: sembra davvero produttivo.

Sì, voglio davvero moderare quella merda, oh aspetta, la moderazione, che non è più guidata dalla comunità o "social", qual è il punto?

La votazione non crea magicamente la migliore risposta pop in alto, ho delle risposte che ho scritto che hanno ottenuto voti ZERO e accettato con il segno di spunta corretto, dove altri errati nel modo peggiore hanno avuto risposte 10+ voti.

Popolarità! = Qualità o correttezza!

Solo perché 42 studenti CS votano per un'impronta empiricamente cattiva e empiricamente malvagia a causa dell'ignoranza e 2 voti negativi dei veterani esperti non rendono il migliore solo perché ha ottenuto il maggior numero di voti!

    
risposta data 16.11.2011 - 16:19
fonte
4

Penso che sarebbe / sarà estremamente difficile farlo bene. Come ha sottolineato Brooks decenni fa, la forza principale di un prodotto (e si applica ugualmente a un sistema operativo o una biblioteca) non sono le caratteristiche individuali, ma la "integrità concettuale" che definisce la differenza tra mediocrità e grandezza.

Almeno per il mio uso di una biblioteca, il tipo di sviluppo che stai immaginando potrebbe probabilmente portare a qualcosa di più che un male. In particolare, voglio una libreria che possa essere compilata e utilizzata rapidamente e facilmente, senza sprecare tempo o sforzi sulle singole parti. Ciò che immagini sembra mi richiederebbe probabilmente di passare attraverso e scegliere quali versioni di quali parti della libreria voglio, quindi (probabilmente) spendere un bel po 'di sforzi per far funzionare bene quei pezzi insieme. Almeno nella maggior parte dei casi, questa è una parte importante di ciò che sto cercando di evitare usando una libreria in primo luogo.

In breve, qualcuno deve impostare e applicare standard e linee guida per il modo in cui la biblioteca si adatterebbe insieme - e se nessun altro lo fa, dovrò quasi certamente farlo anch'io. Se devo farlo da solo, non sto davvero ottenendo una libreria, ma una raccolta di frammenti che ho bisogno di trasformare in una libreria da solo.

    
risposta data 16.11.2011 - 16:58
fonte
1

Se stai parlando di librerie di qualsiasi dimensione, una buona libreria avrà molte dipendenze interne, dal momento che il codice verrà riutilizzato. Avrà anche un'API pubblica coerente che può evolversi pur essendo compatibile con le versioni precedenti e, se la compatibilità con le versioni precedenti deve essere interrotta, avrà un lungo periodo di supporto della vecchia funzionalità mentre è in stato deprecato.

Idealmente avrà una coerenza che rende più facile l'apprendimento, in piccole cose come le convenzioni di denominazione che si estendono al livello architettonico. Dovrebbe anche avere uno scopo chiaro, quindi qualcuno che decide se utilizzare la libreria può sapere se è appropriato.

Queste cose sono tutte difficili, e anche le librerie buone e largamente usate non le rendono perfette. Richiedono un alto livello di collaborazione, accordo sugli obiettivi e alcune modifiche complesse di funzionalità che hanno valore in sé e per sé, ma che collettivamente fanno perdere la concentrazione alla biblioteca.

Queste sono caratteristiche difficili da raggiungere con il processo che descrivi. Non è impossibile, ma penso che se funzionasse allora "con moderazione" probabilmente finirebbe per significare che sei vicino alla situazione che hai descritto dove fornisci una patch al proprietario della biblioteca, intendo il consiglio al governo, intendo il moderatori.

Suppongo che potrebbe esserci un qualche valore nell'avere qualche tipo di sistema di scambio dello stack in cui le patch rifiutate sono pubblicamente visibili oltre alle patch che fanno parte del controllo del codice sorgente, e hanno una qualche possibilità di ottenere up-voting e guadagno visibilità, ma sono scettico sul fatto che le grandi patch che languono inosservate è davvero un problema importante nella pratica.

    
risposta data 16.11.2011 - 19:05
fonte

Leggi altre domande sui tag