Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

download: consider changing asset ordering #308

Open
ee7 opened this issue Sep 21, 2023 · 3 comments
Open

download: consider changing asset ordering #308

ee7 opened this issue Sep 21, 2023 · 3 comments

Comments

@ee7
Copy link

ee7 commented Sep 21, 2023

At the time of writing, the ordering of the Zig 0.11.0 assets (and the Zig master assets, minus FreeBSD) on https://ziglang.org/download/ is:

OS Arch
Windows x86_64
Windows x86
Windows aarch64
macOS aarch64
macOS x86_64
Linux x86_64
Linux x86
Linux aarch64
Linux armv7a
Linux riscv64
Linux powerpc64le
Linux powerpc
FreeBSD x86_64

Questions:

  1. Is the current Arch ordering (for a given OS) deliberate? I am aware of the support table, where the ordering starts x86_64, x86, aarch64. But, for example, is there a reason that aarch64 is at the top for macOS, but below x86 for Windows and Linux?
  2. Could we order assets for a given OS differently, perhaps alphabetically by architecture?
  3. Is the current ordering of OSes deliberate?
  4. Could we order the OSes (non-reverse) alphabetically? Or perhaps near-alphabetically, the same as the support table: Linux, macOS, Windows, BSDs.

Even if the above asset ordering is supposed to convey something, the ordering isn't currently explained on that page. And I think on a download page people mostly just want to:

  • get a quick sense of the available assets
  • click the asset they want

I think people are used to assets being ordered alphabetically (for example, on GitHub - see e.g. hyperfine assets). And I find the below ordering to be significantly clearer (I'm also fine with BSDs being at the bottom).

Thoughts?

OS Arch
FreeBSD x86_64
Linux aarch64
Linux armv7a
Linux powerpc
Linux powerpc64le
Linux riscv64
Linux x86
Linux x86_64
macOS aarch64
macOS x86_64
Windows aarch64
Windows x86
Windows x86_64
@ee7 ee7 changed the title download: asset ordering isn't super obvious download: consider changing asset ordering Sep 22, 2023
@ee7
Copy link
Author

ee7 commented Sep 25, 2023

On 2023-09-25 a user in the Zig Discord (in #meetups) asked:

is there a reason why x86_64 linux isn't listed in the zig downloads?

After being shown that there is indeed an x86_64 linux asset listed, the user said that they were confused by this:

image

#311 is a follow up to that, and it looks like an improvement to me. But I think the ordering is also a contributing factor here.

@kristoff-it
Copy link
Member

Yes the ordering of OSs and architectures is deliberate and defined here https://github.com/ziglang/www.ziglang.org/blob/master/config.toml#L29-L50

This was originally designed to be like this by Andrew and since I too shared the same preference, I reimplemented the original system when I redesigned the website.

Even if the above asset ordering is supposed to convey something, the ordering isn't currently explained on that page.

True, but at the same time the idea is simple:

  1. windows is at the top so that, as you scroll towards your OS, you see that we do have support for windows. it's common for OSS projects to leave windows support as an afterthought and this way we silently say that we hope to do better / make sure that more people become carriers of that information

  2. arches are sorted by popularity, so that most people will find their arch right away. So that means x86_64 for windows, and aarch64 for macOS

Hopefully this makes clear the intent behind the ordering, and why we never really made it explicit.

In the end, in my opinion, while minor, it's a good thing to have even at the expense of making the sorting a bit weird for people that stop to smell the ordering :^)

I've merged #311 and with that implemented I don't feel impelled to make any other changes given the information at my disposal. That said, happy to discuss it further if you want to add some more arguments to the mix.

@ee7
Copy link
Author

ee7 commented Oct 6, 2023

Thanks for your thoughts.

I think 931966d is a significant improvement, and probably prevents most problems like that experienced by the Discord user above.

I'm fine with the current ordering, and I can see the rationale now. But since you're interested in more arguments against the status quo, I'll try to provide some below. Please feel free to close this issue if you still aren't impelled to make more changes - I'm no longer persuaded that this is worth the reader's time.

TL;DR: Bikeshedding, I think there's still an argument for either:

  1. Moving x86_64 above aarch64 for macOS, to match the ordering for Windows and Linux.
  2. Or ordering the architecture alphabetically, with the rationale that it:
    • Is more intuitive (at least for me), especially if Zig adds assets for other architectures in the future.
    • Avoids the question of when to re-order architectures as popularity changes.

I don't think it works exactly like "the user looks for macOS, then starts searching the arch column, and finishes earlier because their architecture is higher up". I think putting x86_64 at the top for Windows (and Linux) produces an expectation that x86_64 is at the top for macOS. Especially if the user has to scroll down to see the macOS assets, and because "x86_64" is now vertically higher than "Windows" (and the user looks first in the top left).


  1. windows is at the top so that, as you scroll towards your OS, you see that we do have support for windows. it's common for OSS projects to leave windows support as an afterthought and this way we silently say that we hope to do better / make sure that more people become carriers of that information

I'm fine with the ordering of OSes as it is currently. But I'm not sure that the current ordering is consistent with the above rationale: shouldn't we move FreeBSD (and potentially later NetBSD/DragonFlyBSD/OpenBSD, given that they're currently in the same support tier as FreeBSD?) upwards on the basis that BSD support is often an afterthought? Furthermore, if we order OSes by "decreasing OSS afterthoughtness", isn't it unintuitive to order architectures by something akin to "increasing OSS afterthoughtness"?

arches are sorted by popularity

Is this strictly true? Does "popularity" mean download counts of Zig assets? And if not, popular for whom - all people globally, developers globally, or Zig users in particular? Do we have data to suggest that for that audience, for example:

  1. aarch64 has become more popular than x86_64 for macOS? Apple's first arm64 machines were released in November 2020, and not all people-who-might-buy-a-mac have bought a new machine in the last 3 years.
  2. x86 is the second most popular architecture for Windows?
  3. x86 is the second most popular architecture for Linux?

Would we plan to adjust the ordering in the future as architectures change popularity? And how would we decide where to put mips and sparc64, which are in the Tier 1 support tier? If an architecture is more popular than x86/armv7a/powerpc, but less popular than x86_64/aarch64/powerpc64le respectively, would we split a similar-architecture pair?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants