Warum bieten einige Open Source-Bibliotheken keine Binärdateien an? Mir ist aufgefallen, dass sich einige Projekte auf Drittanbieter verlagern, die aktuelle Builds der Software verwalten, insbesondere für Windows-Builds.
Ich frage, weil es ein Hindernis für die Annahme einer Bibliothek zu sein scheint. Es ist mehr Arbeit für den Entwickler, da er seine Umgebung einrichten muss, um es zu erstellen. Ein Entwickler muss sich auch Sorgen machen, dass er Fehler verursacht hat, indem er die Bibliothek falsch erstellt hat.
BEARBEITEN : Einige Aktualisierungen an Kommentaren und Antworten. Ich habe die Beispiele entfernt, da sie für die Diskussion nicht von zentraler Bedeutung sind. Ich habe meine Frage auch umformuliert, da "einige Open Source-Bibliotheken eher" als "Open Source-Bibliotheken eher" anbieten.
quelle
Antworten:
Da das Erstellen von Windows-Binärdateien eine völlig andere Aufgabe ist, sind eine völlig andere Wissensbasis und ein völlig anderes Toolset erforderlich. Die Leute scheinen es schwer zu haben, dies über Linux-Entwickler zu verstehen. Lassen Sie mich das also umkehren.
quelle
Kairo ist eine Bibliothek, keine Anwendung. Postgres scheint Windows-Binärdateien zu haben . Kleinere Projekte bieten oft keine Builds, da sie nicht über die Infrastruktur / Ressourcen verfügen.
quelle
.dll
sehr oft verwendet, daher wären diese Binärdateien für einige von uns weitgehend nutzlos. Reine Quelle wäre besser.Es ist Teil der Open-Source-Philosophie: "Wenn Sie etwas erledigen möchten, schnappen Sie sich eine Schaufel." Natürlich reduziert sich die Arbeitsbelastung der Entwickler, wenn die Benutzer das Programm einfach selbst kompilieren. Über all diese Architekturen, Betriebssysteme usw. müssen Sie sich keine Sorgen machen.
Wenn Sie jedoch ein Produkt auf Verbraucherebene (Firefox, Paint.NET, Audacity, Keepass usw.) herstellen und sich darum kümmern, Benutzer zu gewinnen, sollten Sie immer, immer, immer! Include-Binaries. Wahrscheinlich gehen nur 2% der Personen, die über Ihre Website stolpern und sich für Ihr Produkt interessieren, zu:
(Offensichtlich sind die Dinge unter Linux viel vernünftiger, aber die meisten Konsumenten verwenden immer noch Windows.)
Für Neulinge ist es weitaus einfacher, "ooh, Windows-Version! Herunterladen. Ausführen" zu sagen.
Viele Open Source-Projekte sind jedoch nicht auf Verbraucherebene. Sie richten sich an Programmierer, die eine viel höhere Toleranz für diese Art von Tortur haben, und daher sind Binärdateien Heimwerker. Nach meiner Erfahrung können Programmierer genauso faul sein wie Benutzer, seien Sie also gewarnt. :)
quelle
Entwickler von Anwendungen, die in einer Write Once Compile Anywhere- Umgebung (C, C ++ usw.) geschrieben wurden, profitieren davon, dass der Kompilierungsschritt auf Distributoren (apt, rpm, yum usw.) verlagert wird, die Binärdateien für gängige Architekturen erstellen und verpacken. Dies führt zu einer maximal portierbaren Anwendung mit weniger Aufwand für die Entwickler und ermöglicht es ihnen, sich mehr auf ihre Kernkompetenz zu konzentrieren (Entwickeln der Anwendung, nicht Kompilieren und Hosten für mehrere Architekturen). Einige WOCA-Anwendungsentwickler sind bereit, die zusätzlichen Kosten in Sonderfällen wie Windows zu zahlen, da - nun - niemand anders dies erwartet und sie den Markt nicht aufgeben möchten.
Andererseits können Anwendungen, die in einer Write Once Run Anywhere- Umgebung (Java) oder für eine bestimmte Zielarchitektur (z. B. OS X-Anwendungen) geschrieben wurden, eine einzige Binärdatei bereitstellen, und dies häufig, da sie nur die Kompilierung bezahlen müssen einmal kosten.
Schließlich können die Benutzer in der Regel problemlos von der Quelle aus oder mit dem Paket-Manager des Betriebssystems arbeiten, sodass dieses Modell auch eine bessere Benutzerfreundlichkeit bietet. Benutzer wissen, wo sie Binärdateien (ihren Paketmanager) erhalten, haben eine konsistente Erfahrung im Installations- und Paketverwaltungslebenszyklus und wissen, wo sie die Quelle erwerben können, wenn sie diese benötigen.
quelle
Warum sollte ich die Bandbreite erhöhen, um Ihnen einen Build zu liefern (der offensichtlich sehr groß sein kann), anstatt die Quelle zu erstellen, die ich Ihnen ohnehin zur Verfügung stelle? Ganz zu schweigen davon, dass das Erstellen eines Projekts auf Ihrem eigenen Computer immer zu besseren Ergebnissen führt, da es speziell für Ihre Plattform kompiliert wurde.
quelle
Ich kann mir zwei Gründe vorstellen.
Erstens haben Sie mehrere Betriebssysteme, die auf mehreren Hardwaretypen ausgeführt werden. Die Anzahl der zu erstellenden binären Ziele kann nicht mehr verwaltet werden. Es gibt drei häufig verwendete Windows-Versionen (XP, Vista, 7), die auf 32-Bit- oder 64-Bit-Hardware ausgeführt werden. das sind genau dort 6 binäre Ziele. Auf der Linux-Seite ist die Situation noch schlimmer, da eine viel größere Anzahl von Distributionen auf der Hardware läuft (x86, PPC, MIPS, SPARC, PA-RISC usw.). Wirst du für jede mögliche Kombination bauen? Haben Sie überhaupt die Ausrüstung und / oder Software dafür? Wenn da draußen noch jemand NT auf einer PII ausführt (Gott helfe uns), werden Sie eine Binärdatei für ihn erstellen?
Zweitens bedeutet Versandquelle, dass Benutzer den Build für ihre spezielle Umgebung optimieren können. Sie können die von ihnen benötigten Optimierungen aktivieren oder die Quelle bei Bedarf selbst optimieren.
quelle
Typischerweise besteht der Wert eines Open-Source-Projekts, sei es eine Anwendung, ein System, ein Modul oder eine Bibliothek, darin, dass es nach Bedarf untersucht und / oder geändert werden kann. Das Verteilen der Quelle ist für das Veröffentlichungsmodell von wesentlicher Bedeutung.
Das Verteilen einer Binärdatei birgt das Risiko, dass sie zu ruchlosen Zwecken auf irgendeine Weise modifiziert wurde. Durch das Kompilieren des Projekts aus dem Quellcode wird versucht, dieses Risiko zu minimieren.
quelle
Dies kann mehrere Gründe haben. Viele (wenn nicht die meisten) Open Source-Projekte starten unter Linux. Das erste Projekt für dieses System ist also abgeschlossen, und die Verpackung erfolgt durch die Teammitglieder.
Das Erstellen eines Windows-Installationsprogramms ist eine zusätzliche Arbeit, die Kenntnisse erfordert, über die die Linux-Entwickler möglicherweise nicht verfügen. Wenn also jemand von außerhalb des Kernteams diese Arbeit übernimmt, wird er oft besonders erwähnt.
Gleiches gilt möglicherweise auch für andere Systeme wie OS X oder sogar für bestimmte Linux-Distributionen. Es hängt alles davon ab, wer das Wissen und die Zeit hat, die zusätzliche Arbeit zu erledigen.
quelle