The Problem Of Governance (or lack thereof)

From: Ihor Antonov <ihor_at_antonovs.family>
Date: Sun, 21 Jan 2024 19:06:04 UTC
I am starting a new thread because "The Case for Rust" is already too 
big, and the questions I am about to ask here are not about Rust. This 
is going to be a bit philosophical and I think more important than any 
concrete

I have *intentionally* added CORE team to the address list.
Our official website says

 > Core Team constitutes the project’s "Board of Directors", responsible 
for deciding the project’s overall goals and direction as well as 
managing specific areas of the FreeBSD project landscape. [1]

or here [2]

 > The FreeBSD Core Team is the governing body of FreeBSD.

The "Case for Rust" ml thread has re-surfaced a lot of *very important* 
questions that do require a governing body to actually do its work - to 
govern, to produce decisions. This is hard and someone has to take the 
responsibility.

The question whether to add Rust to src immediately begs more questions:

- Why Rust?
- Why now?
- Do we even need more languages in base?
- What is wrong with current languages available?
- Does it mean we are going add the next hype tech to the base too?

Any answer given to these questions immediately brings a new set of 
questions:
- What is the framework (set of principles) we used to answer these 
questions?
- Do we even have such a framework? Or will tomorrow we change our mind 
because different mood strikes?

At the *core* (pun intended) there are fundamental questions that must 
be answered. Every living being (a human or a society) needs a vision of 
the future to live and make progress. Remove the coherent vision of 
future and the direction of growth becomes
Brownian motion [3]. Deny the possibility of the future at all and any 
living being dies (that is why animals in the zoo tend to live shorter 
despite living with everything provided)

Does FreeBSD has a vision of the future? It is not enough to say what we 
are doing, it is also necessary to say how we are doing it and why we 
doing it. Because we have no solid answers to these questions explaining 
that FreeBSD is not a linux distro to an outside observer becomes 
challenging. What really differentiates us from Linux? The license 
sticker? in-tree ZFS? Stagnation-borderline conservatism? These are 
pretty shallow answers, we need to do better.

Remember any light-bulb epiphany moment you had. Suddenly you get this 
idea and you are full of energy to go try it out. This happens when we 
have crystalized an idea - a vision of the future. Coherent vision of 
the future gives energy to go make that future a reality. Absolutely the 
same thing happens with communities - you get solid vision of the future 
and new contributors come. FreeBSD has a problem with attracting new 
contributors because we don't have a solid vision of the future. All of 
us use FreeBSD for our reasons, but are those the same reasons for 
everyone? Collectively we don't have a common vision. That is why 
becoming a src contributor is such a difficult process. "Just find 
something you like to work on and do it" is not enough. Will my work be 
needed? Who needs it? What is the point of all this? Linux already has 
it, does it meant we also need to have it?

A thread in the mailing list has no resolution or consensus, and it is 
never "over". We need better mechanisms for policy making.
Lucky for us we have the core team which is a governing body. So I want 
to ask the core team these questions:

- What is the technical direction of the FreeBSD project? Where do we 
go? Why do we go there?
- What is the policy on programming languages in base? Sub questions:
     - Are we adding every trending tech?
     - Do were ever remove it when better tech is available?
     - How many languages is too many? DO we have an upper limit on 
language count?
     - What problems exist today that existing languages can't solve? Is 
it a skill issue of a given individual (This is not a dig at Alan) or is 
this a mass effect that allows us to admit that certain tech is not good 
enough?

I am a full-time FreeBSD user (both desktop and servers) since 2017. To 
me, and to many other community members as I am sure Core does not 
really exist. Can I see what core is doing? Can I hear what core is 
saying? I'm afraid the answers are negative. It would be great if we can 
hear from Core on such important matters ever now and then.

FreeBSD is by-and-large is a community of oldfarts (me including) who 
decided to hide from the future in this cozy little project that moves 
slowly and does not ask existential questions very often. But we can't 
hide from the future forever. Without new contributors the project will 
go into oblivion sooner then we can imagine.

We need solid answers on question:
- Who are we?
- What do we do?
- Why we do it?
- How we do it?

FreeBSD as a collective group has identity problem because we can't 
answer these questions.
I propose to conduct a poll on these 4 questions just to see how 
incoherent the answers will be.

FreeBSD as a technical project and a community needs technical 
governance to set the identity and direction.
I can't think of a better time for the Core Team to step up lead.


[1] https://www.freebsd.org/administration/#t-core
[2] https://www.freebsd.org/status/report-2023-01-2023-03/core/
[3] https://en.wikipedia.org/wiki/Brownian_motion

-- 
Ihor Antonov