Hacker News new | past | comments | ask | show | jobs | submit login
Interview with Facebook's Andrei Alexandrescu (serversidemagazine.com)
134 points by kmavm on Jan 30, 2012 | hide | past | favorite | 24 comments



Love his answer to #7 on what advice he'd give to a new developer:

"7. What advice would you give to a beginner server-side developer and what to an open-source author / contributor?

Meh, advice-shmadvice. Who am I to give advice? What’s experience good for in our field? I used to know how to write a keyboard driver and floppy disc formatters with non-standard densities. I’d be all but obsolete today if I hadn’t learned continuously.

Oh, so maybe this would be one piece of advice: learn how to learn, and stick with principles; mastering individual technologies will follow.

Technology is a great servant but a terrible master. The best people in our métier are those who know how to quickly become experts in some particular field."

Reminds me of Paul B's video from startup school:

http://youtu.be/EZxP0i9ah8E


Alexandrescu is a great programmer, and it's well worth heeding to his advice.

While reading "Modern C++" and being honestly horrified by the complexity of C++ and the way you have to fight the compiler and the language to get flexible code working, I was also mightily impressed by Alexandrescu's prowess. It's not hard to see how deeply he understands programming at the most basic level. His writing makes that book very pleasant to read.


I find it sad that he is asked to defend Facebook's decision to continue to use PHP. Given that Facebook is probably the largest website in the World now, the real question should be why other sites are not copying their software stack choices?

* edited for grammar.


I wasn't asked me to defend anything. Let's not forget that back in 2004 many alternatives that are fairly robust today were not as functional as PHP was.


I was referring to this exchange from the article:

Q: "4. What do you think of PHP as a language from your perspective, regarding that Facebook was initially written in PHP then transformed to C++ using HipHop for PHP. What are the pros and cons of using C++ over PHP at Facebook?"

A: "I was afraid you were going to ask that :o"

Sounds like being asked to defend your decision to use PHP to me, unless I'm reading it wrong.


Oh, I see. The attempt at a joke there was that I felt awkward to talk trash about a language as a proponent of another.


Given all the work they do to get around PHP it seems more like an "in spite of" not "because of" situation.


If you look at all the value that Facebook (and many other companies) have derived from working with PHP, it's definitely a "because of PHP's strengths" and "in spite of PHP's problems".

No technology is perfect, but imperfect technology that lets you Get Stuff Done(tm) goes a long way.


What strengths of PHP are you referring to here? TCB (Taking Care of Business) seems to be a programmer trait. Considering they have written their own implementation of PHP it seems like PHP didn't offer them much other than then original authors knew how to write it. I could be talking about any language in that case.


Yeah, but I think most of their work "around PHP" is more like "distributing computation to a larger scale than before". So the language doesn't matter that much, they've hit and overcame many fundamental problems that no other stack would have solved for them.


The only thing mentioned in the interview is HipHop, which has nothing to do with distributed computing. PHP is slow and they're trying to make it faster because moving to a different platform would be too disruptive. That's how I'm reading it, but maybe you have more information.


Facebook has released a bunch of distributed computing stuff, including a database (Hive), distributed logging and monitoring system. And that's just the part that's been open sourced.


Of course they do lots of other stuff, like Hive, that is completely unrelated to PHP. I never doubted that. But Alexandrescu was talking about PHP as a language and as a runtime. All the PHP specific things they do seem to be about fixing things that they wouldn't have to fix if they had chosen a different platform like Java or SBCL common lisp or Haskell or C#.


Your text is grey for me which I think means you're being down voted, I'm not sure why your points seem valid to me.


Nobody seems to really understand what votes are supposed to express in a debate. We do have words after all. But as long as there is no exchange rate for converting karma into dollars I remain unfazed ;-) Thanks for your support anyway.


Wait no more, many big Chinese copycats use php.


> To wit, our email and calendar software is off-the-shelf and is the most unpleasant tool to deal with. Get this – we have a few people “specialized” in sending large meeting invites out, because there are bugs that require peculiar expertise to work around. Not to mention that such invites come with “Do not accept from an iPhone lest you corrupt the invite for everyone!”

If only they used Google Apps :)


The post mentions concurrent hash tables for C++. Any ideas on which implementation they use? Or are they written in-house?


    I wish I’d convince a serious hacker to bring things to the point where
    <?d writeln("Hello, world!"); ?>
    could be inserted in a web page.
OMG!


Very nice interview. Although, I strongly oppose the style of interview questions he is vouching for when recruiting new employees at Facebook. I am a PhD student. I focus on parallel computing. I was interviewed by a company in Seattle. The interviewer asked me to write a function to convert from Decimal to Roman numbers. This was ridiculous. Not even once during the interview I was asked about my past experience or my research.


I understand where you're coming from; it can be frustrating that all doctoral work doesn't count to some interviewers as much as a canned test. At Facebook we constantly work on improving the interview quality for PhD candidates. Our recruiters do a great job at having PhDs interviewed by PhDs of the same speciality (last count we had some 120 PhD employees in engineering). My own employment interview involved three ML/NLP interviewers and one very tough systems/coding interviewer. I had to write code in two of the interviews.

In the story you give there's probably a mismanagement of expectations. The company should have clarified to you that either they need their researchers to code in addition to doing research (as is the case at Facebook), or that they only care about coding.


So... how did you do on the question?


I sucked.


It'd be so easy if it weren't for the number 9!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: