Perché alcune librerie open source non forniscono binari?

15

Perché alcune librerie open source non forniscono binari? Ho notato che alcuni progetti si riferiscono a terze parti che mantengono le build attuali del software, specialmente per le versioni di Windows.

Chiedo perché sembra una barriera per l'adozione di una biblioteca. È più lavoro per lo sviluppatore dal momento che deve impostare il suo ambiente per costruirlo. Uno sviluppatore deve anche preoccuparsi di aver introdotto bug costruendo la libreria in modo errato.

EDIT : alcuni aggiornamenti per indirizzare commenti e risposte. Ho rimosso gli esempi poiché non sono centrali nella discussione. Ho riformulato anche la mia domanda come "alcune librerie open source forniscono" piuttosto che "le biblioteche open source tendono a fornire" ... non si rendevano conto che la gente si sarebbe offesa per questo.

    
posta M. Dudley 17.05.2011 - 20:18
fonte

8 risposte

11

Perché creare i binari di Windows è un lavoro completamente diverso che richiede una base di conoscenze e un set di strumenti completamente diversi. Le persone sembrano avere difficoltà a cogliere questo sugli sviluppatori di Linux, quindi lasciami girare intorno.

  • Hai usato Windows per ciò che sembra come sempre.
  • Hai solo installato Windows a casa.
  • Hai usato Linux qua e là al lavoro, ma solo come utente, non amministratore o sviluppatore per Linux.
  • Sai che gcc è il compilatore più usato per Linux, ma non l'ho mai installato sul tuo computer.
  • Lavori principalmente sul software per te stesso su Windows, ma non importa fare correzioni di bug per Linux se qualcun altro fa il lavoro per renderlo compatibile e distribuire i binari.
  • Non vuoi pagare per un altro sistema operativo e toolchain quando qualcun altro che ha già è perfettamente disposto a realizzare le build.
risposta data 17.05.2011 - 20:53
fonte
11

Il Cairo è una biblioteca, non un'applicazione. Postgres sembra avere file binari di Windows . I progetti più piccoli spesso non forniscono build perché non hanno l'infrastruttura / le risorse.

    
risposta data 17.05.2011 - 20:41
fonte
9

Fa parte della filosofia open source di "se vuoi qualcosa, prendi una pala". Ovviamente, riduce il carico di lavoro sugli sviluppatori se gli utenti compilano semplicemente il programma da soli. Non c'è bisogno di preoccuparsi di tutte quelle architetture, SO, ecc ...

Tuttavia, se stai realizzando un prodotto di livello consumer (Firefox, Paint.NET, Audacity, Keepass, ecc.) e ti interessi dell'acquisizione degli utenti, dovresti sempre, sempre sempre! include i binari. Probabilmente solo il 2% delle persone che incappano nel tuo sito web e sono interessate al tuo prodotto, stanno per:

  • Scarica il client SCM appropriato
  • Scopri un'intera copia dell'albero dei sorgenti
  • Scarica l'IDE o gli strumenti del compilatore necessari (facilmente diverse centinaia di MB per alcuni progetti)
  • Scarica e installa tutte le dipendenze necessarie (e imposta le variabili ambientali)
  • Esegui una nuova compilazione (facilmente un processo di 10 minuti su alcuni progetti)
  • Affrontare eventuali errori, problemi o problemi (che in piccoli progetti probabilmente non sono documentati - "oh sì, l'ultimo è in realtà nella riscrittura delle filiali, non nel trunk!")
  • Disinstalla tutto, o lascia tutto sul tuo computer e ricompila per gli aggiornamenti.

(Ovviamente su Linux le cose sono molto più sicure, ma la maggior parte dei consumatori usa ancora Windows.)

È molto più facile per i principianti dire "ooh, versione per Windows! Scarica. Esegui".

Tuttavia, molti progetti open source sono non di livello consumer; si rivolgono ai programmatori, che hanno una tolleranza molto più alta per questo tipo di calvario, e quindi i binari sono fai-da-te. Secondo la mia esperienza, i programmatori possono essere altrettanto pigri come gli utenti, quindi state attenti. :)

    
risposta data 17.05.2011 - 23:58
fonte
6

