4 ms·
HHVM & Hack solved two big problems that made PHP difficult for Facebook and other large companies with large existing PHP codebases: Speed, and the lack of typ
by muglug 9y ago
HHVM & Hack solved two big problems that made PHP difficult for Facebook and other large companies with large existing PHP codebases: Speed, and the lack of type checking
Now the PHP ecosystem is more mature – PHP 7 eliminated the speed differences between HHVM and PHP, and a bunch of static analysis tools find 95% of the bugs that HHVM's typechecker finds.
It makes sense that this would be an inflection point for the future of HHVM.
I hope that more features from HHVM make it into PHP core – especially property types and generics – because, whatever FB decides to do with HHVM, PHP is here for the long-haul.
- jimktrains2 9y ago> HHVM & Hack solved two big problems that made PHP difficult for Facebook and other large companies with large existing PHP codebases: Speed, and the lack of type checking At what point do you stop using the hammer to put in a screw and just use a screwdriver?
- muglug 9y agoWhen the cost of buying screwdrivers for your entire workforce would likely bankrupt the company.
- jimktrains2 9y agoI'm not sure what you're analogy is here. You wouldn't switch every nail to a screw in the same moment.
- muglug 9y agoRight, but you're still investing time in doing that switch. No matter which way you cut it, you're still replacing every single nail. "We'll just update as we go", you say. That's fine, but it means that some parts of the house – normally the oldest and most integral to the entire structure - will use nails for years to come. And your developers will need to be trained in both hammers and screwdrivers to be able to work on the house in totality.
- jimktrains2 9y agoSure, but if those nails are also causing structural instability, then it might be prudent to do the investment. It seems now, no one will be using your type of nail anymore either, so now you have to have them custom made at expense.
- cwyers 9y agoSometimes those nails are doing just the opposite, they're holding the foundation together, and if you try and pull them all out the whole thing might collapse.
- VeejayRampay 9y agoThis is why I use Krazy Glue for everything, so I don't have to think about what's the nail, the screw and the hammer in this long-winded analogy about PHP and its shortcomings.
- mahyarm 9y agoWhen you want to replace all the nails in your house with screws, so you can throw away the hammer ;)
- deleted 9y ago[deleted]
- _pmf_ 9y ago> At what point do you stop using the hammer to put in a screw and just use a screwdriver? If you're a SV company with unlimited cash flow: never.
- noir_lord 9y agoIf you are a PHP user and use Intellij/Phpstorm then this https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended- https://plugins.jetbrains.com/plugin/7622-php-inspections-ea... is utterly incredible. It catches so much stuff, I've been using PHP since 2009 and it there was still stuff I was doing day to day it flagged me for, it's not only that it makes you write better code but it catches so much stuff that you no longer have to hold in your head (things like "Method throws an unhandled exception" etc). In terms of "wow" (impact vs amount of effort required) it's second only to TypeScript in the last year or so for me. Not a co-incidence that both tools add better type checking (amongst a lot of other useful stuff) to the languages I was stuck using.
- muglug 9y agoThanks for the recommendation – I've used PHPStorm when doing large refactors, and it's incredible. Unfortunately, you can't force everyone to use it (especially given its price). That's why a bunch of people have written separate PHP static analysis tools: Phan (https://github.com/phan/phan https://github.com/phan/phan), PHPStan (https://github.com/phpstan/phpstan https://github.com/phpstan/phpstan) and Psalm (https://github.com/vimeo/psalm https://github.com/vimeo/psalm), the last of which I created.
- exceptione 9y agoPsalm looks good, would be nice to integrate it into eclipse pdt as a plugin.
- muglug 9y agoIDE integration is a long-term goal – presumably via the Language Server Protocol.
- minxomat 9y agoThank you, that's a very useful plugin.