Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106779 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 15354 invoked from network); 29 Aug 2019 01:19:52 -0000 Received: from unknown (HELO mail-pl1-f173.google.com) (209.85.214.173) by pb1.pair.com with SMTP; 29 Aug 2019 01:19:52 -0000 Received: by mail-pl1-f173.google.com with SMTP id w11so635631plp.5 for ; Wed, 28 Aug 2019 15:52:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=TB/8hnDnVPdpElFNBE5ybihsuNaqozRmBbaLbs2qZh0=; b=TNWuMrWqfbIJdrp3G9+H9GLSUQZ/KPNKHADX26piw65Fp0YeAZ/6uSzPxMKrFQD5Rm TWVgDZ9jXKr6NfRCe50X2g5PubsJpBeeDfyw7TV5BCDBfkkIuBFeEEpP7HH4tFNmP3zH pd1+V/mXnUIAfbVSjwsYphR7OzSjVSoSrUb0wVLl1Mqk0iovQ2yojMC5FYVBJ8jB3tA9 gXOT7rSyFq7xCvIB6We6WmIXIB4IJVxhgzbHj14CKCrIauURxaXnfrrXGXvcboHFLH/l WBSKaMNWTJlxuXJztnA7vy6lohPudl7MlfQc4xEeySJr5/2v6R5VCH1GO/yyE82IDgBe 8VYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=TB/8hnDnVPdpElFNBE5ybihsuNaqozRmBbaLbs2qZh0=; b=LXpQpLL7PeRNALGPWydXBbdI4co+krLNKQxEeXrfeoT8cTDP7m/kxUOtJ08E0HzbGk fenLK9abCZgzS1o5Mi4J8XQ46hNLTzaDVnvNyCaRDPA31h5YRU7wJuBLkySLKbdWqKcP 8A+ArPktEwW0S9vlbw6E95g06qQeYdF3VzqVB+rdg5J7Us2QoWV3btcUbxXPzgvCS5Q2 xfJL5SbZ8uzP/q9O5SC66xK8h/I/TDqBpoEVuEpTiSPG99nL6xVaVrdBQtZQjgvIT/dq Z/uzxcWVZfs5ef/ltYhy+svKohV2pJd3peiFGtegl9pAGK18vW1hdyZW5rOUx7o1eTB/ 6+/Q== X-Gm-Message-State: APjAAAVxtRC2UqIHmSbEQDN61H4WSlr1YMT/shnQOTatnYe0x6fa8UJi gkLsdjbhWavHhXGCz2BbCBX3xzLF2A== X-Google-Smtp-Source: APXvYqzoxRL2dZm1Vdra7jqg+GUp/viZ25KpWaRT//SgnmJmGGeVnbYq8xbca9wIgtzXPGbWI926MQ== X-Received: by 2002:a17:902:aa09:: with SMTP id be9mr6536432plb.52.1567032726013; Wed, 28 Aug 2019 15:52:06 -0700 (PDT) Received: from Stas-Pro-2070.lan (c-76-126-84-88.hsd1.ca.comcast.net. [76.126.84.88]) by smtp.gmail.com with ESMTPSA id a18sm430083pfn.156.2019.08.28.15.52.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Aug 2019 15:52:05 -0700 (PDT) To: Matthew Brown Cc: PHP internals References: <6ed74ae0-5feb-39de-a39a-f9a8f80401b2@gmail.com> <342BB5DE-80D0-405E-8C71-D959F38D17E8@gmail.com> Openpgp: preference=signencrypt Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Wed, 28 Aug 2019 15:52:04 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Reclassifying engine warnings From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > This is where I think PHP may have broken us a little. I think it's in no way "broken" to be able to easily match expectations, like $foo++ always do what you meant without clunky boilerplate. Also, if you think PHP is the only language I program in daily (and I mean every day, except some weekends and vacations maybe) you're wrong :) I have something to compare to, so what I say some things are easier in PHP that's because I actually compared. > I just asked a few non-PHP developers here what they expect "(function > () { $a++; })()" to do, and they agreed it would be some sort of error. > Got the same answer for "(function () { $a->bar = 5; })() ". I see absolutely no reason for it. Maybe if you're a Java programmer who never saw non-statically-typed non-B&D language - but that's not a virtue we should be striving to emulate. If we have a tool that already does things better and some people don't even know such tools are possible, we should educate them, not break our tools so it would be more comfortable fit to their experience. > Indeed, anyone who's used another C-like language (JS, TS, Java, C# etc) > is used to these things being errors, so it can be disorientating to see I don't think having things just work instead of usual boilerplate that you have to declare everything upfront and repeat even obvious things numerous times is "disorienting" in any way. If you check how languages that are alive evolve (like Java or C++, C is mostly fossilized these days), even strict ones, you see they support more and more intuitive approaches - like auto variables for example - which make things easier. Because human should spend time thinking, not figuring out how to satisfy a dumb compiler. That's the direction we should be moving to. Not adding more errors and boilerplate in clear cases like $foo++. -- Stas Malyshev smalyshev@gmail.com