1. 9
  1. 35

    Theo will be disappointed to know that we also haven’t realized yet the mission of the Zig software foundation. All I can say is that we’re getting there, in part also thanks to the fact that we try real hard to avoid gatekeeping systems programming.

    The website was recently redesigned by me (blog post, previous discussion) to make the front page more accessible to newcomers with different backgrounds, most of which (gasp) have no idea what privsep is.

    More in general, in my opinion this is a low quality rant from somebody that hasn’t even bothered to open the website and/or do any research on Zig (in this talk Andrew does a great job at clarifying all the words in the motto, including two that Theo missed: general-purpose and maintaining).

    And more importantly the superficiality of the rant betrays what seems to me the real crux of the issue: Theo is dissatisfied that modern communication doesn’t try to appeal to him anymore.

    Perhaps these authors don’t understand that those of us attempting to use modern techniques like privsep in C (proper privsep is exceedingly rare outside of the C universe because memory-safe makes privsep irrelevant /sarc) remain uninspired by such lead-ins.

    Perhaps these authors do, and perhaps the center of the universe doesn’t sit in the dead center of the privsep illuminati.

    1. 11

      hasn’t even bothered to open the website and/or do any research on Zig

      Theo’s point is centered on how Zig was presented, not on the merits of Zig. “I doubt you wrote the following sentence: Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.” This is true as this is the motto from Zig’s website.

      It’s good to have a concise description of what a project tries to do, since it tends to keep projects on track by providing a clear vision. Leading with it here unfortunately sounds a little the kid in “A Christmas Story” where he’s memorized and repeatedly recites the marketing tagline for the toy he wants. This is sad, because it looks like Sebastien put in the effort on the technical side. I’m sure the response would be different if Sebastien had instead lead with something like, “Projects X, Y and Z use Zig, and I think we can benefit from having it in ports.”

      1. 5

        Thank you, your post helped me understand how this discussion is IMO taken out of context of Theo focusing mainly on previous email’s curt way of trying to argue for inclusion of Zig in OpenBSD. Honestly, if I were in the same situation as Theo, I can easily imagine being similarly triggered by someone trying to push for adding a language to my set of maintained packages in a way that was done here. If there was at least “aims to be” instead of “is”, it would already be a very different message to me. The same sentence on Zig’s website IMO makes sense as something of an aspirational goal; and given a website is kinda a marketing site by necessity, I am (if unfortunately) already used to taking it with a huge grain of salt. But the same sentence sounds to me completely different in the context where it was used in the email. As such, I personally see this thread here as some completely unnecessary drama based on an email taken out of context. I strongly dislike that this happened, I believe it’s doing everyone disservice.

        1. 3

          For what it’s worth, I agree with you regarding unneeded sh*t-stirring, and I flagged this submission as off-topic.

      2. 10

        Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

        He still has a point, this tagline is rather vapid. It smells like corporate bullshit.

        Zig is a better C

        That catches the attention and explains the value-proposition much better. Then people are going to argue whenever Zig is better than C, but that’s for another day :-p

        1. 4

          Perhaps these authors do, and perhaps the center of the universe doesn’t sit in the dead center of the privsep illuminati.

          Hot taco: I think OpenBSD is overly lauded for mitigations that are just plugging holes in the boat. Where’s the usage of i.e formal verification? That’s something that can be done with their existing C (knowing tdr’s opinion on memory safe languages; i.e he won’t use them), and has been done w/ existing OSes; drivers on Windows can be formally verified.

          1. 3

            First off: I really like the concept of Zig.

            Theo will be disappointed to know that we also haven’t realized yet…

            But then it’s a goal and not a claim, so saying “Zig is…” feels odd. I mean that’s the part of Zig Theo de Raadt commented on.

            The rest was general dislike on that form of advocacy, not even directly targeted at Zig (he mentioned Rust after all).

            And to be honest that selling of a theoretical possible or maybe currently not possible optimum as a claim about current functionality I think does projects and IT in general a disfavor. Like sure, a project should have goals. I very much agree. But there’s so many projects out there now that basically having nothing but a marketing website and maybe a skeleton out there. I really do find it rather annoying that project descriptions tend to have nothing to do with the actual state.

            And yes, it might be a bit more clear on Zig, that it’s a motto/goal and I’d assume it’s also a tentative comment on this being the package description. The current Wikipedia description is a lot better. “Zig is a general-purpose programming language designed for robustness, optimality, and maintainability”. Also the first sentence of the actual article is a lot better “Zig is an imperative, general-purpose, statically typed, compiled system programming language”. No claims that aren’t backed by any projects yet.

            Yes, this is about wording, because it’s about marketing. There were no claims made about the project itself from what I read.

            1. 1

              OpenBSD ecosystem benefits from having Zig on the platform, and having Zig treating OpenBSD as its target platform.

              In my mind there is no question about it.

              Zig allows programmers (including low-level/ real-time or near-real-time programmers) to make OS+ hardware platform choice, independent of the language.

              May be I am bit of an optimist when it comes to a believe in the efforts such as Zig or BetterC .

              To me they represent definite progress in several (but not all) dimensions moving software engineering forward, and I admire the technical skill, organizational skills and perseverance of the leaders in these efforts.

              I think Theo’s comment is rooted in the well discussed category of skepticism summarized by:

              [1]

              “ … Extraordinary claims require extraordinary evidence” (a.k.a., the Sagan standard) was a phrase made popular by Carl Sagan. Its roots are much older, however, with the French mathematician Pierre-Simon LaplaceWikipedia stating that: “…the weight of evidence for an extraordinary claim must be proportioned to its strangeness.”[note 1] … “

              I personally value others diversity of opinion, and personal biases – very often, consciously, because they are different than mine.

              These biases are the ‘sauce’ that makes person’s character so valuable – their skepticism, their determination and willingness to question claims and to question status quo – in the domain where they have the expertise.

              It is the Balance, created by Skepticism and Optimism – that has higher value than either one.

              In terms of the messaging that package maintainers put into the package description for OpenBSD (or any other OS). I think they should be what the upstream ( software authors) have proposed (rather than Theo’s opinion :-). Just like in lobste.rs – when we submit the link to a story, we should not be offering our own interpretation. I actually think that Theo would be totally Ok with that.

              Once in a while a sceptic in Theo, shows up – so we should take it in the context of the Balance :-).

              [1] https://rationalwiki.org/wiki/Extraordinary_claims_require_extraordinary_evidence

            2. 13

              Famous programmers bashing projects because they dislike their presentational style is not technical content. This is off topic.

              It’s okay to not like things

              1. 2

                Seems to me that this post genre has been quite popular here recently, modulo “famous”.

              2. 10

                Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

                I am sure both csh and php aspired to do the same.

                Bashing languages for having similar goals to languages the author has a distaste for is pretty weak. The only word Zig and PHP’s slogans share is “general-purpose” (don’t all languages aspire to that?), and PHP markets itself as pragmatic, completely contrary to Zig’s perfectionism. I wonder who said csh was for building robust or optimal software.

                This feels like Theo just came up with 2 successful languages he didn’t like without thought to their similarities to Zig.

                1. 4

                  “general-purpose” (don’t all languages aspire to that?)

                  Some more than others. In the case of Zig, general-purpose means being able to make Zig work for the vast majority of platforms out there, including esoteric and embedded ones, where having a runtime and assuming you have a heap at your disposal might be a problem, hence why Zig has no runtime and explicit allocation, among other things.

                  1. 5

                    Sure it’s a low-effort poke, but in general he’s not wrong.

                    I have nothing against Zig, but afaik “maintaining robust, optimal, and reusable software” is pretty much unproven, because it’s simply too young for that, especially to someone maintaining a 20+ year old C code base.

                    1. 2

                      Bashing languages for having similar goals to languages the author has a distaste for is pretty weak

                      Does he though? To me it sounds like he just makes a point that the claim should give examples. If you say “Zig is…” that does not sound like a goal, but a claim and if it’s not backed by anything it’s propaganda.

                    2. 5

                      I haven’t read the rest of the thread, and perhaps there’s a more detailed conversation there, but I don’t fully understand the complaint based on this post.

                      Anyway, while I’m not taking this post too seriously, I will say that the fact that people in the rust ecosystem seemed to be creating hard things at a surprising clip is one of the reasons I was interested in it, so I think that part at least is relevant - some of the best evangelism is to show that your community is able to tackle things that are hard and are making good progress.

                      Of course to demand that this has all happened up front super early in a languages life seems a bit unreasonable, but as an outsider, having that as an aspiration is a good idea for the zig community.