Addressing 'Bus Factor', PHP Gets a Foundation (thenewstack.io) 69
How many members of your team are so irreplaceable that if they were hit by a bus, your project would grind to a halt?
For PHP, that number is: two. (According to a post by PHP contributor Joe Watkins earlier this year that's now being cited in Mike Melanson's "This Week in Programming" column.) "Maybe as few as two people would have to wake up this morning and decide they want to do something different with their lives in order for the PHP project to lack the expertise and resources to move it forward in its current form, and at current pace," Watkins wrote at the time, naming Dmitry Stogov and Nikita Popov as those two. Well, last week, Nikita Popov was thankfully not hit by a bus, but he did decide to move on from his role with PHP to instead focus his activities on LLVM.
Also thankfully, Watkins' article earlier this year opened some eyes to the situation at hand and, as he writes in a follow-up article this week, JetBrains (Popov's employer) reached out to him at the time regarding starting a PHP Foundation. This week, with Popov's departure, the PHP Foundation was officially launched with the goal of funding part/full-time developers to work on the PHP core in 2022. At launch, the PHP Foundation will count 10 companies — Automattic, Laravel, Acquia, Zend, Private Packagist, Symfony, Craft CMS, Tideways, PrestaShop, and JetBrains — among its backers, with an expectation to raise $300,000 per year, and with JetBrains contributing $100,000 annually. Alongside that, the foundation is being launched using foundation-as-a-service provider Open Collective, and just under 700 contributors have already raised more than $40,000 for the foundation.
One of the key benefits to creating a foundation, rather than sticking with the status quo, goes beyond increasing the bus factor — it diversifies the influences on PHP. Watkins points out that, for much of the history of PHP, Zend, the employer of Dmitry Stogov, has been a primary financial backer, and as such has had some amount of influence on the language's direction. Similarly, JetBrains had increased influence during its time employing Popov on PHP."To say they have not influenced the direction of the language as a whole would just not be true...." While Watkins says that everything has been above board and gone through standard processes to ensure so, influence is nonetheless indisputable, and that "The Foundation represents a new way to push the language forward..."
The current RFC process, JetBrains writes, "will not change, and language decisions will always be left to the PHP Internals community."
And in addition, Watkins adds, "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."
For PHP, that number is: two. (According to a post by PHP contributor Joe Watkins earlier this year that's now being cited in Mike Melanson's "This Week in Programming" column.) "Maybe as few as two people would have to wake up this morning and decide they want to do something different with their lives in order for the PHP project to lack the expertise and resources to move it forward in its current form, and at current pace," Watkins wrote at the time, naming Dmitry Stogov and Nikita Popov as those two. Well, last week, Nikita Popov was thankfully not hit by a bus, but he did decide to move on from his role with PHP to instead focus his activities on LLVM.
Also thankfully, Watkins' article earlier this year opened some eyes to the situation at hand and, as he writes in a follow-up article this week, JetBrains (Popov's employer) reached out to him at the time regarding starting a PHP Foundation. This week, with Popov's departure, the PHP Foundation was officially launched with the goal of funding part/full-time developers to work on the PHP core in 2022. At launch, the PHP Foundation will count 10 companies — Automattic, Laravel, Acquia, Zend, Private Packagist, Symfony, Craft CMS, Tideways, PrestaShop, and JetBrains — among its backers, with an expectation to raise $300,000 per year, and with JetBrains contributing $100,000 annually. Alongside that, the foundation is being launched using foundation-as-a-service provider Open Collective, and just under 700 contributors have already raised more than $40,000 for the foundation.
One of the key benefits to creating a foundation, rather than sticking with the status quo, goes beyond increasing the bus factor — it diversifies the influences on PHP. Watkins points out that, for much of the history of PHP, Zend, the employer of Dmitry Stogov, has been a primary financial backer, and as such has had some amount of influence on the language's direction. Similarly, JetBrains had increased influence during its time employing Popov on PHP."To say they have not influenced the direction of the language as a whole would just not be true...." While Watkins says that everything has been above board and gone through standard processes to ensure so, influence is nonetheless indisputable, and that "The Foundation represents a new way to push the language forward..."
The current RFC process, JetBrains writes, "will not change, and language decisions will always be left to the PHP Internals community."
And in addition, Watkins adds, "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."
Re: Fuck PHP (Score:5, Insightful)
Re: Fuck PHP (Score:4, Interesting)
Re: Fuck PHP (Score:4, Insightful)
"I heard once that PHP was terrible. I don't really know much about it, but I can whore easy karma by saying that it's awful with no further justification."
PHP won it's popularity fair and square. Early on, it was even loved by Slashdot. It beat the competition by being better than alternatives at its niche. It continues to beat competitors by simply being better. This is indisputable. Reality has spoken.
I've seen bad PHP projects, but the reasons they were bad weren't related to the language, but how the application was designed. That wouldn't have changed had they used Ruby, Java, or any other thing.
Encouraging inadvertent insecure design (Score:2)
I've seen bad PHP projects, but the reasons they were bad weren't related to the language, but how the application was designed.
At least in the 5.2 era, the design of the PHP language and standard library encouraged inadvertent insecure design of applications far more than the design of competing languages did. If you look up fractal wrongness [rationalwiki.org] in a dictionary, you might see a picture of an elePHPant [eev.ee]. PHP 5.6, 7, and 8 were significant improvements, but then PHP seems to be affected more than many other languages by Max Planck's "one funeral at a time" principle [wikipedia.org]: you tend to keep writing code in the style that was current when you le
Re: (Score:2)
If all you have is that ridiculous "fractal" article, I'm not interested. It's amazing that it seems to be the only criticism anyone has to offer.
Re: (Score:2)
Maybe it's just because it's new and so far mostly only talented developers are involved, but Rust seems to do a decent job at putting severe restrictions on just how shitty your code can be. And at least for me, merely learning Rust has made massive changes (for the better) in the way I write code. Far more so than any other language I've learned before or since. (Though that's not to say that you can't write shitty code in Rust, it's just harder.)
Re: (Score:2)
Rust helps reduce certain classes of errors, but I don't know that it's actually improving code quality. Rust does absolutely nothing to make code easier to read, for example, which I think is a very important factor when evaluating code quality.
Learning any language different enough from what you're used to will change how you write code, and that can often feel like you're writing better code (even if you're not). It's far more likely that you're just thinking more carefully about how you approach devel
Re: (Score:1)
Did you also call yourself a web developer while firing up your copy of Front Page 97?
No, I did my web development in Amiga GoldEd
Re:Fuck PHP (Score:5, Insightful)
The inherent problem if any system is easy to learn, is that it enables novices to use it. PHP and Wordpress suffer from this problem.
A competent experienced programmer can create a secure application in PHP. A novice programmer likely couldn't create a secure application in any language.
Re: (Score:3, Insightful)
That's not the problem. The problem with PHP is that the people who started to write it were novices themselves, and never grew into decent programmers. So there are a large number of rookie mistakes in the design. Some are being written out, slowly, painstakingly, and others can never be remedied without breaking more than half the code base.
It is telling that only two, scratch that, one person really knows what they're doing on the development of the language proper end.
Any competent experienced program
Re: Fuck PHP (Score:2)
This. And then some mkre of this.
For those like me who've never gotten arount to knowing PHP intimately enough to name its shortfalls, there are those who did. [pixelstech.net]
I was particularly amused by the "12 years of wasted investment" excuse. Why yes, I did hear thay one a lot... :-)
Re: (Score:2)
All that article does is highlight the incompetence of the guy who wrote it.
I puts me in mind of a kid looking for reasons his game is better than another kids game.
The parent wrote:
Instead PHP sees more than its fair share of people who refuse to even look at another computer programming language because that would "throw away twelve years of investment in PHP".
No one has ever said this. No one. Ever. The parent is lying because he thinks it helps make his case. It does not. It just makes him look like a lying fool.
Re: (Score:2)
That's a really strong argument that completely refutes the entire article without even having to try at all. My hat off to you, sir!
That's still a helluva lot more than the "it just sucks" nonsense littered all over this thread.
because those words obviously cannot have been truthfully
That's correct. It's completely incoherent. He's obviously making up nonsense. I'm glad you agree.
Re: (Score:2)
This criticism of PHP is really wrong and unfair. PHP's problem if it has one (i agree that it does) comes from the fact that its trying to be something very different today than what it set out to be in the first place while trying to be mostly backward compatible. Its simple a tall order to do well, probably impossible, for the same reasons Microsoft chose not to port VB to .Net for example but rather created a new language VB.NET that borrowed what concepts they could from the predecessor to help people
Re: (Score:2)
Perl, by the by, can be made quite performant but does have all sorts of interesting pitfalls of its own.
No argument there. The issue a bunch of new people in that early .COM era land rush were coming from win/dos and had never seen perl used correctly anywhere. Perl was way less approachable. So nobody (in the statistical sense) wanted to use it.
A "thin wrapper" painting a picture to the programmer of consistency and proper error handling is entirely possible.
100% disagree. PHP provided memory management, value marshaling, name space access and not much else. That is what you call a thin wrapper. Some of the modules did a 'a little more' especially around database access stuff were things like callbacks and whatnot neede
Re: (Score:2)
That's the theory at least. It kind of falls apart when the system that's supposed to shield the novice from the intricacies of security does a rubbish job at it.
Re: (Score:3)
Re: (Score:2)
PHP is a bad language.
Reality suggests otherwise. It beat out many, many, competing alternatives over then last 20 years. It's clearly doing more right that whatever alternative you think is better.
If PHP was even half as bad as some of the folks here claim, developers would be scrambling to find a replacement. The fact that it has handily dispatched its competitors should tell you something.
Re: Fuck PHP (Score:2)
node is the top competitor of PHP, and arguably winning, especially over newer entrants and serving more complex needs.
Re: (Score:2)
It's certainly come the closest, though it fails in one very important area: deployment. One of the biggest reasons I think PHP took over the web was Apache's modphp and how easy it made deployment, particularly in the early 2000's. Well, that and not being perl.
Re: (Score:2)
Not at all. There was a lot of competition in the early days of the web. PHP became popular because it was legitimately better than the alternatives. It used to even be a darling of Slashdot.
If it was really as bad as many people here are saying, shouldn't people be desperate for something better? Why haven't any alternatives gained ground? The reason is obvious, of course. There isn't really anything wrong with the language. It's very well-suited to it's niche.
Did you ever wonder why you very rarely
Re: (Score:2)
Well here's the problem with many things...
The old ones were designed in a different time, and now they have to retain a high level of backwards compatibility because that's their selling point - otherwise you could just switch to one of the many new languages that have been created since.
Anything that is entrenched is hard to get rid of, wether it's good or bad. Finding code written in PHP or C is easy, finding code in $languageofthemonth is much harder, as is finding somewhere to host it or finding resour
Re: Fuck PHP (Score:2)
Notice how he didn't say Ruby but claims to be a "web dev" all right RoR-fanboys, let's Lynch this heretic.
Re: (Score:2)
I know those you listed and use them often, also still like to write backends with PHP. It is just so well suited for the task, great for any kind of data manipulation, even more when the data can be almost random, like with JSON. JSON on C or C# is just painful.
Diversity is not a good goal for software (Score:2, Insightful)
Diversity is a tool, not a goal. Splitting it up for big picture conceptual reasons is a sure way to madness.
https://xkcd.com/1406/ [xkcd.com]
Re:Diversity is not a good goal for software (Score:4, Insightful)
This is not about diversity in software, it's about redundancy in human leadership.
And it's great to have that. A lot of projects don't have enough interest to sustain a high "bus factor".
Re: (Score:2)
A lot of projects don't have enough interest to sustain a high "bus factor".
If we can elimate the "bus factor", I do have a list of team-mates that need to be hit by one.
Succession Planning. (Score:3)
Re: (Score:2)
Also takes management to force certain things to happen, and then ensure that they do happen - like the creation of documentation.
For example, at work our stack for their two areas is almost all in a old IBM language that should've been phased out 15 years ago. I have two coworkers who are in phased retirement (they *will* be gone in 2-3 years, but could call Monday and say "buh-bye") who are the primary and pretty much sole base of knowledge of two major systems. They both have helpers, but they don't sh
PHASP (Score:2, Insightful)
Re: (Score:1)
Re: PHASP (Score:2)
There is an upside (Score:3)
If the team were wiped out then they might be replaced by people who know what a mature language is and stop adding more and more kitchen sinks to the damn thing every six months.
Python has the same problem - once you have people who work on a language as a source of income then, well, they find work to do and downstream has to handle the treadmill of constant updates that have side effects way beyond security patching or whatever.
Grumpy old man? (Score:2, Insightful)
Ok, maybe I'm a grumpy old man, but... I find the continual development of programming languages to be a *bad* thing. Sure, you have to fix bugs. Your compiler/interpreter needs to know about new processors. But continually adding feature after feature after feature? No. Just no.
Look at Java. It was once a fine, reasonably compact language. The amount of cruft that has been added to it in the last several years - trying to make the language be everything to everyone - is just nuts. Just to name one exampl
Re: (Score:2, Troll)
> PHP is no different. It was once a decent language.
PHP was NEVER decent. It was designed by an idiot. The original hash function was strlen() [php.net]?!?!?! You can't make stupid shit like this up:
Re: (Score:2)
The hash function wasn't strlen, the internal function used to determine which memory bucket to place a function in was strlen in order to quickly search for the function. At the time a true hash was overkill and slower.
Re: (Score:3)
the internal function used to determine which memory bucket to place a function in was strlen in order to quickly search for the function.
In the context of a hash table, the function that does this is called a hash function. The only requirements on this function are that it execute quickly and give a relatively uniform distribution of items into buckets. That's it.
At the time a true hash was overkill and slower.
If you're thinking of cryptographic hash functions, this is not a good application. The goal of the kinds of hash functions used in hash tables is to be as fast as possible while attaining a relatively uniform distribution of random inputs to hash code outputs.
Finally, since all in
Re: (Score:3)
Re: (Score:2)
It was designed by one person who thought it will be useful for him. He may not have been a genius, he may not have the time or resources to plan out whats the future of the language. He needed something for himself, and he made it.
It just so happened that many others thought that PHP was useful for themselves as well. And although it was not planned out properly as a language, once it started to take off, it can't just depreciate functions overnight without pissing off alot of people.
Re: (Score:2)
Some people hate the ternary operator in C/C++. If the enemy of your enemy is your friend, then these people can welcome themselves to the PHP fan club for life.
In a sane language:
a = cond0 ? value0
: cond1 ? value 1
: cond2 ? value 2
: value3;
Lemme translate that for the anti-ternary bigots:
T my_data_switch (T x,
bool cond0, bool cond1, bool cond2,
T value0, T value1, T value2, T value3) {
switch (max3(cond0
Re: (Score:2)
Oops. The T x argument is fatuous.
Re: (Score:3)
Re: (Score:3)
Re: (Score:2)
There are real ways to criticize PHP. That wasn't it. Do in no small part to it being totally wrong.
Maybe you should learn a bit about the language before criticizing it?
Can this be officially Good News? (Score:2)
As a part time techie, Christmas is the proper time to recognize the signs pointing to a festive holiday season
Perl (Score:1)
I'd rather write in Perl. Or Fortran. The only thing worse the PHP is Python.
Re: (Score:2)
Re: (Score:2)
It's old, so people who don't know any better think it must be awful.
Re: (Score:2)
I've said it before, Python is destined to be the PHP of the future. Completely misunderstood, heavily criticized.
At least Python is actually horribly designed.
PHP is quarantine language of bad devs/corps? (Score:2)
For most of the internet's history, this has been PHP's domain. When you're a scrambling amateurish unit: PHP. Once you get a budget and a clue, you graduate to something better.
There's a
Relying on a single person for anything (Score:2)
I've seen massive fuckups happen IRL because the one person who has the only key, or authorization to do something is "out sick".
You never want to rely on only one person for anuthing. It's common sense, but the terminal stupidity is baked into our society.
Remember a few years back when a cryptoloon died and ended up taking the only password to a Bitcoin wallet worth millions of dollars to hell with him? And people could not get access to their bitcoin stored in that wallet?
Re: Relying on a single person for anything (Score:2)
Digital-asset exchange Quadriga CX has a $200 million problem with no
obvious solution -- just the latest cautionary tale in the unregulated world
of cryptocurrencies.
The online startup can't retrieve about $145 million (C$190 million) in
Bitcoin, Litecoin, Ether and other digital tokens held for its customers,
according to court documents filed Jan. 31 in Halifax, Nova Scotia. Nor can
Vancouver-based Quadriga CX pay the C$70 million in cash they're owed.
Access to Quadriga CX's digital "wallets" -- an applicatio
Yikes! (Score:2)
His first job should be to update the website [llvm.org] so it doesn't look like it's from 1991.