Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:72973 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 22773 invoked from network); 6 Mar 2014 10:54:10 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 6 Mar 2014 10:54:10 -0000 Authentication-Results: pb1.pair.com smtp.mail=julienpauli@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=julienpauli@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.128.176 as permitted sender) X-PHP-List-Original-Sender: julienpauli@gmail.com X-Host-Fingerprint: 209.85.128.176 mail-ve0-f176.google.com Received: from [209.85.128.176] ([209.85.128.176:40517] helo=mail-ve0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E5/C0-18500-1D358135 for ; Thu, 06 Mar 2014 05:54:09 -0500 Received: by mail-ve0-f176.google.com with SMTP id cz12so2377056veb.7 for ; Thu, 06 Mar 2014 02:54:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=S+hicWDNEbEF+OR6i7vXuOvCFAamuduT02kV33Tb7iM=; b=CaqupGNJUFsTYJOK/CaJwtqjYeIidFQ97umt+4jYptr3ApsD4rqeBxSNlujc/adD9W BEcdOxdXWIHpKniFlvWWnmlEso0frgYFPixivhYZCSRlOc0+5RRCtBX23LApKd0FcgBL lqKrlW7V894DfNHkuH7Wy09m145Uc7zKd9pyToNSSFO3PZgitecsAmY/SPIRtG8yIBko wz5c7WlJQ8mH1T57BQc9D4nRgUcx7LQCUQ9+EATZpujvOQ2iXlwJ4BZ47O2vAKv+Fl6j uIYesm5jriXSvAp6mhcqWCM0rixGppZWnxeqAiEl5lkjh7jYf5iUssEDc6ha1lg0F4fE dXTQ== X-Received: by 10.58.248.228 with SMTP id yp4mr45669vec.35.1394103246591; Thu, 06 Mar 2014 02:54:06 -0800 (PST) MIME-Version: 1.0 Sender: julienpauli@gmail.com Received: by 10.221.8.129 with HTTP; Thu, 6 Mar 2014 02:53:26 -0800 (PST) In-Reply-To: <1394067953.24706.30.camel@guybrush> References: <53176168.50305@lerdorf.com> <1394067953.24706.30.camel@guybrush> Date: Thu, 6 Mar 2014 11:53:26 +0100 X-Google-Sender-Auth: fKaPPGrFXGattokTF3X60UMMGCw Message-ID: To: =?ISO-8859-1?Q?Johannes_Schl=FCter?= Cc: Maxime Veber , Pierre Joye , Rasmus Lerdorf , PHP Internals Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] PHP6 thoughts about Engine changes From: jpauli@php.net (Julien Pauli) On Thu, Mar 6, 2014 at 2:05 AM, Johannes Schl=FCter wrote: > On Wed, 2014-03-05 at 21:59 +0100, Maxime Veber wrote: >> Hello, >> >> I totally love the ideas about BC and cleaning everything. That's what P= HP >> need and deserve. > > I assume you are talking about userspae APIs, the often quoted needle vs > haystack etc. If people think this is needed it is trivial to provide > aliases and "fixed" versions for these from an extension (and/or > userspace lib). As nobody has I assume that's more talk than need and > people got accustomed easily. > >> Can you be more specific about what you want to change in "Cleanup API a= nd >> dead code" part ? > > The mail was about API implementation where there are grown APIs where > parts might not be needed anymore. > >> And na na, it's not only for an hypotetic php7 version. We change things= or >> we do not change ! >> After all, php move great with minor releases... ! > > There are two requirements > > * people who do > * thought about backwards compatibility > > The first item is hard, the number of people actually doing cleanup > tasks is a small fraction of our relatively small contributor base. So > going by Julien's list, the expected timeframe and the available work > power doing all those things is almost impossible. > > Secondly, breaking too much at once is not an option. "Compatibility is > a feature". for one there is lots of legacy code and knowledge, secondly > it tells users that they can invest in PHP and won't get too much update > pain later. See also the "success" of either Python 3 or Perl 6 which > "fixed" too many things giving them low adoption. This by no means we > shouldn't fix and improve things but that's a continuous process. (my > favorite example: register_globals took literally 10 years from us > starting to promote alternatives till we removed the option) > > >> If we want to change, let's to what have to be done *now* ! > > We are in constant change. There is barely a language as commonly used > as PHP which changes so rapidly. > > johannes Huh, yes, sure, my ideas are a little bit big in dev time, I fully understand this. However, they are written now :-) I fully agree with Johannes and Rasmus by saying that if we break too many things at the same time, we're never gonna reach our objectives and this will lead to another failure from us. Unacceptable. We should take the big cake part by part. Our release process https://wiki.php.net/rfc/releaseprocess allows us to break BC in ABI and internal API in minor releases. So we could have a PHP6.0 with some ideas, 6.1 with another one, 6.2 again, etc... knowing that we cannot break BC in external API (PHP userland), we then should concentrate our thoughts on this critical point now. There is one year gap between every minor, which is just enough (IMO) to add a new "big" internal feature. Once more, I'm talking about INTERNAL changes here. We can make those happen into minors (according to our release process), like we did in 5.4, massively changing the VM compared to 5.3. PHP6.0 should prepare the code base for future 6.1, 6.2, 6.3 etc... each one adding another *internal* feature. External API would already have been prepared/designed in 6.0. So we have to concentrate on "what features do we want in PHP API (external one) for the to-be-long 6.X series" right now. Because after, we won't be able to change the PHP userland API anymore. I'am also one of the guy thinking that we have to narrow our timeframes for majors. Majors are about breaking external API, for PHP users. 10 years is too big, something like 5 years seems more reasonable. We also have to master our communication. We all remember PHP4 to PHP5 pain, at this time, but things have changed. PHP is nowadays much more professionnal, and our distros maintainers are doing a much better job than 10 or even 5 years ago. We should not be taken as responsable for the slowness of upgrading PHP worldwide, but we should always think about easing it. So to sum things up, I'm not against moving slowly but safely, that's the way to move. We have a clear view of our release process, one minor per year where we are allowed to break internals and refactor internals and add new internals stuff, one rev per month for bug fixes, and one major every {{- we don't know but 5 years seems like right, why not vote this part all together? -}} Julien.Pauli