| > still extremely simple to deploy Hardly. PHP-FPM is a confusing mess to set up, and you're still stuck working around the massive mistake of binding routing to the file system. And I hope you don't try to just rsync up your changes afterwards without some form of blue/green deployments. > the documentation is good There is.. a lot of it, for better or worse. Let's compare the functions for concatenating lists between PHP[0] and Scala[1]. The PHP version is way longer and contains several examples.. that are only needed in the first place because the PHP's array type is so messy and tries to fill so many different uses. Meanwhile, Scala's gets to the point, describes how to use it, and uses the rest of the screen estate to help me navigate to anything else that might be relevant. > It has clean lambda functions that you can pass around easily and has for more than a decade. Looks like they did finally clean up their baffling closure binding syntax in 7.4... unless you want to bind anything by reference. That said, it is pretty hilarious to me that they decided to make strings and arrays of strings callable rather than add some kind of first-class function reference syntax. Surely that won't have any confusing interactions with namespaces... > Type hinting has been in place for a long time Not of much use without generics. `array` isn't a particularly useful type. There does seem to exist an RFC[2], but it looks dead in the water (no voting table, and the stated vote goal was years ago). > The only downside of PHP that I can still point to is that it's sometimes hard to remember the function parameter order for some of the common string and array functions. It's not really PHP's fault itself, but Laravel is a miserable mess of implicit magic. The fact that people often seem to hold it up as the gold standard of PHP doesn't exactly inspire confidence in the community. [0]: https://www.php.net/manual/en/function.array-merge
[1]: https://www.scala-lang.org/api/current/scala/collection/Seq....):Seq[B]
[2]: https://wiki.php.net/rfc/generics |
fastcgi_param SCRIPT_FILENAME /var/www/index.php;