Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108615 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 81862 invoked from network); 16 Feb 2020 06:52:03 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 16 Feb 2020 06:52:03 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 255771804AB for ; Sat, 15 Feb 2020 21:07:09 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 15 Feb 2020 21:07:07 -0800 (PST) Received: by mail-pf1-f180.google.com with SMTP id s1so7109705pfh.10 for ; Sat, 15 Feb 2020 21:07:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:autocrypt:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=IZwi8cIMlRI0ykJ1MHZ8NKeKn54y7EVjGEzZOfQwPhE=; b=qWHoURZUVY6jesV5S3pGjHv9jpOgrKu7LZeZIvHw3vxcqAoqioZ57u31twiYB1Tib2 fdrKbGlZW6w9MeSBJ34HvDce6ffF+r3kxFItwzFQskeMkgmXFEoujXGf6ce20mcD0hAy JtK8S1WnZRnZA/tWZnLs49QzackMOMl463FQ8SitBvjgvswoyQxzzL2U/aqpLdm6wWhU o3qs4QSgFfB01f7VSyPZhAE3WFOeqxN2+opl3CKCZxQChUCp/QfZJubnd624jeEjCzyq 2XXUlxK6tTFPuW0eDB4KiwbwrMW5ZHulljGekFcvm5TWfZSO3MXaRKURTKHkz4/ANg+4 q4Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=IZwi8cIMlRI0ykJ1MHZ8NKeKn54y7EVjGEzZOfQwPhE=; b=Jy1GVycrkQZM9MIaZjCZUXwNXz/+XATU6l+66RcupLTYpnxOnjSfnf0FaMW1GV/TmT 7jpQeBz0RB3Fi+QCXcuyF0rJZVOtCU+TLzQw1VHQLeRJT4yaYk6p2rv7uHY4uXexeUBL +Teeplpi6Ebar7r2zzDMMIGlJ9Fo8z+yxiDMspSKXiloN9aTSxyATmSziaH1MyP9PYre 3PKeIhRhuun5azZkxCgq6dQzAnIebVpfs/4Ecx1pvnl34Zgm5MsLTfDak0NglaL5pQkf Yr1BADBh23lQ3R+clWSyrBgREOsjy6bLYufKccZVoLidi+/bNlP/ZV98niANPVBA3PWD f0EA== X-Gm-Message-State: APjAAAXhA9hoXRGGWJFUB0q/RzDnYGuleHa30rvDnSNPUQtR+wPrKXtC UQd3dfdATT15tQFSKaEs8N+f9s+EYQ== X-Google-Smtp-Source: APXvYqwlQeUksJPIBZvcNyMS0Pnyqa789hpcTmoaBu/TGnH7Tssvv4JtB8wX9wTbyNSFJkGGhd2ZDg== X-Received: by 2002:a63:5f10:: with SMTP id t16mr11912327pgb.222.1581829624650; Sat, 15 Feb 2020 21:07:04 -0800 (PST) Received: from Stas-Mac.local (c-76-126-84-88.hsd1.ca.comcast.net. [76.126.84.88]) by smtp.gmail.com with ESMTPSA id f1sm11505814pjq.31.2020.02.15.21.07.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 15 Feb 2020 21:07:04 -0800 (PST) To: Rowan Tommins , internals@lists.php.net References: <003801d5e44c$169700e0$43c502a0$@gmx.de> <83988BB2-7C9D-4118-A1A2-253725F1A7EA@gmail.com> Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Sat, 15 Feb 2020 21:07:03 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: <83988BB2-7C9D-4118-A1A2-253725F1A7EA@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Userspace operator overloading From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > - The individual symbolic operators, with no intrinsic meaning - e.g. > overloading . for concatenation on strings but dot-product for > vectors; or a DSL overloading << and >> for "into" and "out of". Please no. I know it looks fancy and some languages love it, but for a person not in on the joke reading such code is a nightmare - it's basically gibberish until you learn all the types and which meaning each of the types assigns to operators. I mean, I could be maybe talked into having users overload "+" to mean "add some kind of objects that are like numbers but not actually integers" because my intuition still works there even if I don't know the exact type. But if someone thinks it's super-cool to override + to make it add element to the cache object - please no. It's way worse than just using plain old ->addObject(). You may save couple of keystrokes and make your code completely incomprehensible for people who come after you. I know DSLs have its niche but I seriously doubt average PHP user implements a lot of DSLs that are required to work natively on PHP engine. -- Stas Malyshev smalyshev@gmail.com