11

Inspired by Source code or binaries? How important is this?

Many of the larger, more widely used, FLOSS projects provide both source distributions and ready-to-install binary images. This seems especially common when one of the target operating systems is Windows (presumably on the assumption most users don't have a compiler installed).

  • What are the advantages to doing so?
  • What are the disadvantages?
  • 3
    Although people will have opinions on this, I do not believe it is primarily opinion based - there are also factual differences between the two choices. I believe this question is relevant and useful. – trichoplax Jun 26 '15 at 1:57
  • 2
    Just to add on to trichoplax: Many good questions generate some degree of opinion based on expert experience... – Zizouz212 Jun 26 '15 at 2:00
  • 6
    To those who down voted or voted to close: good subjective, bad subjective. I think this question definitely falls on the good subjective side. – overactor Jun 26 '15 at 2:01
  • For those looking for an accepted answer, there will probably never be one for this question. There are two acceptable answers, from the two possible standpoints. I can't accept both, so I intend to accept neither and let voting show general agreement instead. – kdopen Sep 22 '15 at 18:12
  • "the assumption most users don't have a compiler installed" - I would express this in a more drastic way: "the assumption most users have no idea what a compiler is, and no intention to find out". – O. R. Mapper Sep 24 '15 at 8:08
8

There are several reasons to provide binaries, some stronger than others:

First a passive reason - "Why not?" : if you have any users on a given target platform, the code will need to be tested on that platform, which requires creating binaries. So you will already have the binaries.

Now active reasons:

  • Convenience: if you make it easier for people to use your code, it will become more widely used, in turn making it more likely to have useful contributions. Note that even users with no software experience can spot bugs and request features.

  • Reputation: If you expect some of your users to be disinclined to use a compiler, then they can be expected to use precompiled binaries. If you don't provide these, they are likely to get them from somewhere else, which may be somewhere unscrupulous that provides them will malware or junkware. So providing binaries reduces the risk of ill-will being unfairly directed towards your project.

| improve this answer | |
  • 1
    Good start: how about some of the disadvantages? I can think of a few , but it's your answer :) – kdopen Jun 26 '15 at 13:44
  • @kdopen feel free to add an answer with the other side - I can't personally think of any disadvantages... – trichoplax Jun 26 '15 at 16:45
  • No reason the for and the against can't both be good answers – trichoplax Jun 26 '15 at 16:46
  • 2
    Reputation is also in danger by non-malicious people who offer binaries for your application - users will most likely turn to you for support, and if you didn't create the binaries yourself, you might never know what changes or addition the people have done to them. This usually results in a poor support impression. With your own binaries, you can set a baseline for user expectation. BTDT. – Michael Schumacher Sep 23 '15 at 14:01
8

Trichoplax suggested a number of advantages to providing binaries, but no disadvantages.

Clearly, the largest advantage to providing binaries is the high probability that this will increase the size of the user-base. The type of person who visits this site is technically very savvy, most likely with programming experience, and likely to prefer to download source and compile it.

But we are actually a very small subset of the number of people who use computers and browse the Internet. Most users do little more than browse the web, chat on Facebook, send emails, etc.

Chrome and Firefox have displaced Internet Explorer as the leading browser, helped by having alternatives to Windows as a platform. But how successful would this have been if every potential user was required to download the source of Chrome (and webkit!!) and compile it from scratch.

But success comes at a price (one which can kill small FLOSS projects), literally a dollars and cents price.

Cost

Hosting sites like GitHub often have limitations on the size of individual files. And you really don't want to save large binaries in a Git repository. These sites also have limits on the amount of traffic that a given repository should generate.

This means you will need a host site which lets you publish potentially large binaries (multiple versions and multiple targets). It should also not be bandwidth limited. This costs money, which the project owners will need to raise from some source.

Too many platforms

Having bitten the bullet, and set up a server, you need to decide which platforms you will support. And which versions of those platforms

  • Windows Vista, 7, 8? One or all?
  • Which distro mechanisms of Linux? (rpm, deb, ppa, etc)
  • OSX native, or Homebrew?
  • Android, iOS? Which versions?

Does the project have access to contributors that can support all the platforms you want to distribute for? Do you have people who can test the provided binaries to ensure they actually work?

Security and Liability

Okay, it's all taken off .. you have a distribution mechanism, binaries, and lots of users.

  • How do you prevent the insertion of adware (a la Sourceforge) if you aren't using your own servers?
  • How do you avoid trojan injections (there are commonly adopted methods)
  • Are you legally liable if someone downloads an infected executable from your site?
  • Do you need some liability insurance?

High numbers of lower-skilled users

As your project (assume it's a complete application) attracts more and more 'average people', you will be held to a higher standard for support.

  • Do you have good user documentation?
  • Will you provide translations for other (human) languages?
  • Do you now need a bug tracker hosted on a larger site?
| improve this answer | |
  • 2
    Re: cost - GitHub doesn't have any realistic limits on file size or bandwidth limits. They simply reserve the right to pull content if anybody goes crazy (for example, if Microsoft decided to upload the Windows 10 binary to GitHub and hook it up to Windows Update... they'd pull that). Source: I contacted them for clarification on this, since one of my projects needs terabytes of bandwidth whenever we ship a new update. – Abhi Beckert Sep 22 '15 at 2:24
  • 1
    Re: too many platforms - that's what automated build systems are for. – Abhi Beckert Sep 22 '15 at 2:24
  • 1
    @Kevin Apps have a clear advantage if they are available as binaries, people can just install and run them. Libraries ... less so. There are two classes of users, those installing the libraries as a dependency of something else and those writing code against the libraries. The former tend to get them as binaries provided by the larger package, the latter usually prefer to compile them from source (and in any case require the -dev package. – kdopen Sep 22 '15 at 17:43
  • 1
    I'd like to disagree on the "users of libraries for development like to compile those from source". Especially if you have a set of target platforms that ship those libraries themselves, you do not want to do that, but use them in a version that is commonly used in the wild. – Michael Schumacher Sep 22 '15 at 20:28
  • 1
    So, by your definition, I'm am not a software developer, because I use the libraries as they come with Debian Testing to build my software. – Michael Schumacher Sep 22 '15 at 20:56
2

I think that you should. It is very convenient for most, 99.99% of the users. Those who need to customize your soruces or run them at exotic platforms, will benefit also -- they will be able to try your SW in standard platform first before undertaking their endevour.

The only trouble I see is the trustfulness. You must understand that one of the greatest benefits of open software is not only that you can customize it but it is availability for the public review of privacy-sensitive code. The anonymizing services, like Dark Coin, are intended to perform your transactions privately. They ensure that they achieve declared goal by exposing the source code for everybody to review. However, how can you trust them if you download the "open source" in the precompiled, binary form? You review one thing but download and use some obscure another thing. There appears a gap. To match the installation simplicity with trustfulness, gitian is used in spyware-sensetive domain. So, instead of closing the binary download, you should simply encourage users to convince themselves with manual build.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.