The Null Device
Posts matching tags 'php'
PHP: a fractal of bad design; a good essay on why PHP, one of the most popular web programming languages, is horribly, irreparably flawed:
PHP is not merely awkward to use, or ill-suited for what I want, or suboptimal, or against my religion. I can tell you all manner of good things about languages I avoid, and all manner of bad things about languages I enjoy. Go on, ask! It makes for interesting conversation. PHP is the lone exception. Virtually every feature in PHP is broken somehow. The language, the framework, the ecosystem, are all just bad. And I can’t even point out any single damning thing, because the damage is so systemic. Every time I try to compile a list of PHP gripes, I get stuck in this depth-first search discovering more and more appalling trivia. (Hence, fractal.)
Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.
You pull out a screwdriver, and you see it’s one of those weird tri-headed things. Okay, well, that’s not very useful to you, but you guess it comes in handy sometimes.
You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.
You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever.
And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. And there’s no clear problem with the set as a whole; it still has all the tools.
Now imagine you meet millions of carpenters using this toolbox who tell you “well hey what’s the problem with these tools? They’re all I’ve ever used and they work fine!” And the carpenters show you the houses they’ve built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.
That’s what’s wrong with PHP.I always thought of PHP as Perl's brain-damaged little brother.
1842 - Ada Lovelace writes the first program. She is hampered in her efforts by the minor inconvenience that she doesn't have any actual computers to run her code. Enterprise architects will later relearn her techniques in order to program in UML.
1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.
1995 - At a neighborhood Italian restaurant Rasmus Lerdorf realizes that his plate of spaghetti is an excellent model for understanding both the World Wide Web and that web applications should mimic their medium. On the back of his napkin he designs Programmable Hyperlinked Pasta (PHP). PHP documentation remains on that napkin to this day.
What purports to be an interview with an anonymous Facebook employee, shedding some light on the inner workings of Facebook, technical improvements, privacy, and the more unusual dealings with its millions of users:
How do you think we know who your best friends are? But that’s public knowledge; we’ve explicitly stated that we record that. If you look in your type-ahead search, and you press “A,” or just one letter, a list of your best friends shows up. It’s no longer organized alphabetically, but by the person you interact with most, your “best friends,” or at least those whom we have concluded you are best friends with.
I’m not sure when exactly it was deprecated, but we did have a master password at one point where you could type in any user’s user ID, and then the password. I’m not going to give you the exact password, but with upper and lower case, symbols, numbers, all of the above, it spelled out ‘Chuck Norris,’ more or less. It was pretty fantastic.
I found a fake account created from Berkeley that used the profile picture and information from the brother of one of my very good friends. We looked up the guy who created the original profile, and he had never ever heard of him, never ever met him, obviously had never seen him. But this guy had evidently added him as a friend, and sadly he accepted it, but literally stole all of this guy’s information, created a fake account, and was communicating with himself from the fake account. He was writing on his wall and posting back to the “other person’s” wall. We found out the guy actually had about fifteen fake accounts that he created, stealing other users’ pictures and information to create the accounts, and was actually communicating back and forth with himself. Just to try to make himself appear cool, I guess?The unnamed Facebook employee also says that they're working on something named Hyper-PHP, which will compile PHP (which Facebook is written in) to machine code, which, they claim, will reduce CPU usage by 80%.
A technical problem causes Facebook to display its PHP source code; someone grabs this source code and posts it online; the code itself doesn't contain anything more revealing than variable names and include paths. Meanwhile, the non-technical press posts vague yet ominous-sounding warnings about how it could help criminals to steal users' identities (conceding that it doesn't actually allow them to do so as such).
Which is not to say that there aren't any risks; as always, one should exercise common sense. Facebook is an entertainment site, and thus engineered to less stringent standards of security than, say, banking sites. Even if the site itself is secure, your "private", "friends-only" information could fall into the hands of third parties in other ways (if, for example, criminals take control of a router between you and the Facebook servers and sniff all the traffic going through it, or if one of your friends (who is able to see your information) has a Windows virus on their PC which captures the pages they see). The same goes for other sites with "friends-only" capabilities, such as LiveJournal, Flickr, or various members-only forums or mailing lists.