News for hackers. Stuff that matters.
Re:Imaginary Problems Are the Root of Bad Software by ericbarrett on Sunday June 18, 2023 @12:59PM (#36382009)
The trick was there was enough growth that the savings from the compiler were massive. (I worked there at the time.) The inefficiency of the PHP interpreter was a great problem to have, because it came from the success it enabled.
Re:Imaginary Problems Are the Root of Bad Software by fauigerzigerk on Sunday June 18, 2023 @01:46PM (#36382478)
So I think the interesting question is whether the rest of us can learn anything from what happened there.

I believe Mark Zuckerberg simply used the technology he knew and took it from there. That's fine. I probably would have done the same thing.

But many people are making an ideology out of this, arguing that not giving a shit about performance is always the right choice initially because that's how you grow fast enough to be able to retool later.

I think this is based assumptions that are no longer true.

In the early 2000s, mainstream programming languages and runtimes were either fast and low productivity or slow and high productivity (Exceptions such as Pascal/Delphi did exist but they were not mainstream). And the cost of scaling up was prohibitive compared to scaling out.

Today, you can choose any fast high productivity language/runtime and go very far mostly scaling up.

Re:Imaginary Problems Are the Root of Bad Software by rafark on Sunday June 18, 2023 @02:14PM (#36382750)
Learn what? That you should use the language that you’re more comfortable with and then scale? Or that languages have become more efficient? Php 8, for example, is many times faster than the php 4 and 5 that Facebook was using.
Re:Imaginary Problems Are the Root of Bad Software by fauigerzigerk on Sunday June 18, 2023 @02:37PM (#36382989)
I think using what you already know remains a choice that is very hard to criticise. But we didn't have to learn that, did we?

Beyond that I think there is more to unlearn than to learn from the history of the Y2K batch of startups. The economics of essentially everything related to writing, running and distributing software have changed completely.

Re:Imaginary Problems Are the Root of Bad Software by noir_lord on Monday June 19, 2023 @07:42AM (#36389868)
In part the reason that PHP8 (and it was 7 that had the quantum leap in perf) are now so fast is precisely because of Hack - it was easy to accept the status quo on performance until Hack showed there really was a lot of performance left on the table.

For me the biggest win was the changes they made to how arrays are stored in memory, I saw some systems drop by half in memory usage and had to change basically nothing - those kinds of wins are rare.

Re:Imaginary Problems Are the Root of Bad Software by rafark on Monday June 19, 2023 @09:52PM (#36398777)
Yeah, I know the performance optimization were in part because of hhvm.
Re:Imaginary Problems Are the Root of Bad Software by ericbarrett on Sunday June 18, 2023 @03:21PM (#36383442)
I take away two lessons from it, which are in a kind of essential tension that can only be mediated by wisdom and experience:

1) Pick technologies that you can optimize.

2) Don't over-optimize.

Also, the concept of "optimization" here has very little to do with the language itself. It's far more about the overall stack, and it definitely includes people and processes (like hiring). It's not like FB invested $0 toward performance before swapping out PHP interpreters! Its massive caching layer, for example, was already taking shape well before HPHP (the C++ transpiler which preceded HipHop), not to mention the effort and tooling behind the MySQL sharding and multi-region that still exists in some form today. Many backend FB services were already written in C++ by 2010. But they had already gone very, very far—farther than most businesses ever will—on "just" PHP. Heroics like HPHP only happened after enormous pipelines of money were already flowing into the company.

Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @02:02PM (#36382647)
Did they succeed because of PHP or was it just a tech used at the time and anything else similar at the time would be fine either way?
Re:Imaginary Problems Are the Root of Bad Software by rafark on Sunday June 18, 2023 @02:18PM (#36382798)
They succeeded because of php. It was easy to use for them. So it enabled them to materialize their ideas. It was the right tool for them. Anything else would have been fine either way, if it was the language they were the most comfortable with. In their case, it happened to be php.
Re:Imaginary Problems Are the Root of Bad Software by mikebenfield on Sunday June 18, 2023 @02:37PM (#36382991)
Well, OK. But by that logic, if the language they had been most familiar with was Fortran, should they have used Fortran for Facebook? I tend to think that there are actually material differences between languages and technologies, and it's worth knowing more than one language and not using terrible ones.
Re:Imaginary Problems Are the Root of Bad Software by rafark on Sunday June 18, 2023 @02:51PM (#36383145)
“ But by that logic, if the language they had been most familiar with was Fortran, should they have used Fortran for Facebook”

Absolutely. Otherwise they wouldn’t have been able to release the actual product and keep adding features to it the way they did with Facebook. They’d spend half the time learning the “right” language & environment. That would have slowed them down to the point they wouldn’t have been able to work on the actual product as much as they did.

And feature-wise, Facebook evolved really quickly.

Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @06:04PM (#36385003)
That just sounds like "they succeeded because they knew a programming language", not that it was right one compared to competition
Re:Imaginary Problems Are the Root of Bad Software by rafark on Thursday June 22, 2023 @10:39PM (#36442167)
No, they totally succeeded because the used php. I think zuckerberg said it himself that php allowed them to add new features easily. I think he mentioned that it was easy for new people to pick it up. I’m pretty sure Facebook wouldn’t exist today if it had been written in the more corporate/esoteric languages available at the time.

Its ease of use allowed him to launch the site from his dorm room. Iirc, YouTube was also written in php (it had .php urls), before google bought it and rewrote it using python, so you could probably thank php for that site too.

Re:Imaginary Problems Are the Root of Bad Software by rafark on Thursday June 22, 2023 @10:52PM (#36442251)
Just checked. It appears it was indeed first written in php then changed to python then to java.
Re:Imaginary Problems Are the Root of Bad Software by ericbarrett on Monday June 19, 2023 @11:00AM (#36391830)
I don't think there was anything similar to PHP that wasn't proprietary (Cold Fusion etc.), and FB engineering culture was to avoid vendor lock-in.

In any case, in the 2000s a PHP programmer/designer was analogous to a JavaScript developer today. Lots of talent out there, and it only took a few weeks of orientation and familiarizing for new hires to be productive.