Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:94202 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 50025 invoked from network); 22 Jun 2016 14:12:30 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jun 2016 14:12:30 -0000 Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.192.169 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 209.85.192.169 mail-pf0-f169.google.com Received: from [209.85.192.169] ([209.85.192.169:35577] helo=mail-pf0-f169.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F6/50-43024-DCC9A675 for ; Wed, 22 Jun 2016 10:12:29 -0400 Received: by mail-pf0-f169.google.com with SMTP id c2so18200161pfa.2 for ; Wed, 22 Jun 2016 07:12:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=BU7Z53u7nb8RDB2IyDzRG1mmDOHivlfuSY7Noe9/56E=; b=q9hOeI0wtpNpRPEEiWNWU/pmi+kHfhUm3amL4nySSqYYbk9tw0qiUPjKg68HOU2u0A fxFhiogpCNSG3WRCuQMxp0pasqWPCsBMTtre03D16ZejK8zycBBdPon9nM2NaLOvL28m 8trs5E9Lm+SkZaaa0NX3zi9HDz21fUu/WTesZ8sRRftN4Bxe1pMNoTnY2EPz1C6QD4Dr RfLc41lHi0dNFnY8Bl8S3ESuDK0hljJTBlx/dnd9Mv3z/t1KswkUYWkjy5/BnaKBeeXL YhJ25jcXOiFOYE8OnzYEiz+q8ZhGyPXVs/jntFEo5jNMyoPYCCCGzPJx32bM+bb9afhA a5Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=BU7Z53u7nb8RDB2IyDzRG1mmDOHivlfuSY7Noe9/56E=; b=ID+IxO1eKOX4V8NAjvk44cbAp9VyGSKQvB/HGntXlMZwpTSWeJAWuGnQMGBExGofBy O1Tn4GwXGTAzT2W5vSir67NRFwW/Rb/rU3Prc5kA4nFjZg+t+fdVX3uLLXtXcKsUaQSh sZ70qVuYkv6ZYIhcv6OXZyj32vvjDdUyTs7/0bfokPRrnxpFWlmZZgFPz+dhVAaxehY2 Dio18KtQXSlJV9phnHhuaqesBvc1VaomEoI4Cfa+OxSigoY3fkP8RkNnYRkp2eOhmUng QFQurhIRxftSAzr5UBt+zlSaegc6BCrUr80IAe+EyyY3rqkxkegc8DxJnN+q+RJUXoxv 5IWg== X-Gm-Message-State: ALyK8tI/q/qFpgtxO/sTq10KktOgIM+BRc0NAcgTJqbwhyIVBECgM7wF/dJHdQ4K9ZUSeQ== X-Received: by 10.98.86.151 with SMTP id h23mr34961630pfj.137.1466604745978; Wed, 22 Jun 2016 07:12:25 -0700 (PDT) Received: from [192.168.0.98] ([93.188.182.58]) by smtp.gmail.com with ESMTPSA id 69sm157332pfc.90.2016.06.22.07.12.23 for (version=TLSv1/SSLv3 cipher=OTHER); Wed, 22 Jun 2016 07:12:25 -0700 (PDT) To: internals@lists.php.net References: Message-ID: <9ec2ea69-cf82-47a3-883c-c45e10176fd3@gmail.com> Date: Wed, 22 Jun 2016 15:10:16 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] [RFC][Vote] Typed Properties From: rowan.collins@gmail.com (Rowan Collins) On 22/06/2016 10:37, MichaƂ Brzuchalski wrote: > 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). Bear in mind that this vote doesn't mean "PHP can never have typed properties", it means that "this particular approach to adding typed properties is not considered to be the right thing to do at the present time". If the vote had been unanimously against, it would have been hard to revive the proposal, but that's clearly not the case here. I agree that type safety would be a good direction for the language to go in, but I think we need a decent plan for how exactly that would work, rather than adding piecemeal features that introduce awkward edge cases and unintended consequences. (The restriction on referencing typed properties is my go-to example of this.) Incidentally, a crucial difference between PHP's type hints and those in just about any other language is that they are effectively assertions - dynamic, run-time checks (and sometimes implicit coercions) - rather than static, off-line analysis. You mentioned Java, which is a compiled language so provides full type safety at compile time; Python and Hack both consider type checks as metadata used by offline analysers, and ignore it at run-time. Perl6 I think does some run-time checking, but I couldn't find any documentation explicitly laying out the principles. That gives us a unique set of problems when designing them, not least in terms of performance. Regards, -- Rowan Collins [IMSoP]