Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106477 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 81877 invoked from network); 9 Aug 2019 12:58:30 -0000 Received: from unknown (HELO mail-wr1-f53.google.com) (209.85.221.53) by pb1.pair.com with SMTP; 9 Aug 2019 12:58:30 -0000 Received: by mail-wr1-f53.google.com with SMTP id g17so97745224wrr.5 for ; Fri, 09 Aug 2019 03:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OBfiBjoFARhwB11oKmS04lqxEIQC9fT6eed3A/UZa4I=; b=ehvg+RGm30+l1maEpgviT7rA1oQ4gd8wQxXvWPpjfFqaq6/grNOkAE5XMePAt92p5N 2AOSWxeQHmw8dDHEaNlcr7fF+weFt9G1mMtWpbH8LrYr2dJRMfG5+ra5Eclr8ppqjGem coGtbtuOb3hoHq3ow1/epdjDfpPk0ugMhzuKBf2C7dOWRsNea4Y5TqRnr98PYhqNwBZq +fsza6Leq+9dOKGtPB4fByL9u1f+1RLnPk3kKPKqjWNB8bdhsTrvwkUuZPKBj+J+AZYy HR53rcMxSLKLCdZkj1MtvDUMecwSbslZRL97Sb3sG9y+1NfCkiA6yapraRyZC+kzAAgS eAJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OBfiBjoFARhwB11oKmS04lqxEIQC9fT6eed3A/UZa4I=; b=Pb2c2y8LxSGtuZCv0jV02RmuRffsGYeoGd6jyihldDoSr95CB4U4o7YEXxClETd47p T88hrqcMQdHVTamKHzXq0MyioKrLHwYEazegX+h5VXxF5usitQLZR3O7qxvYr933gLI2 v2ksvo5IHKCCyVfLf29NV3Z5yj2uVWaixwa//LqwdCglyfMGGJLhmpSNOEZK+/8YOlTj 65mIarfqsYM/6AaKVOhxEUYHkvyS8Fxp3MEz0MicWnxzWPJznYBpcQJRud7ftxqLXoGD iP4GECHowIfiY1blewCcobY+fJ6h69o/fiyegmubEO3BRzCUXRA1RxX5Am8QsEG+Ao7F k2/A== X-Gm-Message-State: APjAAAUnt8qHMukTi+arhmphqiEh0qthK6eXFVezf6MQVgCZhXjPxQmV s8AozznU5Y5qJqN/Y6hphfuhswXUxsHWbdwNBGOmcfsGMsQ= X-Google-Smtp-Source: APXvYqy345jzjAuJYOXFxno06BuWLRNbItDpZtpz6zXGJ97ZQFcfo7ZsIEgzQ29izAQEa+4jGg2k8lN7wx4hARrk5WU= X-Received: by 2002:adf:f286:: with SMTP id k6mr23584532wro.320.1565346351656; Fri, 09 Aug 2019 03:25:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Fri, 9 Aug 2019 12:25:24 +0200 Message-ID: To: Zeev Suraski Cc: Internals Content-Type: multipart/alternative; boundary="0000000000003db294058fac9939" Subject: Re: [PHP-DEV] Bringing Peace to the Galaxy From: arvids.godjuks@gmail.com (Arvids Godjuks) --0000000000003db294058fac9939 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =D1=87=D1=82, 8 =D0=B0=D0=B2=D0=B3. 2019 =D0=B3. =D0=B2 22:17, Zeev Suraski= : > [... and not in the Sith Lord kind of way.] > > *snip* > > Thoughts? > > Zeev > Apparently, this exists: "ezmlm-reject: fatal: Sorry, I don't accept messages larger than 30000 bytes (#5.2.3)", so re-sending with Zeev's part sniped out :) Good day everyone, after literally sleeping on it and stewing for the most part of the morning to gather the thoughts and read other's feedback, here are my 0.02$ as a userland developer who has been on the list for 10+ years :) TL;DR. I think the proposal will not work. C++ worked because it was a completely different time, target audience and environment that does not exist in our day and just plain old lack of a team/resources to pull this behemoth of a feat (but if that would happen successfully, we will have to assign each of the developers an official status of "Wizzard"). The long version: Reason 1: Community and ecosystem. Just look back at how the adoption of 7.1 became to be - if Zeev is saying "overnight" for P++ and means 2-3 years of work, 7.1 was adopted/supported/became the minimum required essentially instantly. I mean it did not take even 6 months for major frameworks, communities and libraries to announce 7.1 support in next major versions or even 7.1 becoming the next minimum required. Some made plans even before 7.1 landed. I mean try updating a project to latest versions of libraries/frameworks today and still stay on 7.0 or 5.6. It is literally impossible because the community has moved on. What my feeling is that either majority will just jump ship to the new P++ or it will get ignored. All that means is that one or the other part will just lack the ecosystem support to survive the transition. I have to say I'm sorry, but today there are just too many alternatives to PHP that work just fine and fragmenting PHP into 2 language branches is just a bad idea. One of the primary reasons PHP did not succumb to winds of popularity and people returning to it for a more sane and stable environment is its ecosystem of robust libraries, tools and framework and people behind them keeping up to date with modern developments. I mean, just look at the 5 to 7 transition in the last 4 years - people dropped BC support like crazy, most of the complaints got "adapt or die" treatment and a lot of people ended up quite happy after doing the upgrades. Many discovered that the problem was a fly rather than an elephant. Tooling was available to automate transitions. Reason 2: Fragmentation, adoption Look at what happened to Hack - that is basically P++ in a nutshell. It got dropped by everyone as soon as PHP 7 got the speed boost and Hack team just saw no more reason to have anything to do with PHP. They also had trouble implementing or supporting parts of PHP functionality. In a sense, I could say the experiment got it's test run and failed. Reason 3: Evolution and resources Maintaining 2 versions of PHP will be daunting, to say the least. In not so distant past PHP core had a lack of resources to even maintain the primary implementation. I really really do not think the PHP core team has the bandwidth to do a P++. And while C is not by any means dying, it's scope of use is somewhat limited in a commercial application these days and it is hard to find jobs, meaning the pool of people who are able to skill up and contribute is small. If anything, I think the majority of people will jump the P++ bandwagon and not pay any attention to the PHP. So a handful of core devs will end up with the responsibility to maintain the PHP core and poor all their available time into it or just give up on it. I know I would jump the bandwagon in that situation without a second thought even if I'm trying to tell myself I'm a more responsible developer. I'm lying to myself :) Reason 4: Suggested features and modes. Going basically statically typed - thanks, but no thanks. There are numerous languages that are statically typed that are suitable for web development and that could and should be used in such an environment is desired. I know people who moved back into PHP because they wanted a more relaxed environment. I think `declare(strict_types=3D1)` mode got it right and future efforts to enhance that model should be the focus. I mean we ALREADY have 2 versions of PHP going - weak mode and strict mode. What if we just double down on the strict mode? I mean, I just had a wild idea - if a file is included from a "declare(strict_types=3D1)" scope - do not allow `