Courtesy Cade Matz, Wired.com
Facebook engineers Bryan O’Sullivan, Julien Verlaguet, and Alok Menghrajani spent the last few years building a programming language unlike any other.
Working alongside a handful of others inside the social networking giant, they fashioned a language that lets programmers build complex websites and other software at great speed while still ensuring that their software code is precisely organized and relatively free of flaws — a combination that few of today’s languages even approach. In typical Facebook fashion, the new language is called Hack, and it already drives almost all of the company’s website — a site that serves more than 1.2 billion people across the globe.
“We can say with complete assurance that this has been as battle-tested as it can possibly be,” says O’Sullivan, a veteran of iconic tech companies Sun Microsystems and Linden Lab who has long played an important role in a popular language called Haskell.
O’Sullivan and company publicly revealed their new language this morning, and at the same time, they “open sourced” it, sharing the technology with the world at large and encouraging others not only to use it, but to help improve it.
The software world is littered with programming languages, and new ones appear all the time. But according to some who have used it or who know the past work of those who built it, Hack has a design and a pedigree that immediately set it apart. “If Bryan O’Sullivan built it,” says programming guru David Pollak, who only yesterday heard about the new language, “I would walk across hot coals to use it.”
In the Beginning
When Mark Zuckerberg started work on Facebook in late 2003 — a moment recreated to such great effect in the Hollywood film The Social Network — he used a programming language called PHP. It was one of the most popular web languages of the day — a language that let you build and rebuild sites with extreme speed. PHP is what’s called a dynamically typed language. Basically, this means you needn’t take the time to define specific parameters for each and every routine in your code, and once you finish a piece of code, you can almost instantly run it — without taking additional time to compile it into another form. The code essentially compiles in the background, as you write it.
The new language is called Hack, and it already drives almost all of the company’s website — a site that serves more than 1.2 billion people across the globe.
For the next decade, Zuckerberg and his rapidly growing company continued to build their site with PHP. It suited “The Hacker Way,” the Zuckerberg coding philosophy that encourages engineers to constantly look for ways of improving the technology at hand. But eventually, as Facebook expanded to hundreds of millions of people, the language started to show its limitations. As a PHP site grows, you need far more computer servers to run the thing than you would with other languages, and it can be difficult to manage all your code and keep it free of bugs.
At a certain size, you’re better off with statically typed languagessuch as Java, where you’re required to carefully define your variable types. You can’t move as fast with these languages — you have to compile code before running it — but you need fewer servers to run your code, and in the long run, it’s easier to manage what you’ve built.
Last year, after a brainstorm from three top engineers, Facebook solved the server problem by running all its PHP code on a new software creation called HHVM, short for Hip Hop Virtual Machine. HHVM was a new foundation for the Facebook website, letting the company run its site on significantly fewer machines. Now, with Hack, their new programming language, Bryan O’Sullivan and his tiny team have solved the other problem. Hack makes it easier to manage code and eliminate errors.
“It arose out of a desire to improve the efficiency of our developers,” says the Irish-born O’Sullivan. “As our engineering team grew, their own jobs were becoming more complicated because PHP is a dynamically typed language. It made it harder for them to easily apprehend the consequences of some of the work they were doing.”
The New PHP
You can think of Hack as a new version of PHP. It too runs on the Hip Hop Virtual Machine, but it lets coders use both dynamic typing and static typing. This is what’s called gradual typing, and until now, it has mostly been an academic exercise. Facebook, O’Sullivan says, is the first to bring gradual typing to a “real, industrial strength” language.
What this means is that Facebook was able to gradually replace its existing PHP code with Hack — move from the old dynamically typed system to a statically typed arrangement. “It allows you to slide the dial yourself on the continuum between dynamic types and statics — so you can start out with dynamically typed code and then gradually add more statically typed code, benefiting from each little bit of work you do as you go along,” O’Sullivan says.
In doing so, he explains, Facebook built much more precise code — code with fewer flaws. Hack provides a kind of safety net for developers. What’s more, engineers can more easily understand code when they revisit it. Static typing acts a lot like documentation.
But the big trick is that Hack provides these benefits without slowing down the developer: Unlike other statically type languages, Hack can run without compiling. “You edit a file and you reload a webpage and you immediately get the feedback of: Here’s what the page looks like after I made that change. There is no delay,” O’Sullivan says. “You get both safety and speed.”
Nils Adermann, a software engineer and the co-founder of a company called Forumatic, has used the language, and he says he knows of nothing else quite like it. James Miller and Simon Welsh, engineers at a company called PocketRent, who have also used Hack, agree. The closest thing, they say, is Haskell, a statically typed language that provides a way of executing code relatively quickly. But Hack, they indicate, takes the idea much further.
Hack will be particularly attractive, Adermann says, to existing PHP shops. “Ironically,” he says, “its chief advantage is how little it differs from PHP.” Like Facebook, these shops can gradually move their operations from one language to the another. But Adermann also believes that some developers will adopt the language even if they’re not already using PHP. “While PHP is the most widely used language on the web, it’s unpopular in many places because of its inconsistencies,” he says. “Hack addresses these … and thereby makes the language more attractive to users of other languages.”
But the biggest endorsement for the new language is that Facebook already uses it to run its own site, the world’s most popular social network. It’s not every day that a new language debuts with such an impressive track record. Some, however, question whether Hack should really be called a new programming language. There’s a fine line here between an update to PHP and a replacement for PHP. Where does Facebook draw that line? “That,” Sullivan says, “is a good question to discuss late at night over whiskeys.”
Courtesy Brad Stone, BusinessWeek.com
I recently wrote about Oculus, which is developing the Rift virtual reality system for PCs. It’s racing against Sony (SNE), which also has its own prototype VR technology, called Project Morpheus, for the PlayStation 4. The Rift, which looks like a thick pair of darkened goggles, lets gamers immerse themselves in a rich, computer-generated 3D world. It’s not yet for sale in stores, but the company just unveiled a kit for developers, which sells for $350. The startup, based in Irvine, Calif., was founded by the excellently named 21-year-old Palmer Lucky. It has one of the most famous game developers in the world as its chief technology officer—John Carmack, the maker of iconic shoot-’em-ups Doom and Quake.
So imagine chatting with your Facebook friends not just via instant messages or VoIP calls, but by settling into a virtual café with them for an imaginary cup of coffee. Or visiting a doctor halfway across the world and explaining your symptoms in a virtual examination room. Remember Second Life? Like that, but with electronic headwear.
For now, the Rift is aimed at gamers. But Zuckerberg seems to be paying more attention to the Rift’s other potential uses. He writes:
After games, we’re going to make Oculus a platform for many other experiences. Imagine enjoying a court side seat at a game, studying in a classroom of students and teachers all over the world or consulting with a doctor face-to-face—just by putting on goggles in your home.
This is really a new communication platform. By feeling truly present, you can share unbounded spaces and experiences with the people in your life. Imagine sharing not just moments with your friends online, but entire experiences and adventures.
Facebook stock dropped slightly in after-hours trading on the announcement. It recently announced an acquisition of text-messaging company WhatsApp for $16 billion.
Oculus raised $91 million from investors such as Andreessen Horowitz. Chris Dixon, a partner at the venture capital firm, said he didn’t quite believe in the Rift until he visited the company’s headquarters and tried it on for the first time. He says he was instantly sold and compared previous attempts at VR to the ill-fated Apple Newton in the 1990s: “People in tech knew we would have handheld computers. The only question was when.” In VR, he added, “The reality is that the technology—like screens, sensors, and software—hasn’t been good enough until now.” (Bloomberg LP, the parent of Bloomberg Businessweek, is an investor in Andreessen Horowitz.)
Dixon’s bet, and now Facebook’s, is that the Rift is the iPhone for virtual reality. And the acquisition gives Facebook a way to combat Google (GOOG), Amazon(AMZN), and others in the hardware business.
It should be noted, though, that while the Rift can unlock new kinds of online social experiences, it also isolates its users in the boring ol’ real world. (I played a few games on a prototype and posted a video of my experience.) While you can presumably interact with other people’s avatars, the Rift also blots out absolutely everything around you—like any friends who might be sitting in the same room. There’s nothing social about that.
Courtesy Casey Johnston, ArsTechnica
Here’s the dialog you’ll see if you were opted out of search, when Facebook gets around to opting you back in.
If you checked that box saying you don’t want to appear in Facebook search results, get ready: soon, that choice is going away. Facebook announced in a blog post Thursday that it’s removing the ability to opt out of appearing in search results, both for friends and globally, for those who’ve had it enabled.
Facebook actually removed the search opt-out for everyone who didn’t have it enabled early this year, around the time it introduced Graph Search. Now, ten months later, Facebook is giving the boot to anyone who actually cared enough to opt out, referring to the checkbox as an “old search setting.” Facebook claims that less than one percent of users were taking advantage of the feature.
In simpler times, Facebook was smaller and easier to navigate, and everyone had a privacy setting asking “Who can look up your timeline by name?” Now that there are so many profiles that users become confused when they know they have a friend or know someone in a group, but try to find them by search and they don’t appear, says Facebook.
The shifting sands of Facebook privacy settings have become increasingly unreliable; of course Facebook is not beholden to any of its users to protect them from much of anything, and anyone who doesn’t like what Facebook is doing can leave. ReadWrite has a good run-through of the privacy settings you may want to survey and tweak. While they still exist, that is.
Courtesy StephanWolfram Blog
More than a million people have now used our Wolfram|Alpha Personal Analytics for Facebook. And as part of our latest update, in addition to collecting some anonymized statistics, we launched a Data Donor program that allows people to contribute detailed data to us for research purposes.
A few weeks ago we decided to start analyzing all this data. And I have to say that if nothing else it’s been a terrific example of the power of Mathematica and the Wolfram Language for doing data science. (It’ll also be good fodder for the Data Science course I’m starting to create.)
We’d always planned to use the data we collect to enhance our Personal Analytics system. But I couldn’t resist also trying to do some basic science with it.