To Zeev and the rest of internals, I know this will be a long e-mail but I'm not a guy who goes to conferences (I don't have money for that), I've been into seven companies until now, each with various use cases for PHP and I'm trying to contribute to some open source projects from PHP scene.
You say that most of the users don't speak so I'll try to speak as my previous attempts where ignored... Let's start with the broken image about PHP 5.4 and adoption rate. I'm not sure where, but today was given the argument of not doing userland BC breaks while in 5.x branch, yet you just did that for 5.4 and now you use it as a reference for adoption rate. PHP 5.4 adoption rate is the best indicator but not for the number of people who like new features but rather for the number of people who can afford to run without APC or have clean code. Why do I say that? Consider this: since there's no common API for XCache/ Zend (forgot it's name) and other opcode accelerators/cachers I can't upgrade to use another alternative. And who's to say they don't suffer from their own bugs? Do you know what happens when I ask my NOC guys to install some new extension? Things like: is it stable? Will it crash and burn my very sensitive yet stable servers? Is it faster/slower that the alternatives? Testing the changes alone will make my company waste more money that having me coming up with clever ways to provide workarounds or design things for them so that upgrades like this can be avoided. PHP 5.4 broke yet another thing. You've removed usage of register_globals. That's a great thing but you've locked out many shared hosts as they can't upgrade without making the customers upgrade their code first. That might not even be possible for some people. I happen to maintain such a badly written application, but it's working like that since 2002 and I can't believe that my employer will ask me to upgrade it at some point to make it compatible with 5.4+. But I can do that, can you say the same thing for the rest of the world? I'd love to use traits in projects, there's great usage for them, especially when you go and write OOP code, the proper way... Can I do it? Sure, I have a VPS which allows me to experiment but that's about it. Thank God, you'll stop supporting 5.3 next year which is actually the reason for why I'll be porting the application to 5.4, if possible, if not, 5.3 then 5.4 another time ;) Why do I need those new features in the first place? Just because I might be experimented enough in order to understand the benefits from having them and how to use them to their true potential. I don't understand feature X? Well ok, I need to read more about it. But some smarter guys that make frameworks, ORMs, CMSs and other large adopted and used PHP applications understand them, want them need them to provide better code for people to use, learn from and write. You think that majority of people write PHP in a professional way? Could very well be true, in your countries, in mine, the focus is on getting things done, nice if possible, if not, don't sacrifice the business time to write nice code. I still manage to write nice code under these conditions because I want to do more in life that be a simple code monkey. Every monkey can write code, not every monkey can think beyond the next echo they'll write. Then there's Wordpress. I'm still waiting for a day when the code base from Wordpress won't be given as a negative example but Wordpress runs on a biiig number of sites. Do you really really want the opinion of users about a certain RFC? Put up a pool on the website and promote it on the frontpage, Zend mailing list, forums and so on. Announce it at least one week before it runs and run it for two weeks. That should prove accurate enough from people interested in the language itself. Those who are not interested shouldn't count anyway. How that RFC will be implemented is obviously another thing, but it should be contained by internals not subject to public voting. But the core needs more contributors. Yes, I could be one. Why I'm not a contributor to the core? Well here's a couple of interesting things: - I haven't learned/used C until now, I've learned Pascal in highschool, then Java at university and I've done programming in PHP for seven years now. Not once I've needed, wanted to learn C (until today that is); - my time outside of work is limited and have to split it up between many things (like most of you) - I need to learn more PHP, more design patterns, more systems architecture, more anything that's not related to C but rather systems, patterns and anything else that I can so that I can write better software for my employer, keep up with new people coming after me, provide solutions that save me code, my employer money and is easy to understand by people that will maintain after I'll leave my job; - PHP is written in C not in PHP which means that unlike people that write C all day, for me C is another way of thinking about things, way different that my main language; - PHP core is not documented properly, people have said this for a long time now. Even if I'll get a grip of C in the next month, there's no reason to say I'll be able to write something for PHP in the next 3-6 months; Here's another thing that Rasmus said. It sounded sort-of like this: If companies about a certain size would have at least one guy that knows C and help out fixing PHP bugs that they encounter/grow the core then things will be better. I agree but then there's the cruel reality where such a person will be useless from business pov for like 99.9% of the time. Would you hire me at any company to learn C, which I'm confident I'll do pretty fast, then keep me working on PHP core? People who work on Facebook couldn't get their patches in, for various reasons, but they weren't helped as well to get them done (https://wiki.php.net/rfc/zendsignals for example) and you want a random organization to think it could help PHP when your biggest user can't? Also there's the issue that since PHP is so simple to pick up by anyone, there's always plenty of people to replace you when you start making demands on salary (I think this applies very well everywhere but mostly to PHP). There are far fewer companies who actually appreciate good quality code and maintainability versus: we'll hire 3 cheaper versions of you and they'll figure it out in the end. And to be honest, it's quite exhausting to be as productive as 3 people when you also try and to things the right way in the same amount of time. I don't think I've said it enough time but there's a thought: - what if php 5.5 will be the last 5.x branch? - what if after 5.5 stable release, every core contributor would take a deserved holiday then get in touch with community and people like Fabien (Symfony), Matthew (from ZF), Benjamin (Doctrine), Drupal, Wordrepss, and so on and so forth, to see what are their needs, where the language should get the changes and who can help. - what if after that, people would start on PHP 6, not 5.6 and build a better documented core? Not all the features should get into 6.0, but having a clear roadmap would help the life of those projects a lot. It would also help the life of companies and users. Having a clean core would also mean people will be able to contribute easier. You clearly have the expertise now to see what went wrong in Zend Engine2, make Zend Engine3 better. It's a big gamble to take, I know, I'm aware of it, but without a solid foundation you can't build good things for a long time. And you'll get into issues like the current ones when you say: X feature will make the language harder to maintain and so on but because at the end of the day there's only a bunch of people that actually understand what happens in the core and rest are left outside, wondering how much time can they really invest in making things better. And in the end, if people who want to add more features to make the language better, easier to use and develop better applications should be allowed to get that as they will also improve the whole lot of people coming after them. Thank you! core contributors for the really hard work you've done so far for PHP, I can't express enough how much I really appreciate your efforts so far. Best regards. ---- Florin Patan https://github.com/dlsniper <http://www.zend.com/en/yellow-pages#show-ClientCandidateID=ZEND013894> On Mon, Jan 28, 2013 at 7:07 PM, Zeev Suraski <z...@zend.com> wrote: > > -----Original Message----- > > From: Clint Priest [mailto:cpri...@zerocue.com] > > Sent: Monday, January 28, 2013 3:15 PM > > To: Peter Cowburn > > Cc: Zeev Suraski; Pierre Joye; PHP internals > > Subject: Re: [PHP-DEV] Voting periods > > > > > > On 1/28/2013 6:12 AM, Peter Cowburn wrote: > > > On 28 January 2013 12:03, Clint Priest <cpri...@zerocue.com> wrote: > > >> If you're still worried about this making it in, don't worry. Nikita > > >> and I have given up, to the determinant of the community. > > >> > > > Then please close the voting. > > Since there is no "maximum voting period" and 5.5 is not in a feature > freeze yet, > > I left the voting open, in case some people decided to read the patch > and change > > their minds. I see no reason to close the vote unless I'm required to > do so or the > > game is up. > > I think there's an almost-consensus that voting periods need to be well > defined. Two reasons: > > 1. If you care enough about it you should be able to vote about it within > one or two weeks. > 2. Leaving it open ended gives the RFC proposer too much power. He could > simply end the vote once it happens to reach the necessary majority. > > So I'd say yes, you're required to end it, either immediately or at most > at the end of the two week boundary. > > > asking for this feature (present in every other modern > > language) for 5+ years. I spent two years going through the *tedious* > RFC > > discussion process, wrote the software, Nikita made it even better to > have it > > shot down without even reasonable explanations as to why "from most > people." > > There are two very reasonable explanations, and it's fine you may disagree > with them: > > 1. It makes the language more complex. > 2. It makes the language more difficult to maintain. > > In both cases, the people who opposed it thought that the gain from adding > it doesn't outweigh these loss in complexity and maintenance overhead. > > > Some are resting on the idea that the ROI isn't there just aren't > listening to the > > community. > > The vast majority of the PHP community is a silent one; These people > don't participate here on internals; They don't attend conferences; They > use it - the vast majority of them in a professional manner - and they > picked it because they like it the way it is, not because of what it needs > to become. For every person that subscribes to internals, there's a > thousand (yes, a THOUSAND) people who don't (it's several thousands vs.~5 > million). In fact, they're not completely silent. They speak in volumes > - PHP 5.4 is used in less than 1% of the sites using PHP today, and even > the relatively revolutionary 5.3 is still a lot less popular than 5.2. > The new shiny features are not all that interesting for most people. > > The community that participates in internals isn't necessarily > representative of the community at large. > > Zeev > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >