On Tue, Jul 10, 2018 at 10:19 PM Larry Garfield <la...@garfieldtech.com> 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