
Announcing The Zig Software Foundation - kristoff_it
https://ziglang.org/news/announcing-zig-software-foundation.html
======
PaulDavisThe1st
When I looked into starting an official non-profit around the Ardour
([https://ardour.org/](https://ardour.org/)) project, I was a little
disappointed to find out how much success made it much more complicated.

Founding a non-profit that deals with less than about US$10k a year is pretty
easy, and seems worthwhile.

Go above that number (let alone up towards the levels where you can actually
pay people to work full time on somethine), and you need a real board with
real officers, and the board needs board insurance to imdemnify them against
charges of financial malfeasance.

That was just the first complication I came across. After finding a couple
more, I just gave up. I've love to have a "real" non-profit associated with
Ardour, since that's entirely the way we conceive of the project, but the
legal aspects to it when you're actually pulling in $100k a year or more just
don't seem to justify the extra complications and requirements.

~~~
weinzierl
Have you considered registering your foundation in another country? For
example _The Document Foundation_ \- the non-profit organization behind Libre
Office - is legally registered in Germany. Here is what Florian Effenberger
the foundation's Executive Director had to say about the decision to register
in Germany in an interview in 2011 (my translation):

 _" You have decided to establish the Document Foundation in Germany. Why
should it become a foundation under German law?

A lot of people have asked whether it is necessary to establish the Document
Foundation in Germany, because such a large amount of foundation capital is
required here. In contrast, countries such as Great Britain or the United
States offer similar legal constructs for a foundation without the requirement
for a high foundation capital. The Steering Committee, after a thorough
investigation, decided in a public telephone conference that the location of
registration of the future foundation should ideally be Germany.

Germany is the best choice for the future foundation for several reasons: Not
only do German foundations stand for security, stability, and trustworthiness,
but Germany also has a large distribution of free and open source software.
The roots of the product lie in Germany in the mid-1980s. In addition, Germany
offers advantages in terms of taxes, tax deductibility for donors, as well as
in terms of the foundation's activities, which are not restricted to a
specific country from Germany.

Most importantly, many active members of the community who are willing to
advance the Foundation are from Germany. Even if other countries would require
fewer resources to set up the Foundation - if people who are willing to
advance the Foundation are not on site, there would be higher costs for
representatives and lawyers. Ultimately, however, a solid financial basis for
the foundation would also be required in other countries."_

Original source of the interview in German:
[https://ikhaya.ubuntuusers.de/2011/03/10/interview-mit-
der-d...](https://ikhaya.ubuntuusers.de/2011/03/10/interview-mit-der-document-
foundation/)

~~~
beojan
That interview sounds more like an argument _not_ to register your non-profit
in another country. The main argument given is "because LibreOffice is German,
and many of the people who would be involved in setting it up are German".

~~~
weinzierl
Yes, it's not a very compelling argument to register in Germany. I posted it
more to point out that other countries are worth to consider and that running
an open source non-profit in another country is more than a theoretical
option. There advantages and disadvantages.

------
dleslie
Well this is exciting. The biggest risk of Zig, among many risks, seemed to me
to be that it was a one-individual show and so privy to their whims and
subject to their ongoing interest and availability. Seeing an organization
created with the intent to foster its development is a step in the right
direction.

~~~
InitEnabler
I mean its not anything different than PHP, Nim, Ruby, etc in terms of a one
man show.

Even so its nice to have a org like this for Zig, might even make me to try it
out.

~~~
dleslie
PHP and Ruby both have many community contributors, and deep-pocketed
corporate supporters. Nim has less of this, but still has a healthy community
of contributors and users.

------
meheleventyone
This is great Zig is one of the projects I think has a real future and have
enjoyed programming in. In terms of languages for the web with WASM I think it
has massive advantages over Rust. I love that it’s gaining traction and only
wish I had more spare time to actually help out.

~~~
eklavya
> In terms of languages for the web with WASM I think it has massive
> advantages over Rust.

Can you please elaborate what are those?

~~~
flohofwoe
Not the OP, but I have the same opinion (I think):

Zig being better than Rust for targeting WASM is similar to C being better
than C++ for that use case. High-level abstractions usually work against a
minimal binary size, and WASM is a platform where the size of the 'executable'
is very important.

Both C and Zig typically generate smaller binaries 'by default' by avoiding
and discouraging high-level abstractions which are so fashionable now both in
'modern C++' and Rust.

Of course it is possible to create really small-sized binaries both in C++ and
Rust if you're really careful and use an "embedded programming mindset", but
this is not how those languages are taught, it's not the 'default' and you'll
loose most of the high-level features that differentiate C++ and Rust from C
or Zig anyway.

I wrote a blog post about that topic a while ago:
[https://floooh.github.io/2018/05/01/cpp-to-c-size-
reduction....](https://floooh.github.io/2018/05/01/cpp-to-c-size-
reduction.html)

This was when I just switched from using C++ to C as my 'default language', so
that whole idea was quite new to me at the time, and that surprise is
reflected in the blog post. In the meantime I have a better idea _why_ higher
level languages tend to cause bloated software, despite promising "zero cost
abstractions".

------
hirundo
> When I worked at a publicly traded dating website, female users were known
> internally as "inventory". It makes sense from a certain perspective, if
> your primary focus is extracting value from paying customers. But when your
> motto is "together we serve the users", it would be ridiculous to imagine
> something so inhumane. To me, this is the crux of the issue. I’ve never been
> more motivated in my life, than to serve the community around me, and help
> people accomplish their own goals.

"It is not from the benevolence of the butcher, the brewer, or the baker that
we expect our dinner, but from their regard to their own interest." \- Adam
Smith

It's great that you're motivated by helping people. Sincerely. But most people
aren't built that way. We get up on Monday morning to make a small circle of
precious lives better, not just anyone's. Maybe it shouldn't be that way, but
it is. Therefore reorganizing society around service rather than profit likely
means a much smaller economy. To many people that's a feature.

~~~
pixelherodev
In my experience, the people who talk about how everyone _else_ acts selfishly
tend to be the most selfish of all.

~~~
AsyncAwait
See also Milton Friedman

------
banachtarski
Maybe an unpopular opinion among Zig programmers, but the lack of operator
overloading is/was the true buzzkill for me as someone that tends to do a lot
of math/science work in C and C++ both. Getting operators in C++ is one of the
biggest productivity boosts compared to when I work in C.

~~~
matheusmoreira
Operator overloading leads to a complex binary interface. Avoiding complexity
in this area is important given that simple binary interface is a huge reason
why reusable software is still written in C.

[https://youtu.be/Gv2I7qTux7g?t=2m](https://youtu.be/Gv2I7qTux7g?t=2m)

~~~
asdfasgasdgasdg
I'm puzzled. Operators in C++ are just function calls. How do they lead to a
complicated binary interface? I only watched three minutes of the video but he
doesn't talk about operators during that period.

~~~
pirocks
Because you need to specify the types of the operator in the symbol name as
well.

~~~
thayne
that just means you need a mangled name in the symbol table. I don't really
consider that part of the "binary interface". The big problem with this in,
for example, c++, is that the name is mangled in an implementation defined
way. If the way the operator name is mangled is well specified, there's no
reason it couldn't be used as a C function from another language.

~~~
matheusmoreira
> that just means you need a mangled name in the symbol table

That alone is already enough to stop most if not all foreign language
interfaces from resolving a symbol to a function pointer. That's the
_simplest_ hurdle to overcome. There are also complex mechanisms to deal with
such as virtual method tables that figure into the calling conventions of
overridable methods. Not even C++ compilers manage to keep the ABI stable
between every compiler version: sometimes libraries compiled with a new
version cannot be used with software compiled by an old version. Rust doesn't
even have an ABI specification yet.

~~~
thayne
virtual method tables and operator overloading are orthogonal problems. Sure
in many languages operator overloading is done using virtual methods, but it
doesn't have to be. Operator overloading can dispatch based on static types
rather than dynamic types.

That said, I do wish that there was a standardized way to expose vtables
across foreign language boundaries. Although, I understand that differences in
how vtables work across different languages, or even different implementations
of the same language (cough cough c++ cough cough) would make creating a
useful standard difficult.

------
kristoff_it
The show is live here: [https://zig.show](https://zig.show)

------
ddevault
Congrats! This looks like it has been done well. Good news for Zig and I hope
it sets a good example for other organizations to follow.

------
0xTJ
I'm looking forward to Zig getting better. I tried writing an x86 OS in it,
but some 0.6.0 known compiler bugs (I think it was some union-related stuff)
broke what I was trying to do. I think it's supposed to be fixed in 0.7.0, so
I'm waiting for that.

------
ksec
Anyone following Zig knows how far away is it from 1.0?

~~~
schroffl
You can see the planned releases in the milestones on GitHub:
[https://github.com/ziglang/zig/milestones](https://github.com/ziglang/zig/milestones)

I would say at least two more years then.

------
cassepipe
Can't wait for 1.0 to come out. I love the pointer syntax. I think it is a
good idea to keep the C type annotation as it has become standard and for use,
the dot notation is really less confusing for beginners.

------
daotoad
Take off every 'ZIG'!! You know what you doing. Move 'ZIG'. For great justice!

------
scared2
Yet another programming syntax

------
CyberDildonics
Now that there are multiple people, I wonder if they will fold in the separate
program needed to parse tabs and carriage returns.

~~~
gmcabrita
> The Zig language accepts hard tabs and carriage returns. The self-hosted
> compiler implements the Zig language correctly; accepting hard tabs and
> carriage returns. However, the self-hosted compiler is not yet complete, and
> what people are using in reality is the stage1 compiler, which does not
> accept hard tabs.

[https://github.com/ziglang/zig/wiki/FAQ#why-does-zig-
force-m...](https://github.com/ziglang/zig/wiki/FAQ#why-does-zig-force-me-to-
use-spaces-instead-of-tabs)

~~~
CyberDildonics
That seems to imply that zig is only right now being used to make the self
hosted compiler.

------
rurban
So this is all for tax purposes, that sponsors can deduct their payments, and
Andrew doesn't have to pay VAT on his income?

~~~
ifreund
No, this is to make the transition from a one-man show into a sustainable
organization.

~~~
rurban
The organization bits came with >1000 issues, needing more committers. Now
there are 8 committers and 1200 issues. And probably a dev list to handle
internal issues.

I don't see the need for a financial organization, other than my arguments.
Sustainability is much better without another entity interfering.

