Giter VIP home page Giter VIP logo

Comments (3)

ee7 avatar ee7 commented on September 26, 2024

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.

from www.ziglang.org.

kristoff-it avatar kristoff-it commented on September 26, 2024

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.

from www.ziglang.org.

ee7 avatar ee7 commented on September 26, 2024

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?

from www.ziglang.org.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.