Sara Golemon PHP Internals
Sara Goleman is a long time contributor to the PHP language and runtime, HHVM Hacker, MongoDB contributor, author of “Extending and Embedding PHP,” and PHP FIG Core Committee member.
Where do you work, what is your current role?
Platform Security Server Engineer at MongoDB.
How do you use PHP professionally?
My PHP career began with scheduling tools for a US Judiciary branch office, then HR processing tools for the University of California. Later, I rewrote Yahoo! Search front end ( search.yahoo.com ), and worked on various parts of Facebook related to my work on HHVM/HackLang.
How and when did you get involved speaking or writing in the community?
My first foray in speaking was at a conference you may have heard of: php|tek 2006 in Orlando. This came at the same time as I was publishing Extending and Embedding PHP.
What’s your best conference memory?
Making Elephpant movies with Sammy Powers.
What advice do you have for someone going to their first conference?
Say hello to anyone and everyone. Without the hallway track, you’re just experiencing a live-action blog. Step into the conversation circles and speak up about something, anything, even if it’s not topical to the conference. Make connections.
Tabs or Spaces?
Spaces (preferably four of them, but two is okay). php-src makes me use tabs, so I have to be a little flexible about it anyway.
Do you know how to exit VIM?
OH GOD! WHAT’S HAPPENING??? HOW DID I GET HERE???
Oh, vim? Yeah, easy. I was afraid you said emacs for a moment. Nobody understands that nonsense.
What’s your primary OS: Windows, Mac, or Linux?
OSX for my desktop OS, but all my development happens in Linux (either a VM or a dedicated server elsewhere which I ssh into).
Do I need to know C to understand internals?
No, but it helps. My experience with C was really quite marginal when I first got involved in PHP. Fortunately, the PHP source tree is extremely macro heavy, so every action, especially the common ones, come with plain language constructs and affordances. You still need to grok pointers and memory management, but the rest is rounded corners.
How does understanding internals help in day-to-day PHP coding?
For the most part, it doesn’t. However, there’s something to be said for being able to predict how your code will behave in edge cases, and more so, how to debug what’s going on when your code does something unexpected.
Besides contributing to core, what other ways are there to contribute to PHP internals?
Documentation is PHP’s strongest asset, and we always need more people willing to take up that work. A little bird told me we’re about to move the documentation from SVN to GIT finally, so contributing should also become much easier soon. Tests are also a great way to improve PHP’s health while also improving your own understanding of the standard library.
What feature are you looking forward to in future releases?
I think the combination of Preloading and Foreign Function Includes stands to revolutionize the way we think of PHP’s extension system and could finally break us out of the “if it’s not in core, it’s not usable” mentality.