Top-posting due to mobile conn. I voted no due to flaws introduced in the language by the current RFC.
The performance impact is irrelevant. On Jun 22, 2016 11:38, "Michał Brzuchalski" <mic...@brzuchalski.com> wrote: > Hi, > > I may don't have voting privileges but as an 10yr PHP development > practitioner I can't believe that such big and awesome feature like Typed > Properties minimally can't have enought votes to be a part of PHP language > (26/(26+16) = 62% and that's not enoght to 2/3+1vote). > There are plenty of places where type hinting actually exists and looks > like Typed Properties can be great complement of type system in PHP > language with the ability to still be so dynamic language as it is right > now. > The impact of 0.1% (or even more) of performance IMHO should not have no > significant meaning. > Someone earlier wrote that properties types should be ensured by frameworks > - but that doesn't never happen, the impact on performance while > dynamically type checking inside setters would be few times greates than > this patch impact. Not to mention the fact that the feature itself suggests > good practice. > Without it, we will still have setters/getters hell, and there will newer > be safe frameworks instad there will always be some hack's inside > subclasses or some other ways. > Without it, PHP will newer be aqualed such as Java, C# even Hack language - > there still will continue to be a big gap, due to the lack of type hinting. > Sure you could say start to code in Hack it has type safier system, it has > generics, annotations and other features which from time to time are in PHP > RFC's but most of time they are declined and Hack lacks of great IDE > support like PHPStorm which I use and love because of refactor, code > styling, run&debug etc. > PHP language has poor type safety and IMHO without such patches it will > never evolve into type safety programming language. > > Regards, > -- > Michał Brzuchalski > > 2016-06-13 11:40 GMT+02:00 Joe Watkins <pthre...@pthreads.org>: > > > Morning, > > > > > This wouldn't affect the performance of untyped properties at all. > > > > There are extra instructions in that code. > > > > When the code you have is only 5 instructions, adding 1 more instruction > > makes a 20% increase in instructions ... > > > > That is what we are looking at in these micro benchmarks; The number of > > instructions is so small, that even the small difference is measurable. > > > > Of course you can measure the difference, and obviously there are going > to > > be more instructions, but we should only care about what effects real > world > > code. > > > > This doesn't effect real world code. > > > > Cheers > > Joe > > > > On Sun, Jun 12, 2016 at 2:03 PM, Rasmus Schultz <ras...@mindplay.dk> > > wrote: > > > > > Pretend I know (basically) nothing about how PHP was implemented, > because > > > I don't ;-) > > > > > > But I don't understand why regular property updates should be affected > by > > > this at all? > > > > > > If I had to implement type-checked properties in plain PHP, I would do > > > something like this... > > > > > > /** > > > * @property int $price > > > */ > > > class Product > > > { > > > private $_price; > > > > > > public function __set($name, $value) { > > > if ($name === "price") { > > > if (!is_int($value)) { > > > throw new UnexpectedValueException("..."); > > > } > > > $this->_price = $price; > > > return; > > > } > > > throw new RuntimeException("undefined property {$name}"); > > > } > > > > > > public function __get($name) { > > > return $this->{"_{$name}"}; > > > } > > > } > > > > > > I would have guessed an implementation of type-checked properties would > > > work in much the same way. > > > > > > Of course, it wouldn't use "_" as a prefix for the underlying property, > > > but some other magic byte, much like how private properties are > > internally > > > prefixed with a magic byte, right? > > > > > > This wouldn't affect the performance of untyped properties at all. > > > > > > Of course typed property writes would be more expensive, but that's to > be > > > expected. > > > > > > > > > On Sat, Jun 11, 2016 at 3:45 AM, Yasuo Ohgaki <yohg...@ohgaki.net> > > wrote: > > > > > >> Hi Dmitry, > > >> > > >> On Fri, Jun 10, 2016 at 9:37 PM, Dmitry Stogov <dmi...@zend.com> > wrote: > > >> > I hardly worked on implementation of this patch for a week, but I > > still > > >> don't like it. > > >> > > > >> > It makes 15% slowdown on each property update in existing PHP code > > >> (without types), and I don't see a way to improve this. > > >> > > > >> > Update of typed properties is going to be even more expensive. > > >> > > > >> > Benchmark results are included into RFC (and not changed with the > > >> latest version of the patch). > > >> > > > >> > > > >> > -1. > > >> > > >> If we are concerned about performance, DbC would be the only solution > > >> for this kind of problem. i.e. Validate fully during development, do > > >> minimum validation on production. DbC helps type inference also. There > > >> may not be enough time for discussion, but do you think there is > > >> enough time for implementation? I suppose implementation is > > >> straightforward, so it might be OK to have RFC w/o implementation. We > > >> have 2 options anyway. It's waste of time for having 2 > > >> implementations. Would you like to proceed the RFC for 7.1? > > >> > > >> Regards, > > >> > > >> -- > > >> Yasuo Ohgaki > > >> yohg...@ohgaki.net > > >> > > >> -- > > >> PHP Internals - PHP Runtime Development Mailing List > > >> To unsubscribe, visit: http://www.php.net/unsub.php > > >> > > >> > > > > > > > > > -- > pozdrawiam > -- > Michał Brzuchalski >