

HHVM 3.0.0 - infinitebattery
http://hhvm.com/blog/4349/hhvm-3-0-0

======
nnq
What worries me is the large list of 'unsupported PHP features':
[http://docs.hhvm.com/manual/en/hack.unsupported.php](http://docs.hhvm.com/manual/en/hack.unsupported.php)
.

I know they can be considered bad practice, but in practice you use at at
least a couple of them at least once in every project! And you use it because
the alternative would be even uglier. (Also, what's the point in having a
language with a separate namespace for functions and variables - Perl and
Common Lisp being the only other ones I know of - if you can't at least have
fun with variable variables and using a string directly as a function :) )

...also, they've "downgraded" PHP's closures mechanism. I mean, with:

    
    
        return function foo($a, $b) use ($outer1, $outer2) { ... }
    

...PHP managed to do things better then all other dynamic languages - finally
a way of being _explicit_ about what variables from the outer scope you drag
into a closure! The Hack guys totally missed the point - they've made
everything stricter, but they relaxed this constraint and reverted one of the
few good ideas in PHP.

Their VM may be awesome, but their language is horrid - they take away the
"fun" features of PHP but _don 't fix any of the bad language design issues._
It's like throwing away the baby and keeping the bath water - yeah, the water
will keep you alive for a few more days in the desset, but the baby can
actually be fun to play with.

~~~
stephenr
The list of "unsupported" features is attrocious but not suprising.

When a language makes dick jokes in syntax, you shouldn't expect much.

~~~
nnq
==> jokes aside, they are pulling in a very different direction from the one
of the core PHP devs... this alone makes me expect less from the entire PHP
system as a whole. They just made the PHP equivalent of Perl 6 vs Perl 5. But
at least they are using their "Perl 6" and it works fine for them.

If we could at least start to see shared hosts offering support for Hack and
XHP it would seem more hopeful. (btw, you think PHP devs would like this? I
was kinda pondering over it as a business idea...)

~~~
thefreeman
They have a heroku buildpack [https://github.com/hhvm/heroku-buildpack-
hhvm](https://github.com/hhvm/heroku-buildpack-hhvm)

That's not quite "shared host easy", but it's still pretty easy to get up and
running on heroku if you know what you are doing.

------
dcc1
So what IDE to guys at facebook use for HACK? My favourite editor PHP Storm
doesn't support it, yet.

~~~
jwatzman
Many engineers here use vim and emacs. We ship integration scripts for both of
them -- in `/usr/share/hhvm/hack` in the Debian and Ubuntu binaries, in
`hphp/hack/editor-plugins` in the github repo.

------
alexgartrell
So coincidentally I work at Facebook and know a bunch of these guys pretty
well, but I don't actually interact with the Hack stuff at all (as I work in
infrastructure doing flash and network stuff, primarily). I recently played
around with the Open Source hack stuff and I installed it on my VPS.

Has anyone else played with Hack in a productionish environment? I'm just
wondering what deployments and stuff are actually looking like in the world
outside of Facebook.

p.s. tutorial that really exposed me to hack is here:
[http://hacklang.org/tutorial](http://hacklang.org/tutorial)

~~~
adamors
Considering that you can convert PHP files to Hack by just changing the
opening tag, I think it would be very similar to the way HHVM is used
currently.

~~~
alexgartrell
Sorry, to be clear I'm more curious about how it's integrated with version
control and how things like MVC are done. I really haven't got a clue.

For that matter, are people mostly using HHVM via fast-cgi?

~~~
adamors
Oh I see. I think the best answer to your question is the Hack example site
[https://github.com/hhvm/hack-example-site](https://github.com/hhvm/hack-
example-site). It contains the source for the Hack site along with build
instructions.

Although it's not an MVC site, they do a lot of inline HTML ...

------
ZeroGravitas
I noticed the other day that PHP has 30% code coverage. Is HHVM working to
improve that (and pass the same tests, bug for bug) or is it relying on the
unit tests of frameworks and packages?

------
cookerware
What server can I use with HHVM to get the performance boost claimed in the
video? Does it have a built in HTTP server?

Are there any benchmarks proving that HHVM improves performance?

Can I get a better performance than my current setup of Nginx + uWSGI + Flask
?

~~~
jhgg
>Can I get a better performance than my current setup of Nginx + uWSGI + Flask
?

That's really a bad question. It really all depends on where your bottleneck
is. If you're benchmarking "Hello World" HHVM will be undoubtedly faster than
Python/Flask. But if your bottleneck is in database/io, then you won't see
much of a performance gain.

------
huntedsnark
Donald Glover is his real name, as a rap artist he is Childish Gambino.

------
jholly
Facebook is a roll! This, react, warp! Bravo guys!

------
adamors
While the release names based on rappers is quite a fun idea, I don't get why
they didn't go for people who are, you know, good at hip hop. I mean 50 cent
and Childish Gambino? And especially next to Em and Ghostface. Or is this a
good release/bad release kind of thing?

~~~
elgenie
(I work on HHVM/Hack at FB)

We have an on-call rotation in which one person has the job of cutting (and
testing) the internal named release. That person has final choice for the
name, often subject to lobbying by the more rap-enlightened members of the
team.

/me was pushing for C = Common

~~~
Terr_
Quick sidequestion: Does HHVM support the Weakref extension?

I ask because while it is not listed on the github wiki[1] but _does_ appear
in the manual[2]. I'm assuming the manual is an oversight, branched from PHP's
manual and not pruned.

That said, weak-references are indispensable for certain problems, and I'd
love to see them standard.

[1]
[https://github.com/facebook/hhvm/wiki/Extensions](https://github.com/facebook/hhvm/wiki/Extensions)
[2]
[http://docs.hhvm.com/manual/en/book.weakref.php](http://docs.hhvm.com/manual/en/book.weakref.php)

~~~
dan15
If you click on any of the methods in the manual, you'll see "NOT SUPPORTED IN
HHVM" in a large font. I'm guessing it's an oversight that that text is
missing from the topic index as well.

~~~
Terr_
Oops, I should've dug further.

