Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:102747 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 2228 invoked from network); 11 Jul 2018 09:09:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Jul 2018 09:09:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=vsuraski@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=vsuraski@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.169 as permitted sender) X-PHP-List-Original-Sender: vsuraski@gmail.com X-Host-Fingerprint: 209.85.220.169 mail-qk0-f169.google.com Received: from [209.85.220.169] ([209.85.220.169:44497] helo=mail-qk0-f169.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 6B/13-15421-C29C54B5 for ; Wed, 11 Jul 2018 05:09:00 -0400 Received: by mail-qk0-f169.google.com with SMTP id v17-v6so10602089qkb.11 for ; Wed, 11 Jul 2018 02:09:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ATNaUtw5cG7Ngd3e4b18eipnNWM9XwdJM0hanQHKzkI=; b=Q/pz8ofm2fyu6cn0nJ7fRIbLmOTet4IDsN253458nD97BDDgnSgaXzIViFW1gfAXpF AeqBnAjBPQpeYw7mszaWGmLQa5hX/moJCUL/ShRIn5+Ju3WEmSVfRt1Kc7ux4Wgn0UJu 7+K8q5+DvUgAJrz/ajL1MuBEostl6VHDCq72T/TMbyVMSXITzO/ziXXNvw7uJ1tc484z zO12fi+G3d5OeFHDOuStRxbOpP52kpQRDCPLWwgjQ/Nfnx95hXuBOJJyda/KN+f0fpgO QdKhnE7GSeJDIAy+1nELV71CSP/nPdpUH510sW2HKoG6DtmruJENrPEEjZEu0lH3rvJS lgFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ATNaUtw5cG7Ngd3e4b18eipnNWM9XwdJM0hanQHKzkI=; b=YXdKJqbZ2jW2NtHEybbbMHjMG5NfBKLPix/tDqMN+djzwhqz6L1BebLTebdH3y7zc6 0d/u+Lj5dM1sZ8Tm2sn8qG09CgCO36c/CiIWvvUREAv+HurXF8MMNgFakKJn99yuFebA vMZOE5JkYNqv5bLO/tdEeL7qKBZRFoIL3xnFZlTiMxTnwN0hNYG3R9MRKNoRCM4aJ5uc VpjsL2Zj+IRFDo6U94FiRriEPc6OyJkjidh2dXaghDyzp5J33Xn1YYeMb3ToR3n8GXBn wTcNhQ5OHFPIARL17eowEwc28XvoBVfQh+ZC19aNDG4K/iHCXy8VWUizp0T3cg+E03OE +aHQ== X-Gm-Message-State: APt69E0QJUwrV2Mj1Nh2YQoBZflryqbUSoIJTvUIehL43fQTQ4IVKnYb +cO1BAHJ7DQA9XbwLNwilCyt6IIisQEsb77DowPyC6ARZ8A= X-Google-Smtp-Source: AAOMgpeheq7l0hV2v6bocATuE9QJQ44QUB/sFn0fHLksQVvBbRJuDtgLPxUUpcdtn+7YCbTIF5InwQwAhVK4nEgbBrk= X-Received: by 2002:a37:a6c6:: with SMTP id p189-v6mr25490438qke.9.1531300137078; Wed, 11 Jul 2018 02:08:57 -0700 (PDT) MIME-Version: 1.0 References: <8062036.rYxh8IFiYi@vulcan> In-Reply-To: <8062036.rYxh8IFiYi@vulcan> Date: Wed, 11 Jul 2018 12:08:45 +0300 Message-ID: To: Larry Garfield Cc: Internals Content-Type: multipart/alternative; boundary="000000000000b715e30570b59857" Subject: Re: [PHP-DEV] [RFC] Typed Properties From: vsuraski@gmail.com (Zeev Suraski) --000000000000b715e30570b59857 Content-Type: text/plain; charset="UTF-8" On Tue, Jul 10, 2018 at 10:19 PM Larry Garfield wrote: > While the marketing angle is valid, Zeev, it seems predicated on the idea > that > there won't be any other major new-and-cool features developed between now > and > 8.0. I'm reasonably confident that someone will find some user-facing > exciting thing to improve between now and 2020. I know some people have > plans > they're already working on. > We can agree to disagree, but effectively turning PHP into an optionally-typed language - which Nikita's patch does a HUGE step towards (IMHO a much bigger one than scalar type hints did at the time) is more or less a singular event. And no, I'm absolutely not encouraging us to come up with additional language-changing features just for the sake of marketing - there's a world of difference between timing the rollout schedule of what we intend to roll out anyway, and adding extra bells and whistles just to make the new version attractive. Conceptually, as Nicolas and you have both hinted at, PHP 7.x is the series > where "typing got real". From a user-facing/marketing perspective 7.x is > all > about performance and typing. That's the through line. Including typed > properties in that makes logical sense, marketing-wise, and would be a > fitting > capstone to the 7.x series in that regard. > I didn't hint at that, at least not intentionally (I'd say 90-95% of the feedback I've seen for PHP 7 was about performance, and 5-10% was pretty much everything else, but that's beside the point). What's on point is that new or improved capabilities are the draw into new versions. The more (sensible!) of those you have, the better. Wasting our 'ammo' on the 7.x line at this point is, IMHO, a mistake. I guess I have much higher levels of self control and patience - as this is precisely what we're not going to do with the stuff we've been working on (JIT, FFI, and phpng in the past). > However, mixing "no new features in 7.4/8.0, just the engine changes" with > "we > need a big showy thing in 8.0 to help sell it", er, feels like a > contradiction. Maybe it feels that way, but it really isn't. I'm not sure whether you've had the luxury of contributing to the PHP engine, but working on two simultaneous active branches with substantial data structure differences is an unholy mess (it's also way, way worse than working on two branches of an average PHP project). Even if all of the developers are focused on PHP 8 it's going to be a remarkably difficult feat to achieve. Throwing in another parallel version that we'll need to work on at the same time is shooting ourselves in the foot. It makes it sound more like "borrowing" a feature from 7.3 > (typed properties) for 8.0 for purely marketing purposes, and then also > blocking any other features, so that we know 2 years out "the only > interesting > thing in 8.x will be typed properties, because that was written when 8.x > was > still just a twinkle in the eye but we sat on it". That feels very > disingenuous. > Please don't put words in my mouth and then call them disingenuous :) I did not say we should 'block any other features'. In fact, in my blueprint for PHP 8 - I said it's clear to me we're likely to see additional ideas that will be proposed for PHP 8. It's an extra feature release that will divide our resources that I'm arguing against. My logic is quite simple: 1. Something as big as Typed Properties shouldn't be a last minute, rushed RFC. Really - any RFC shouldn't - but in particular major language changes. 2. We should not have a 7.4 that divides our resources(*); Much like with 5.6 -> 7.0, we should focus on one feature version at a time. 3. We're better off saving Typed Properties for 8.0 as another draw - and we can also make it better by that timeline (a comprehensive typing solution, and not an incremental one). I am sure that's not your intent but those two statements together > ("minimize > features for 8.0" and "save this feature for 8.0 for marketing") just > don't > fit together in my mind in a nice way. > Where did I say we should minimize features for 8.0? Zeev --000000000000b715e30570b59857--