Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:91570 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 35754 invoked from network); 9 Mar 2016 10:12:30 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Mar 2016 10:12:30 -0000 Authentication-Results: pb1.pair.com smtp.mail=arvids.godjuks@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=arvids.godjuks@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.217.172 as permitted sender) X-PHP-List-Original-Sender: arvids.godjuks@gmail.com X-Host-Fingerprint: 209.85.217.172 mail-lb0-f172.google.com Received: from [209.85.217.172] ([209.85.217.172:34508] helo=mail-lb0-f172.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EF/B7-15119-D07FFD65 for ; Wed, 09 Mar 2016 05:12:29 -0500 Received: by mail-lb0-f172.google.com with SMTP id xr8so56454556lbb.1 for ; Wed, 09 Mar 2016 02:12:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4s1kBN090NRRCSAZSw6PkKETSDdbGAB30VLRDFp7V1A=; b=vdsGkqNkZiuhrMO2NzrezEPZdVC6Nxk7blrpjCVa1QBKl1fD3+dAWNpr9RM4kHlx01 mAwAtshK+r76HIXx+/sIJ5QWSobpMiKSie8ROW7AvDLqiQIUPGXRVg1fAYgGQdRKJyqO UKcXIN/SO+JCfWDWbLQEwiWHFkPNL2r0baqLUT03qLRqHt6e60ALKEZ+R5oXXDE9oJyj QA7nd+w91u/RboHXremv1Ik5zzGvXcOYKJVBL0+NTlyhOJG4+uu1WGYLCoLqfmekvw6P Y+oJ5J5LVs0KS2+Hjc33O45kwr+bcBP8ba/0pQhFBSQz+Ha9sD5FYfgdRY1qewm+urWZ b/Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=4s1kBN090NRRCSAZSw6PkKETSDdbGAB30VLRDFp7V1A=; b=Fp/RfaW69FY4TrVHrmS1BYMQK1kK4wc/iEWrOkdCzRhqfOt2c0+0yE9x2X5TG8zv0g ZkDJvlyohE9pUBVzNa4WaF1hWROIbK2dfB5MsQEB+0r0V1pTbam6keyL3QJJnaTkwWhp Ms0zUlcO/o00bUFB55T6YQf6LaE0JpelrkzHfDYv2nXSvKLa9eUbXTNzXJ9MhyucF4Sx HG0GtCC+FR5jU8q4imRardn06aFBg34nVA+Xwr2Xnr8LcRYR4yurLxkRZ/G+gG0E084l gqefrtLdSgKnpImA2hWz88Zt1INEhGEidlHmuSLgKLlKdiAyVaNndWz/HycHHIt+GIQO IN1Q== X-Gm-Message-State: AD7BkJIkrl9odvUeQ6UKJcX+JNKBGt0Gi1WH6iI5cSkJazT+j5csV2GRuNH/PNl6UuAmtw4MwypGwYx2nC8IlQ== X-Received: by 10.25.146.145 with SMTP id u139mr11916777lfd.113.1457518346195; Wed, 09 Mar 2016 02:12:26 -0800 (PST) MIME-Version: 1.0 Received: by 10.112.175.5 with HTTP; Wed, 9 Mar 2016 02:12:06 -0800 (PST) In-Reply-To: <2D.96.15119.232FFD65@pb1.pair.com> References: <1F.91.55238.41F10D65@pb1.pair.com> <56D42CD3.6020602@gmail.com> <56D57DF4.8000906@gmail.com> <56D5D2AD.6070805@gmail.com> <56D5DDA6.4080607@fleshgrinder.com> <40.73.36499.548B6D65@pb1.pair.com> <56D6BBD0.5010505@gmail.com> <56D73386.3000903@fleshgrinder.com> <86.68.21983.A2508D65@pb1.pair.com> <56D86C00.6000904@fleshgrinder.com> <12.FB.08749.AF759D65@pb1.pair.com> <56DAC26C.50304@fleshgrinder.com> <56DAE00F.2030203@lsces.co.uk> <56DAF480.7030508@fleshgrinder.com> <0B.E0.29316.019CBD65@pb1.pair.com> <56DBFDB5.1010806@fleshgrinder.com> <43.5B.29316.A864DD65@pb1.pair.com> <56DD64F5.5010503@gmail.com> <56DEA829.5030903@gmail.com> <2D.96.15119.232FFD65@pb1.pair.com> Date: Wed, 9 Mar 2016 12:12:06 +0200 Message-ID: To: Tony Marston Cc: PHP internals Content-Type: multipart/alternative; boundary=001a1140207e475803052d9aefac Subject: Re: [PHP-DEV] [RFC Proposal] var keyword deprecation/removal From: arvids.godjuks@gmail.com (Arvids Godjuks) --001a1140207e475803052d9aefac Content-Type: text/plain; charset=UTF-8 All languages are evolving, and part of that is removing old baggage, even if that baggage is harmful. Because ease of maintenance. When you have multiple ways to do a thing, that means that when you touch some part of it, you have to remember to update everything else. It's easy with functions/methods, because aliasing is essentially forwarding the call. But with the language grammar that means modifying the parser for the language in multiple places and not necessarily as a copy/paste of the changed rules. The argument, that it's there for ages is not a good technical argument why not to remove it. And by the way, there is an actual case, that var can't cover, but public/private/protected does. You can't do this: class Blah { var static $a = 0; } but this obviously works class Blah { public static $a = 0; } So, "var" is not the same as "public", it's a subset of "public" functionality actually. And I just checked the docs -it's not mentioned in the docs anywhere. And this is precisely why with time you need to remove the old baggage and duplicate functionality. We can give people ample time to update libraries, because removing "var" is not going to happen until PHP8 for sure, that's probably at least 5-7 years, and deprecation warnings are easy to deal with. Yes. we need to keep BC in mind, but this particular issue is trivially easy to fix, even automated tools are provided, cleans up an inconsistency between var and public, frees up "var" keyword for future usage for more advanced concepts and just removes the duplication of functionality. BC for the sake of BC is just silly. Arvids. --001a1140207e475803052d9aefac--