From my understanding, if the day ever comes where the official PHP engine is switched to HHVM, it would catapult performance past Python and Ruby in pretty much all scenarios.
The future of PHP, at a distance
41–50 of 50 posts
Re: The future of PHP, at a distance
#42Kinda wish they would drop backwards compatibility once in a while. I get why they don't but that's why PHP is just the most popular mediocre language. There should be scheduled non backwards compatible releases for every language (say every 10 years) that's the only way they can improve and not just get replaced when better ones come along.
Python did that, and now everyone loves to hate it.
Re: The future of PHP, at a distance
#43"Also what about windows users, still a very significant portion of the PHP user base?" Yes, especially during development. I am toying w/ a PHP implementation on top of luajit, written in PHP so it may be more hackable and bootstrapped. The real problem is PHP fails to define a specification that implementations can follow (though they probably weren't prepared for the current situation). Sadly the runtime becomes t…
A PHP parser written in PHP that generates bytecode for LuaJIT or HHVM's JIT-runtime would be cool. I was thinking about this too. And it would be fun to hack around :)
FB's HHVM JIT and its bytecode format "hhir" is explained is the following recent blog post: http://www.hhvm.com/blog/2027/faster-and-cheaper-the-evoluti...
LuaJIT2 and DynASM: http://luajit.org/
[edit:] I found your repo: https://github.com/cretz/meh ...interesting, I am reading the code atm
Re: The future of PHP, at a distance
#44Earlier quoted context omitted.
> The only advantage of using PHP in my eyes is: incredible cheap and hassle-free hosting for beginners. Well, clearly the engineers working on Facebook's PHP (and several other large projects, from Yahoo! to Wordpress.com) aren't "begineers" neither looking for "cheap, hassle-free hosting". I don't buy the "it's so crap, it's ONLY used because of cheap hosting" argument. It's also a pragmatic language, with tons of…
The engineers working on FB's PHP have reimplemented the runtime . I doubt that was a bonus or a reason they considered PHP. I find it highly unlikely anyone started off using a platform with the goal of "we get to completely re-implement this platform because it will not work for us otherwise."
So, them re-implementing the runtime is no more an argument against PHP than using PyPy instead of CPython or JRuby instead of MRuby is.
Not to mention that have they been using say Ruby instead of PHP, they'd have the same, or even worse, problems regarding getting the most performance out of their runtime.
So this is totally orthogonal to the issue of PHP's merits -- only has to do with performance, so the same things could have been said for Python or Ruby that are in the same ballpark as PHP in this area.
Re: The future of PHP, at a distance
#45Earlier quoted context omitted.
Define 'better'. Personally I think Clojure has a lot going for it, and it's better than a lot of languages in a many ways. However, for the kind of application I work on PHP is significantly better fit than Clojure. Most of the points made in this talk apply to my situation. http://www.infoq.com/presentations/php-history
The main "better" I care about is "fewer gotchas and special cases to memorize"; that's not the only thing that matters about programming languages, but it's a big factor. I don't have time to watch a 40-minute video; arguments I remember hearing from something similar are the very fast coding feedback cycle (easy with modern-day rails/django/etc.), "it's better than it used to be" (not really an argument), availabil…
I realize posting a 40 minute video to support my point is a bit lazy and unfair but you seem aware of some of the key points fortunately.
First let me admit that we have a php legacy codebase, so porting that to another language, even if we had a strong desire too would probably be prohibitive.
I definitely feel super productive in PHP. I've been able to knock out a new app feature in 1 day, which to build the equivalent in Java would have been at least 5. It's very easy to write code fast, and then come back and refactor it later. Using PHP Storm as an IDE with a very good debugger and PHPUnit to build a suite of tests for everything we do means that gotchas are always eliminated before production, and with PHP I find things are either working or completely broken with not much in-between.
I guess having a strong unit test suite, or really it's more of an acceptance test suite, is something you can do in most languages, but the assurance it gives us enables us to share large code bases between teams, doing frequent merges of features. You can have large numbers of programmers with varying abilities and even programming styles hitting the code without too much headache.
The talk also mentions state. Not sharing state between requests except explicitly. You don't have to worry about complicated background threads, resource leaks, memory leaks. Even crashes are less of a big deal since you just lose one request to it, not the whole server like with Java et al.
PHP's array is a swiss army knife with lot's of useful functions for transforming data, which is a lot of what we do on the server. I can map, reduce and filter data. I can dynamically handle arrays or single objects in the same function, or handle arrays of different kinds of data without any fuss. In short going from what I want to happen to having it happen is very fast.
Background tasks are queued and run on other systems including some written as bash scripts or in Python, Go and node.js. These languages are a better fit for these jobs and so we ditch PHP for those.
What Facebook is doing with HHVM (run faster) and Hack (add type safety as needed) is pretty interested and we've adopted the first but not yet the latter.
Hopefully that's flavour of what I like about using PHP. I have not written more than a few lines of Ruby so I cannot comment on that. I have done some maintenance work on a Python server but not with a modern framework. I'm not sure Python with a modern web framework offers all of the advantages I've mentioned above but I am open to being enlightened on that.
Re: The future of PHP, at a distance
#46Earlier quoted context omitted.
The main "better" I care about is "fewer gotchas and special cases to memorize"; that's not the only thing that matters about programming languages, but it's a big factor. I don't have time to watch a 40-minute video; arguments I remember hearing from something similar are the very fast coding feedback cycle (easy with modern-day rails/django/etc.), "it's better than it used to be" (not really an argument), availabil…
Well firstly the gotchas very rarely get me. I found the same with Javascript. The inconsistent and odd data conversions make fun slides to denigrate the language, but in practise they seem to be easily avoided. I realize posting a 40 minute video to support my point is a bit lazy and unfair but you seem aware of some of the key points fortunately. First let me admit that we have a php legacy codebase, so porting tha…
They don't tend to actually "get" me, but I feel like they're always there in the back of my mind, taking up space that could be used for something more useful. It's not a huge difference, but it's there.
> I definitely feel super productive in PHP. I've been able to knock out a new app feature in 1 day, which to build the equivalent in Java would have been at least 5.
Well sure, we're talking about a very different style of language. But I think Ruby or Python get you the same thing. Certainly you have map/reduce/filter (and Python's for comprehensions go one step further), and dynamic typing.
> with PHP I find things are either working or completely broken with not much in-between.
Interesting; what bothers me the most when using PHP is that it feels easier to introduce security flaws than other languages. Not that it's hard to code safely, but sometimes the most obvious way to e.g. access a database is the unsafe way (which is partly just because there're a lot of old libraries and bad advice floating around). Charset handling is a similar area; I've seen lots of PHP code that appears to work fine but goes wrong when given non-ascii characters. It wouldn't surprise me if there were similar issues with timezones, though I haven't dealt with them enough in PHP to be sure.
Re: The future of PHP, at a distance
#47From my understanding, if the day ever comes where the official PHP engine is switched to HHVM, it would catapult performance past Python and Ruby in pretty much all scenarios.
Predicting the future is risky. HHVM exists. You can benchmark it against Python and Ruby today. What are the results? In any case, Python has things like cx_freeze that can be used to make apps close to compiled performance. And Python is not a single monolithic implementation. IronPython running on .NET for instance. PyPy has a VM with JIT. In any case, few people these days are worried about raw performance of app…
Performance oriented pythonners go with pypy, numpy, cython, numba, etc. Each of them gives a very significant speed boost.
Re: The future of PHP, at a distance
#48Lets have some data. for python users (http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...)
for ruby users {http://benchmarksgame.alioth.debian.org/u32/benchmark.php?te...}
Re: The future of PHP, at a distance
#49From my understanding, if the day ever comes where the official PHP engine is switched to HHVM, it would catapult performance past Python and Ruby in pretty much all scenarios.
Re: The future of PHP, at a distance
#50Earlier quoted context omitted.
Well firstly the gotchas very rarely get me. I found the same with Javascript. The inconsistent and odd data conversions make fun slides to denigrate the language, but in practise they seem to be easily avoided. I realize posting a 40 minute video to support my point is a bit lazy and unfair but you seem aware of some of the key points fortunately. First let me admit that we have a php legacy codebase, so porting tha…
> the gotchas very rarely get me. I found the same with Javascript. The inconsistent and odd data conversions make fun slides to denigrate the language, but in practise they seem to be easily avoided. They don't tend to actually "get" me, but I feel like they're always there in the back of my mind, taking up space that could be used for something more useful. It's not a huge difference, but it's there. > I definitely…
Well in my case we work on mobile apps so the client doesn't do anything unexpected with respect to character sets and time zones. Probably that's harder when working with random web browsers. Security wise I agree with you it's easy to do wrongly, especially with the simple DB API's that can be used naively.