by mwpmaybe on 9/18/17, 6:12 PM with 158 comments
by TazeTSchnitzel on 9/18/17, 7:05 PM
I mean, it's great that Hack will work for new Hack code and existing Hack codebases, but there aren't a lot of those. It makes sense for Facebook — why waste your efforts on maintaining part of your runtime that you don't need? — but I wonder if this will consign HHVM to irrelevance in the long term. Maybe Hack is a compelling platform for new code, but then, why use this obscure proprietary Facebook thing that's a bit better than PHP when you could use any of the numerous other languages out there that are also better than PHP but have much better ecosystems?
Personally this makes me sad because I wanted to see a standardised, multiple-implementation PHP language. Facebook did, even. They paid someone to write a spec: https://github.com/php/php-langspec
Maybe someone will write a new PHP implementation to take that idea forward. Or maybe we'll be stuck with Zend forever.
The future is strange.
by muglug on 9/18/17, 7:39 PM
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.
by rrdharan on 9/18/17, 6:37 PM
At any rate at least the fact that the HHVM folks are communicating the strategy effectively and transparently should help everyone involved make reasonable decisions.
by bepotts on 9/18/17, 6:55 PM
I've always thought that PHP was an underrated language that got a bad rep due to whacky design choices and PHP developers being seen as "less skilled" (a stereotype I know, but it is prominent) than others. Object Oriented PHP and frameworks like Laravel were a nice change of pace in my opinion, and there's plenty of good PHP coders out there if they had the right experience and stuck to a good coding guideline.
Alas, I confess I stepped away from PHP due the stereotypes against it, but HHVM always seemed promising. I haven't heard much about it over the years though.
What's the toolchain for HHVM?
by ryangordon on 9/18/17, 9:14 PM
Now that they're getting rid of direct PHP support, HHVM is only going to get better. This will unlock a whole host of language improvements that HHVM couldn't otherwise make.
HHVM is faster relative to PHP now, and it will only get faster with these changes. Typing is an important part of making JITed code fast and unless PHP ever decides to fully add it, it will never have the potential to catch up. This is important to PHP-based companies as they grow and want to optimize on cost and development efficiency.
Undoubtedly, this split will be painful initially for those of us who are bought into the symbiosis of the HHVM and PHP ecosystem together. How painful it is to split will just be a question of where members of the PHP community want to go (or both). The nice thing is that converting something from PHP to HHVM isn't terribly hard; not anywhere near like converting from PHP to Golang. For HHVM, it's mostly just adding type annotations.
by sunseb on 9/18/17, 8:44 PM
PHP is IMHO the most productive and easiest platform for web development:
- a request
- a response
- templating
- no shared stated
And that's it! But the language syntax has so many quirks. So it's cool if Hack redesign the language and make it more beautiful and consistent. Many developers switch to Ruby or Python because these languages are better designed. I think Hack could attract a lot of these developers who want more beauty in the tools they use.
by ankyth27 on 9/18/17, 7:29 PM
by maxpert on 9/18/17, 7:24 PM
by philippz on 9/19/17, 6:05 AM
by pbiggar on 9/18/17, 9:46 PM
I feel like I called this one in https://circleci.com/blog/critiquing-facebooks-new-php-spec:
> This is interesting because they’re changing the definition of the language through a sort of back-channel. They’re allowing breaking changes by effectively deciding that other implementation choices are equally valid.
> I’ll give you an example, which I’ll get into more below. There’s a little known bug in the Zend engine around copying arrays that contain references. IBM wrote a paper about this bug in 2009. Basically, this bug was necessary in Zend to make copying arrays fast, and IBM figured out a way to do it in a way that was actually correct, for only a 10% performance penalty.
by dcgudeman on 9/18/17, 8:53 PM
by foxfired on 9/18/17, 10:14 PM
So if we get to a point where HHVM is completely irrelevant, it simply means "Mission Accomplished".
by the_duke on 9/18/17, 7:03 PM
I never hear about anyone using it...
by krapp on 9/18/17, 11:17 PM
I'm really going to miss XHP. Native XML support has ruined me for templating frameworks. I never want to write HTML as concatenated strings ever again.
by tiffanyh on 9/18/17, 6:47 PM
E.g. FunctionName() vs function_name().
Or
E.g. return 5x20; vs return "5"x10;
by thatonechad on 9/19/17, 2:36 PM
by crescentfresh on 9/18/17, 7:54 PM
by ecesena on 9/19/17, 1:12 AM
by royge on 9/19/17, 2:45 AM
by fiatjaf on 9/18/17, 10:32 PM
by ohdrat on 9/18/17, 7:38 PM
by merb on 9/18/17, 8:07 PM
by memracom on 9/18/17, 10:15 PM
Two reasonable directions to choose are Python Three with a framework like Flask (lighweight) or Django (heavy duty). Or go to the JVM with something like Grails framework (heavy duty) on the Groovy language. Ratpack is a lightweight framework for Groovy and there is also an interesting option to use Vaadin 8 which lets you put your GUI code into the main app rather than writing separate Javascript code.
When making your decision, be sure to consider the huge JVM ecosystem that integrates quite easily with Groovy including development tools like Jenkins and SOAPUI that can be scripted with Groovy. And the Python side also has a fairly extensive ecosystem of libraries as well.
The skill level of Python and Java/Groovy developers tends to be higher than PHP which has always attracted people who would learn just enought to get by.
The software dev community has gone through an explosion of diversity in the past 2 decades and that has enabled a lot of experimentation with new ways of doing this. There is a lot of good in this. But now we are in a period of contraction. Some of this is manifested in the spread of functional capabilities via libraries such as reactive extensions and functional features being added to languages like Java and Javascript. Another manifestation is the fading of PERL from prominence, and this is now happening to PHP as well as Ruby.
This is evolution. Embrace it or face your personal extinction as a software developer.