8 ms·
HippyVM
- seer 12y agoI'm not really familiar with the PyPy tooling and capabilities, but if this takes of, will there be a possibility of interop between RPython language implementations? It would be mind blowing to be able to write libs in different languages and have them working together. We could always use the best one available regardless of the language. They mention interop with Python code, but I was just wondering if this could go a bit further...
- xando 12y agoAs you mention. We have ongoing branch for a implementation of HippyVM-Python bridge. We are hoping to achieve the goal that you described, though we are not sure if this will the last of first step on this path.
- maxpert 12y agoI wonder when they will do a GA instead of pre-release. That would be the right time to test and do benchmarks.
- vhost- 12y agoI hope that website isn't on HippyVM because it's taking forever to load.
- shutupandbuild 12y ago> At present it does not include a reasonable web server integration, so it's not usable for use in production in the current form. RTFA
- gopalv 12y agoThis keep coming up again and again. As a PHP perf guy for serveral years, I have some weird questions to ask. Is this an HTTP serving language VM or just a PHP as a language VM? Because I spent years fixing the first part without ever really doing anything about the second part of that question. If it can't listen on port 80, my interest drops a lot in the new VM - I'm not going to write scipy/numba.py problems in PHP, even if I could.
- emilsedgh 12y agoIt seems to me that it only lacks a fastcgi implementation (like php-fpm) or something like Apache's PHP module. Am I missing something?
- X-Istence 12y agoEven if it is the latter, couldn't you write a pure PHP implementation of a web server, and use that to server your PHP website? Much like WSGI in the Python world?
- girvo 12y agoReactPHP does exactly that, heh. Running an event loop on HippyVM with RPythons JIT? Yes please!
- kingkilr 12y agoThey're working on the HTTP server.
- fijal 12y agowe have a php-fpm equivalent. It's not open source though.
- zupa-hu 12y agoJust for the record, I have the exact opposite opinion. If you have the second, you can use it to build anything.
- aruggirello 12y ago> As a PHP perf guy for serveral years Sorry, couldn't help noticing, serveral years... :)
- b0b_d0e 12y agoFor those that can't find the repository, it can be found here on github https://github.com/hippyvm/hippyvm https://github.com/hippyvm/hippyvm I can never seem to find the link to github from the hippyvm page. It doesn't seem to be very active as far as emerging technology goes, but in my opinion it has good potential since it can build off existing language development tools that are continuously improving.
- iancarroll 12y agoThere's a large blue button that says Github under a header saying Download...
- xando 12y agoI have to ensure that project under development, 490 commits, not impressive but we are working, here ;) Though our current problem is which we are trying to fix is ,we have two repos: public and private. We are hopping to solve this soon, and move development to github. Sorry for the confusion.
- iwaffles 12y agoSeems like an odd way to show off a technology boasting speed when it's cracking under the load. Can anyone confirm if it's running on hippyvm?
- dingdingdang 12y agoI can confirm it is not running hippyvm since the page is saying there's no way to use the vm as server language yet (..)
- rguillebert 12y agoit looks like a static site...
- dingdingdang 12y agoPHP is set to be super fast real quick-soon if this HHVM inspired trend continues. A bit like what has been happening to Javascript really..
- VeejayRampay 12y agoGreat to see those languages be rewarded for the quality of their design.
- girvo 12y agoThey are: their design (not in the PLT sense, but in the "shared-nothing super simple startup" in PHPs case, and "only language in the browser" for javascripts case) is why they get this sort of attention.
- MichaelGG 12y agoApart from being bitter and using better languages personally, what can one do? I suppose it's better off for the world if shitty languages are at least fast. Because I probably use something every day that depends on their performance :\.
- MaxGabriel 12y agoYou can make it easier to use better languages. For example, I've really enjoyed using yesod (Haskell) recently, but it doesn't have great documentation, especially for deploying. So that's something I'd like to work on. (Made a small PR to it today)
- meowface 12y agoYeah, it's a sad, cruel irony that PHP and Javascript of all languages are getting this sort of extremely focused treatment.
- justincormack 12y agoWell so is Lua (see LuaJIT) and its much smaller, simpler and faster as was the language to start with...
- TazeTSchnitzel 12y agoI wonder what the claimed and "aimed for" compatibility with Zend is actually like. How much of the standard library is implemented? How about common extensions? Is the casting behaviour the same? Performance is meaningless if your VM can't run people's code.
- pekk 12y agoIt is meaningful even if it can't run everyone's code.
- TazeTSchnitzel 12y agoI disagree. If it doesn't implement much of PHP, it is not PHP.
- esodae 12y agoWe are trying to be bug to bug compatible with Zend PHP. And trying to implement more and more extensions.
- MrHamdulay 12y agoThey seem to be using the same test suite as Zend PHP. Which would mean they should be pretty compatible. Not sure how many of those they are actually passing though. https://github.com/hippyvm/hippyvm/tree/master/test_phpt/Zend https://github.com/hippyvm/hippyvm/tree/master/test_phpt/Zen...
- TazeTSchnitzel 12y agoLooks like they've copied some of PHP's tests, yes. But being able to run run-tests.php and being compatible aren't quite the same thing, really. It's how many tests pass that count. Technical side-note: /Zend there appears to be just the tests for the Zend engine (i.e. from PHP's /Zend/tests), while the containing directory contains test folders copied from other parts of PHP (like the standard library)
- MBlume 12y agoVery cool that this uses the PyPy toolchain, I hope this becomes a trend because it means we have one make-dynamic-languages-fast effort that will pay dividends across multiple languages.
- girvo 12y agoWell, it doesn't surprise me as RPython is bloody amazing. I actually started doing something like HippyVM about six months ago for work, to explore if it was possible, and sure enough someone has gone way further than I did haha
- nly 12y agoWaiting for that Perl 6 implementation in RPython any day now.
- pjmlp 12y agoActually it is more likely to be the a JVM compatible one. http://www.infoq.com/presentations/invokedynamic http://www.infoq.com/presentations/invokedynamic
- rebelidealist 12y agoCan you or someone make one for Ruby please?
- MrHamdulay 12y agoThey are, see Topaz http://topaz.readthedocs.org/en/latest/ http://topaz.readthedocs.org/en/latest/
- VeejayRampay 12y ago"Most of the standard library is missing." So it'll take some time I guess. Still nice to see people trying, Ruby is a great language but it needs as much love as possible.
- ksec 12y agoOr precisely, its VM needs as much love as possible.
- VeejayRampay 12y agoOr even more precisely, the VM of its main (and de facto default) implementation needs love. Rubinius and JRuby are really VASTLY superior implementations but well, there's no specification so 50% of development time is spent in asinine catch up with an underspecified "standard" (MRI that is). Really sad state of affairs and the #1 reason why Ruby isn't faster and more feature-packed.
- pjmlp 12y agoThere are already three at least http://www.rubymotion.com/ http://www.rubymotion.com/ http://jruby.org/ http://jruby.org/ http://crystal-lang.org/ http://crystal-lang.org/ (not quite Ruby)
- dyadic 12y agoDoes the word "hip" mean something in the context of PHP? edit: I mean, is there a reason HHVM and HippyVM both use the word "Hip"?
- hrttrht 12y agohttp://en.wikipedia.org/wiki/HipHop_for_PHP http://en.wikipedia.org/wiki/HipHop_for_PHP
- dyadic 12y agoOh, I should have expanded on my question. I know of HHVM already, I was curious about the use of "Hip" in HHVM and in HippyVm, it appeared that there must be some common heritage
- RussianCow 12y agoI think "Hippy" is just a play on Facebook's "HipHop" VM. Not sure where the latter originated from, though.
- dyadic 12y agoThanks, that makes sense. I already assumed that HHVM just happened because it's a cool name. But then seeing the second use of the word made me think there might be something behind it
- curveship 12y agoThe original project at Facebook was called High-Performance PHP and given the acronym HPHP. Some clever soul then decided that HPHP should be pronounced HipHop. I guess HippyVM is just following in that trend.
- scragg 12y agoI got HHVM running wordpress on a relatively high traffic site. The difference is night and day and setup was simple. To have something faster is crazy :)
- mamcx 12y agoThe code look clear, even to me. Also: Look like it have a debugger! That is something I was looking how do. Plus, bytecode (look clean) too. RPython could output to ARM?
- sanxiyn 12y agoYes, RPython has an ARM backend.
- ahomescu1 12y agoOlder HN thread: https://news.ycombinator.com/item?id=7459080 https://news.ycombinator.com/item?id=7459080
- mantrax5 12y agoI'm a developer and PHP is in my toolbox when suitable. But the thing I can't understand is... why waste all this effort to make a slow, broken language fast, instead of using a faster language? I mean, sure, it's impressive that this VM is 7 times faster than stock PHP, but Java is over 100 times faster than stock PHP. What is the gain here? Not having to go out of you little shell and learn a new language?
- adlpz 12y agoPreexisting codebases, compatibility with great libraries and mature full-featured frameworks, progressive enhancement of infrastructures already in place, recycling of developers. You name it. This is not about pleasing the bedroom programmer that can just "go out of his little shell and learn a new language". This is great news for any decent sized project or enterprise with infrastructure already running in PHP.
- mantrax5 12y ago> compatibility with great libraries and mature full-featured frameworks So as I said I've been doing PHP. And I have yet to see one of those unicorns in PHP-land. In fact, my first gut reaction was that you're being sarcastic up there.
- TazeTSchnitzel 12y agoSymfony and Laravel are pretty good, or so I hear.
- adlpz 12y agoI was not being sarcastic. If you already know PHP you should really check out frameworks like Symfony and Laravel (and Symfony Components, amazing reusable pieces to grow your own stuff). Also great tools like Composer for dependency management, PHPUnit, Behat, PHPSpec or Codeception for TDD/BDD. Same with ORMs like Doctrine or the Twig templating engine. PHP has evolved greatly in the last years. There are tools for most of your needs and you can build stable and robust applications with them, and be excited about the future now that we are seeing efforts like HHVM or HippyVM, or even the internal changes being discussed for PHP 6. You don't need a new "better" language to make new better products. PHP allows you to write perfectly nice, object oriented, clean code, no problem at all, that integrates easily with proven technologies. It also allows you to write a mess impossible to maintain. If somebody does the later when they can do the former with no extra effort, well, then maybe it's fair to question if that person is a good programmer at all.
- hellbreakslose 12y agohaha jokes... well I see why fb wanted to create their own framework since the whole site is in php and it would take em a lot of time to translate it something else (i think most nowadays is JS anyways) but srsly, why people are trying to make faster frameworks for php ... no idea. It doesn't get any faster due its design. At least join one of the open source projects and help that. Combine all those working on those open source frameworks for years and all together create something fast...
- pearjuice 12y ago>It started off as a research project [...] for Facebook Huh? Isn't that what HipHop is? Can someone elaborate on the matter? Is this a fork? Why aren't they just migrating their work back to HipHop, I mean all this leads to is fragmentation.
- sanxiyn 12y agoFacebook had multiple research projects to develop better implementations of PHP programming language. HippyVM is not a fork of HHVM and indeed two codebases are completely unrelated. Therefore "just migrating their work back to HipHop" is not possible; there is nowhere to go back to, since it didn't come from there.
- pearjuice 12y agoBut if Hippy is faster why did they pick HipHop?
- Solarsail 12y agoFrom memory (I think one of the dev's comments on HHVM or Hippy a while back) Hippy started after HHVM was already underway. Hippy was mostly a proof of concept, to see if PyPy would be a viable strategy for a PHP runtime. HipHop was more so the logical followup to HipHop... I think being forked from the HipHop interpreter they were using for development.
- loevborg 12y agoAs someone with a bit of experience scaling PHP, it seems to me that the main problem with the language is not its raw performance (which seems on a par with its more cousins Python and Ruby) but rather its single-request model. For every request, mod_php creates a new interpreter, which has to do all the work to set up the framework, auto-loading the required classes, reading additional data every time. What's more, the request has to create a new database connection for every request; the single-request model doesn't allow the use of a database pool. (This doesn't change fundamentally with handlers other than mod_php, such as php-fpm.) With languages like Python and Ruby, not to mention Java, a single interpreter process or thread can handle many requests and can re-use the database connection. In PHP, you're forced to do all the set-up all over again for every request. This is particularly wasteful with frameworks like Laravel, which do a non-trivial amount of work for setting up the application object, IoC controller. Am I missing something here? I can't believe companies using PHP on a larger scale, like Facebook, discard and re-create the application environment and all DB connections (!) for every single request.
- TazeTSchnitzel 12y agoI don't know about mod_php, but PHP can handle multiple requests in one process for some SAPIs. Also, opcode caching can improve things. Further, I think PHP's request model is a good thing. It makes web programming easier and makes PHP resistant against memory leaks.
- wolf550e 12y agoBut it's terrible for performance. The performance of trivial ajax requests is completely dominated by framework setup time, in my experience with Zend based code.
- yogo 12y agoWhat does the language have to do with framework setup? You can have horrible performance with any bloated framework setup. Trim the fat.
- aruggirello 12y agoI would like to mention my (just released) PHP preprocessor here, since it has a feature that suggests a number of micro-optimizations. People seem to care so much about performance, so why not spend a few minutes to improve source code in the first place? I wrote about the PHPippo PHP preprocessor a few hours ago, though it went through HN unnoticed (so far): https://news.ycombinator.com/item?id=7861616 https://news.ycombinator.com/item?id=7861616
- gosukiwi 12y agoSo many PHP improvements, PHPNG, HHVM and Hippy, I'm anxious to see the future of PHP :)