Skip to content

Instantly share code, notes, and snippets.

@ircmaxell
Created January 9, 2013 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ircmaxell/2974832918a531756f3e to your computer and use it in GitHub Desktop.
Save ircmaxell/2974832918a531756f3e to your computer and use it in GitHub Desktop.
Rant to Stas
Stas,
On Wed, Jan 9, 2013 at 11:58 AM, Stas Malyshev <smalyshev@sugarcrm.com> wrote:
I seriously hope it never comes to this in PHP
Would you shut up with this rhetoric already? All it does is show that you're completely and utterly out of touch with the reality of modern development.
Frankly, I'm getting sick and tired of seeing these recurring themes of "PHP is not java" and "I never want this". If you never want this, then don't contribute to the discussions at all.
If you have solid feedback to provide, then provide it. But saying "We're supposed to be simple language for doing cool stuff on the web" shows you have no idea what people have been doing (or don't want to acknowledge) with the language for the past 5 years.
This is a huge problem (which is why I'm replying rather than just ignoring your comment). It affects everything from the development of new features to the general morale.
If you don't like a proposal, then say what the problems are. We're mostly adults here, we don't need to talk in absolutions to understand each other. If people want it, then they'll vote for it. If not, they won't.
And that brings us to the root of the problem. Discussion like this is due to the fact that there's no clear vision for PHP. Each participant brings their own concept and vision, and treats it like it's everyone else's vision as well (which is the exact reason for your reply). The need for voting is a byproduct of this lack of vision, not a requirement in its own right.
For all the problems that a Benevolent Dictator brings to a project, this is not one of them. This is a case where a dictator that sets the vision in clear and unambiguous terms would actually improve the process quite significantly. Instead of worrying about voting or everyone doing what they want, there's a benchmark to measure proposals against.
For example, imagine these different visions for PHP (which I know for a fact are shared on this list):
1. "PHP Should Strive To Be A Full Featured Object Oriented Language".
In this context frame, things like annotations, mixins, generators, etc become the focus. As would moving the error handler to exceptions. And a host of other changes (boxing primitive types when treated like an object, etc). Adding functions like array_get_whatever would be frowned upon...
2. "PHP Should Remain A Procedural Language WIth Some OO Features"
In this context frame, a lot of the stuff I said above goes away. And adding new array functions would be the norm. And it's plain to tell that exceptions shouldn't be implemented for errors.
3. "PHP Should Be Implementation Neutral, and Support All Paradigms Equally".
This is as close to the current implementation as we currently are. We support procedural, OOP and functional constructs. But how deep does it go? Where's the line.
PHP NEEDS a vision. It needs something to guide development. Not everyone will agree with it. And that's the point. It levels the playing field for contributions and discussions. Rather than every developer playing for themselves and saying "I hope this never happens", it puts it in the context of "I don't believe this fits our vision". Note the difference in tone between them.
This can still be done with the current voting mechanism, but IMHO voting is a symptom of the disjoint project in general. We need to unify the project, not put in place more wedges to drive it apart. Does that mean I think we should abolish voting? Not yet. It serves a purpose, but I think we should be working to fix the problems with the inter-team communication and interaction rather than trying to bandaid it with RFCs and votes...
It's an ongoing joke about how abusive and unproductive the internals list is. I for one am sick of it. And rather than keeping ignoring it (or walking away), I'd rather see it fixed.
Anthony
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment