Tuesday, 23 November 2021

2 - 1

Fig 1: The PHP Foundation

I wrote some time ago about the Bus Factor of PHP, the number I came up with was 2.

Just after I wrote about this, JetBrains reached out to me and others and we discussed the idea of starting a foundation. From the very start it has been about raising money to employ people, to bring the bus factor up to a normal level.

Quick diversionary note about bus factor calculations: The number 2 surprises some people; They think all the work going on far exceeds the work of two people, but calculating the bus factor is not about the sum of the total work going on. It is about how much knowledge is wrapped up in any individual, it's about "key players", and the effect it has when key players leave.

To say that 2 - 1 is not 1 would be quite insulting, not unlike PHP, but nevertheless insulting. 

Nikita parts with PHP as the bearer of a lot of knowledge, a large portion of that knowledge is not distributed among other current contributors. The very wide ranging deeply intimate knowledge that Nikita has is there for the taking, the only barrier to most people with the appetite is time: They have to work a job, look after their pet fish, tell their children not to draw on the walls, and other such normal life activities.

This morning, our bus factor is fast approaching one: While Nikita will not likely disappear into thin air and is at least temporarily available, eventually we should expect his output in terms of lines of code to reduce to nil.

The impact that Nikita has had on the lives of developers may be obvious, what may not be obvious is that for internals Nikita raised the bar for the rest of us, not only in what he has achieved but in every aspect of how he has conducted himself. I should declare with everyone else that I admire him, immensely. I look forward to mentoring whomever comes next to maintain the same level of thoroughness, thoughtfulness, and hopefully help to enable and inspire them to be as brilliant.

Let's talk about money

The number one source of financial support for most of the history of PHP has been Zend. Their commitment to PHP has been unwavering, they still employ Dmitry to work on performance (which means mostly opcache and the JIT). In the past they have employed more than one person to work on core.

Other companies have also allowed employees to work on core, I won't try to list them for fear of making a mistake and leaving someone off the list. 

Whenever a company allows an employee to work on PHP it's a big win for all of us, the company included.

Let's talk about influence

Zend have no special powers to influence the direction of the language as a whole, they have no special powers to unilaterally make decisions - although on solely technical questions regarding implementation details, they have earned something like a veto - In that, if Dmitry says something is either harmful (and he cannot reduce or advise how to reduce that), technically flawed, or unfeasible we are all going to listen to him. In the same breath anyone may make similar arguments. It's just that operationally we look to Zend for those arguments, as a matter of fact.

To say they have not influenced the direction of the language as a whole would just not be true. Indeed, they have: Many parts of the language and its internals have been shaped by the fact that Zend pushed for them, enabled by their budget and dedicated engineer or engineers.

It's also true that in the relatively short time that Nikita was with JetBrains, they too had some kind of influence, to say they didn't would be to say there has been no difference between Nikita's output before and during his employment with JetBrains.

Everyone has been sticking to the rules (the RFC process) since its introduction. Nevertheless it is quite obvious that if you buy the time of dedicated individuals with knowledge and the appetite for it, you may push the language forward in a way that is obvious, that everyone feels. 

Let's talk about the future

The Foundation represents a new way to push the language forward. It provides us the mechanism by which to raise the bus factor, so that we never face the problems we face today, and have faced in the past.

There is nobody (that I know of) that is waiting to step into Nikita's shoes. However, the foundation gives us a way to recruit willing contributors, to pay for their education and development as internals engineers, to form a group of such engineers.

Although the details are unclear at this moment, what is clear is that at some time in the not so distant future there will be a group of stakeholders and a group of dedicated engineers working together, listening to each others concerns, deciding between them, albeit indirectly, how to push forward.

This is extremely exciting.

Let's talk about details

I'm sure many readers will want me to expand on the possible interactions between internals and The Foundation.

The Foundation and internals are separate entities, as separate as JetBrains and internals.

The Foundation are empowered to hire whomever they chose to work on whatever they want to work on, but that does not imply that the work must be accepted at RFC time.

The Foundation have 6 months to formalise their working procedures; During that time conversations will be held with internals and the level of interaction which may be anywhere from none to some will be decided by normal means (RFC).

Let's talk about applying

I speak now to all past and current contributors ... 

We are not looking to replace Nikita, nor necessarily your current employer. What we are looking for is individuals with the pre-requisite knowledge to achieve initial goals which you are free to decide. 

This is as low as we can set the bar, and we will work with you to raise that bar: The Foundation has built in a group of fellows that are experienced in all aspects of PHP and its development. We will make ourselves available to mentor anyone the Foundation engage, you'll be supported by us in particular but also the entire internals community.

The Foundation represents an excellent opportunity for budding internals developers and experienced developers alike, an opportunity that we have never been able to offer before.

Take the opportunity !
For more info about The PHP Foundation, including how to apply: See the JetBrains announcement
Special thanks goes out to everyone that has been involved including all founding sponsors, but in particular Roman Pronskiy and others at JetBrains who have worked very hard to make this possible in a very short time.
Peace out, phomies :)