I creatori di applicazioni scritte in un ambiente Write Once Compile Anywhere (C, C ++, ecc.) traggono vantaggio dall'invio la compilazione si riduce ai distributori (apt, rpm, yum, ecc.) che creano e pacchiano i binari per le architetture più diffuse. Ciò consente di ottenere un'applicazione massimamente portatile con minore sforzo da parte dei creatori e consente loro di dedicare più tempo concentrandosi sulla propria competenza di base (sviluppo dell'applicazione, non compilazione e hosting per più architetture). Alcuni creatori di applicazioni WOCA sono disposti a pagare il costo aggiuntivo in casi particolari come Windows perché - beh - nessun altro lo farà, gli utenti lo aspettano e non vogliono rinunciare al mercato.

D'altra parte, le applicazioni scritte in un ambiente Write Once Run Anywhere (Java) o per uno specifico l'architettura di destinazione (ad esempio le applicazioni OS X) sono in grado di fornire un singolo binario e spesso lo fanno poiché devono pagare solo una volta il costo di compilazione.

Infine, i loro utenti sono in genere a proprio agio sia dal punto di origine che dall'utilizzo del loro gestore di pacchetti OS, quindi questo modello offre anche una migliore usabilità. Gli utenti sanno dove trovare i binari (il loro gestore di pacchetti), avere un'esperienza di ciclo di vita coerente per l'installazione e la gestione dei pacchetti e sapere dove acquistare la fonte se ne hanno bisogno.

    
risposta data 17.05.2011 - 23:20
fonte
5

Perché dovrei voler masticare la larghezza di banda fornendoti una build (che ovviamente può essere molto grande) piuttosto che costruire la fonte che ti sto fornendo comunque? Per non parlare del fatto che la creazione di un progetto sulla tua macchina sempre produce risultati migliori in quanto è stata compilata appositamente per la tua piattaforma.

    
risposta data 17.05.2011 - 20:44
fonte
2

Posso pensare a due ragioni.

Innanzitutto, esistono più sistemi operativi in esecuzione su più tipi di hardware; il numero di obiettivi binari che dovresti costruire diventa ingestibile. Esistono ancora tre versioni di Windows ancora in uso (XP, Vista, 7) in esecuzione su hardware a 32 o 64 bit; sono 6 bersagli binari proprio lì. La situazione è peggiore sul lato Linux, con una più ampia varietà di distro in esecuzione su Dio sa quale hardware (x86, PPC, MIPS, SPARC, PA-RISC, ecc.). Hai intenzione di costruire per ogni combinazione possibile? Avete persino l'attrezzatura e / o il software per farlo? Se c'è qualcuno fuori là ancora in esecuzione (Dio ci aiuti) NT su un PII, hai intenzione di costruire un binario per loro?

In secondo luogo, la fonte di spedizione significa che gli utenti possono ottimizzare la build per il loro particolare ambiente; possono attivare le ottimizzazioni di cui hanno bisogno o modificare la sorgente stessa, se necessario.

    
risposta data 17.05.2011 - 20:45
fonte
2

In genere, il valore di un progetto open-source, sia esso un'applicazione, un sistema, un modulo o una libreria, è che può essere studiato e / o modificato secondo necessità. La distribuzione della sorgente è intrinseca al modello di pubblicazione.

La distribuzione di un binario comporta il rischio che sia stata modificata in qualche modo a scopi nefandi. La compilazione del progetto dai tentativi di origine per mitigare tale rischio.

    
risposta data 17.05.2011 - 20:45
fonte
1

Questo può avere diverse ragioni. Molti (se non la maggior parte) progetti open source iniziano su Linux. Quindi il progetto iniziale è fatto per questo sistema e la confezione è fatta dai membri del team.

Creare un programma di installazione di Windows è un lavoro extra che richiede conoscenze che gli sviluppatori Linux potrebbero non avere. Quindi se qualcuno di fuori del core team assume questo lavoro, viene spesso menzionato in modo speciale.

Lo stesso può valere per altri sistemi come OS X o anche per specifiche distribuzioni Linux. Dipende tutto da chi ha le conoscenze e il tempo per fare il lavoro extra.

    
risposta data 17.05.2011 - 20:51
fonte

Leggi altre domande sui tag