Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106494 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 35924 invoked from network); 9 Aug 2019 16:14:14 -0000 Received: from unknown (HELO tbjjbihbhebb.turbo-smtp.net) (199.187.174.11) by pb1.pair.com with SMTP; 9 Aug 2019 16:14:14 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=php.net; s=turbo-smtp; x=1565962898; h=DomainKey-Signature:Received: Received:MIME-Version:References:In-Reply-To:From:Date: Message-ID:Subject:To:Cc:Content-Type; bh=8yFGD/OX8T83WQsYRiu10w iy+wwdP9oDq36sbHpJUlo=; b=uG4jn8FLDUbzar51wde1XelvtMsVO4Xn6nqhpL /hweGDljT1xJm+/lat+aQwIPtdaGHczqm5NBnecB+vKMRAo/XAWNrnrNCHGisEGc +qqJ9LKV87dkSeEt16IhH4OAPO3NKM7XTIYXfJnGDo1vUvolk09OYEGUnJ3AKDvI lpP+M= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=turbo-smtp; d=php.net; h=Received:Received:X-TurboSMTP-Tracking:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:MIME-Version:References:In-Reply-To:From:Date:X-Gmail-Original-Message-Id:Message-ID:Subject:To:Cc:Content-Type; b=MR6vt54blr1J7CZaQJXkyHD5dif2GRCiEUtd/NQdnviDo+x1J8PQKrg493M6Xv G22gwEQU1xwvZfhUfcPiIiryCimQVlmt9ufzXHRLBBZ+IR4S9y4gvr9d4aO1d9FT mmSZwONLSqhzezgBVRf19eZYtmry0n70U6gOQT6T7TA8Q=; Received: (qmail 11191 invoked from network); 9 Aug 2019 13:41:38 -0000 Received: X-TurboSMTP-Tracking: 5213500205 X-Gm-Message-State: APjAAAUxAiE/JsQw3Gr65RqIuvFcQy9Tk9islfmVZZaI0ZUlfRrjFGOO G92urJjx8hz40q6oR9yTKsMgM9F+tY+lj/T373k= X-Google-Smtp-Source: APXvYqzAlqOyt87Vcu7mRsReUNgdr0iOKMLBtMc8Rmzs+7I3q5nV4uG/aemIfhoxBUhQnXgD8BMaKNfmijnlKqDhsJI= X-Received: by 2002:a05:6214:1c5:: with SMTP id c5mr17570181qvt.97.1565358097834; Fri, 09 Aug 2019 06:41:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Fri, 9 Aug 2019 16:41:26 +0300 X-Gmail-Original-Message-Id: Message-ID: To: Dan Ackroyd Cc: Internals Content-Type: multipart/alternative; boundary="0000000000005e28d8058faf554a" Subject: Re: [PHP-DEV] Bringing Peace to the Galaxy From: zeev@php.net (Zeev Suraski) --0000000000005e28d8058faf554a Content-Type: text/plain; charset="UTF-8" On Fri, Aug 9, 2019 at 4:12 PM Dan Ackroyd wrote: > On Thu, 8 Aug 2019 at 21:17, Zeev Suraski wrote: > > > > My goal is to have two sister languages, with both PHP and P++ > > being equal among equals > > PHP internals is already lacking programming resources to do > everything we want to be doing. > > Maintaining two versions at once would be more work, so this idea is > not feasible without a dramatic increase in the number of people > working on PHP core. > No, it won't. It will take no additional resources, and in fact, unless I'm missing something - Nikita's approach would in fact take more resources in the long run - as we'd have to maintain not just two dialects, but an open ended number of them. Much like it's hardly more work for us to maintain both strict and weak type hints, it shouldn't be significantly more work to maintain both dialects. The vast majority of work would be the one going into actually implementing the changed behavior and new features. Since even with Nikita's idea he's talking about providing a migration path, this is really not any more work *at all*. The only valid concern as far as efforts go, is whether we can pull off the main fundamental changes - the ones which will likely break any app if we don't introduce them from the get go - within a reasonable timeframe. I think it can be, but it remains to be seen. > I think that we should do our very best to get this > > "P++" right the first time, > > That's a fundamentally bad approach to designing a system. That's true, but we're not designing a system. We're designing a language. And to be more accurate - we're *re*designing a language, with ample experience, data and opinions on what we should have done differently. This is a lot closer to designing an API. And to keep the analogy working - it's like designing v2 of an API, after you've had a remarkably popular v1 and collected an endless amount of feedback about both what's good in it and what's bad. You'd be hard pressed to convince anybody that trying to get v2 - a version that breaks compatibility significantly and requires everyone to audit and refactor their code - right from the get go isn't a good idea that's well worth investing efforts in. Sure, you may not get around to implementing everything people are asking for - but if you're forced to break compatibility and are essentially asking people to partially rewrite their apps - you'd better make sure you do your best so that you don't have to ask them again a couple of years later down the line. With language design, it's actually a much bigger deal than with APIs (few APIs have the level of coupling with someone's code as their programming language does - hence the cost associated with fixing language-design mistakes is typically much, much bigger). Zeev --0000000000005e28d8058faf554a--