Category Archives: Aaron Brazell

Aaron Brazell, Featured, Hall of Fame

Battle of the Titans: Premium Theme Framework Smackdown

I have provided updates for the problems reported with each theme on their pages in this report. We can provide one update per framework as long as something significant has changed (as in a new release of the theme).

For a few days now, I’ve been looking closely at the four major theme frameworks. There are many premium themes. I, in fact, for the time, am using one from Woo Themes that I’ve modified to fit here. However, there are only four that I see as worthy competitors among the elite theme frameworks.

I will be using affiliate links when referencing all of them just because, if you choose to use any of them based on this article, I don’t mind collecting a commission fee. This does not indicate my endorsement of any of them. In fact, quite the opposite. I expect you’ll find me to be a hard, but objective critic of all of them.

The four theme frameworks: Thesis 1.7, Headway 1.6.1, Genesis 1.1.1, and Builder 2.3.11.

Report Scope and Prism

When I went about gathering data on this post, I heard a lot of back and forth from those in the WordPress community about why they liked or disliked each of these themes. Some of the issues were restrictive licensing that flies in the face of the open society that is WordPress. Other things were lingering effects from the Great Premium Theme Pissing Matches™ of 2008. Still others were about how user-friendly the themes were for users. In this report, I put all of that aside and look strictly from the perspective of infrastructure, data, security and WordPress core feature support.

All metrics that have been taken were created equally via a local installation of WordPress (eliminating network latency), with no plugins installed, 10,000 blog posts and 10,000 pages. The data points were taken in the context of a stress test and may or may not reflect actual usage. However, large scale stress is something to be concerned with for any site that is large or plans to become large. How the server handles database transactions, and file load is an integral part of a long term strategy. Each theme was deployed with no configuration changes beyond default settings provided by the theme. The results are fascinating.

This is a seven page article so click through to each new page to read the analysis of each theme.

Photo by icantcu

Aaron Brazell

Doers & Talkers: Cultivating Innovation

A few years ago, I wrote a post called Doers and Talkers where I profiled two types of people in the technology space: Those who have ideas and are visionaries (or talkers) and those who implement those ideas on behalf of others (the doers).

I looked back at that post and realized that, while correct, it was a bit simplistic. In fact, in a world filled with shades of grey, there are more than just doers and talkers.

In review, talkers tend to be the ideas people. They have great ideas, whether in technology, business or just life in general. They see big pictures and tend to have lofty goals. They think quick and often take steps to see their visions implemented, often times without thinking about ramifications and potential pitfalls.

Talkers benefit from irrational thinking. They look at the impossible and, in their own minds, they don’t think it’s impossible. They see limitations as challenges and tend to think that road blocks are only minor inconveniences.

via XKCD

via xkcd

via xkcd

These are the CEOs and founders of the world. These are the people like Steve Jobs of Apple who say, “Phones shouldn’t be this limiting. I should be able to use my natural senses and behaviors to make the phone do what I expect it to do.” Thus, the iPhone was invented with a touch screen interface and technologies like the accelerometer that allow manipulation of the device through natural movement.

Doers, on the other hand, tend to not allow creative thinking. In fact, they tend not to be creative people. They are analytical, engineering types that look at data and extrapolate results based on that data. Doers, in the software world, are the engineers who are handed a list of specs, a timeline and budget, and are told to go and execute.

These people thrive on structure and expectations. They like to know what’s expected and, when they know, are exceptional at delivering results. Doers abhor irrational behavior and approach problems from a perspective of frameworks and architecture. They don’t venture outside their tent posts and, by doing so, are the necessary ingredient for Talkers to see their visions executed.

There really are shades in the middle, however, that are a rare breed. It’s the people in the middle, who both have the business savvy to see big pictures and allow for some degree of dreaming, yet have a firm understanding of expectations and roadmaps that make them so valuable.

See, doers rarely engage with the talkers in providing context or realistic expectation for proposals. Doers don’t really want that role. Doers get into trouble because they don’t know how to speak the language of the talkers. They don’t have the confidence, perhaps, or the desire to take a project and drive a sense of reality into a proposal. That’s above their pay grade, in their minds.

Meanwhile, talkers have an inherent nature, generally, that precludes outside input in decisions. Therefore, they don’t ask, or perhaps even think to ask, the doers for input. They create the business plans and monetization strategies, but rarely think about the implementation. By doing so, they often overlook problems that might be incurred. Talkers are usually distant from the details of the project and so, they tend to miss the detailed tactical decision making process that is employed by the doer.

Finding that personality who has the business understanding to see a 50,000 foot view, interface with management to guide a decisions in a productive manner and who also has the background and understanding to talk to the doers and collect their input is a rare, but important breed. These people should be hired immediately. Create a position if necessary but don’t let them escape.

These types of personalities tend to be excellent product managers and, in a technical environment, can really steer a product in a productive direction.

For what it’s worth, Google has instituted, for many years now, 20% time. This is the policy that states that every Google employee, regardless of role or position, is allowed 20% of their work week to work on any project that they want to. Allowing the doers, talkers and that happy middle the opportunity to be creative, to be structured and to foster ideas, has resulted in many Google Labs projects.

Notably, some of the best Google products used today, have come out of 20% time projects: Gmail, Google News and Google Reader. Additionally, many features (such as keyboard shortcuts in a variety of Google products) have also been added to existing Google products as a result of 20% time. There is even a blind engineer who created Google’s Accessible Search product.

While doers are important, and talkers are important, finding a way to foster open communication and understanding between them is essential for innovation.

Aaron Brazell

Working SXSW (And How I Will Be Hired)

SXSW Interactive is now over and with it comes a big long exhale. For those who were here who I saw, it is always good to catch up and meet new people. For those I missed, let’s connect online somewhere.

This year I came with one goal in mind: to find a job. I didn’t come for the parties. I didn’t come for the constant, lame fist pumping and business card sluttery. I came to find a job. To that end, I did not get a badge. That may seem counter-intuitive but, in fact, worked tremendously in my favor. Every day of the event, I tracked down people who I thought could help me in some way. Shameless? Perhaps. The reality is that karma is always something that goes around.

Photo by AllAboutGeorge on Flickr

I’m not about to do the namedrop thing where I list everyone I talk to. That’s lame and it’s really no one’s business but mine. But what I do want to address what I do because, as much as I have been a public face, there are a lot of public faces and it’s become clear over the past few months that a lot of people really have no idea what I do or what I want to do. They want to help, but when all I can be introduced to an executive at a company as, “a really famous blogger,” then there is a disconnect in my own personal messaging. As more companies are discovering that I am on the market, they really want to know what I’m about.

In short, my official bio can be summed up as: “I am a business-savvy author and PHP developer who has led development teams, managed technical product lifecycles and have built up enough social capital and marketing prowess to put any agency to shame.”

In greater detail, I come from a PHP development background having coded for the last 10 years. I still do that. As part of that, I have been part of the WordPress community as a core contributor for years and have built a reputation as a high-end WordPress “data guy” (as opposed to a design guy). I build plugins and do architecture stuff, for the uninitiated. I have led development teams. Remotely. Which is hard to do. We built products for the internal growth, analytics and monitoring of our company and for our investors. Very nimble, very small, very distributed teams.

Somewhere in the past five years, I became a marketer. Not really because I don’t have a degree in communications and I don’t really do marketing. But I know how to do marketing well and can run circles around Agency types who like to ask, “Do you have Agency experience?” and then don’t want to talk because I don’t. Son, I could school your entire Agency.

I came to SXSW to find a job. Specifically, I came to find a job in Austin or a job where I could at least move to Austin. I have several solid leads from the resulting conversations and introductions. I did it by being real and not trying to be someone bigger than I am. I did it by acknowledging my own strengths. And my own weaknesses. I didn’t get caught up in the scene. It’s a distraction.

As a result, for the first time in four years, my SXSW experience was better during the day than at night during all the parties.

I don’t know if I will find the technical job with a business and public-side interface that I’m looking for. But I do know that there are people now who know that I can run a development team to build a kickass product that is going to need the grassroots, public-facing social capital that I’ve built up. I think I met a few this week. Here’s to hoping.

Aaron Brazell, Featured, Hall of Fame

The Most Expensive Question

The most expensive question you can ask a consultant is, “What else do you recommend?”

This seems like a simple thing. At least if you’re a consultant. Potential clients approach you and they know they need something done. They may have a good idea of what that something is and they may even be able to provide a wish list of things to get done. However, for all that preparedness they ruin it all for their budget by asking, “What else do you recommend?”

Now some consultants do business this way. They are paid to help the client understand their needs and map out a solution. However, understand that this is a very expensive proposition in most cases. Hours of meetings and calls and emails exchanged back and forth can go into defining the scope, as we call it.

What's the Point?
Image by skipnclick on Flickr

We’ll usually approach the client with open ended questions to get a high level view of the client project.

  • What are you trying to accomplish?
  • What is your ideal end result?
  • What problems are you trying to solve?

Once I get a broad picture of the project, I can schedule conference calls with relevant parties to discuss each answer to each question. This is for the purpose of defining the details. Each call could take an hour or more and might span more than one call. This is all billable.

At the end of these series of calls/meetings, we still might have a bunch of email exchanging to do. This is even before we begin doing actual work. You can easily rack up thousands of dollars during this process.

The next phase of the project involves deliverables. Having defined all the scope details, the project probably goes on Basecamp or some similar project management service. Most consultants have a “floor” that is a minimum threshhold. I know people who will not work on projects below $50k. Others won’t work below $25k.

At this point, if the client is still not mentally committed to a path, there can be a lot of potential for “Scope creep”. That is, when the scope of the project slowly expands to incorporate other areas not defined in the agreed upon scope. Good consultants see this coming and can either agree to it pro-bono (bad policy), agree to it as an added service/feature (billable) or convince the client the idea is bad (it might be).

Scope creep is rarely good for the client, though. You’re definitely going to get billed for it when working with most consultants.

Bringing this full circle, however, you can mitigate your costs when dealing with consultants by having a really firm idea as to what and why you want to do from a high level. Leave the details to the consultant to work out, but strategically know where you’re going. If you can define the scope (wireframes are always helpful), you can lessen your cost even more.

The more we as consultants have to do, the more you’ll pay. We don’t mind helping, but if money is an issue, be careful and come prepared.

And for God’s sake, don’t ask “What else do you recommend?” We can make a mint off that question.

Aaron Brazell

Threadsy Aggregates Email, Facebook and Twitter (plus invites!)

TechCrunch 50 startup and runner-up Threadsy reached out to me earlier to look at their service. I’m not usually one to do that but I had some time and their street cred seemed legitimate (TC50, etc).

The service is an aggregation tool that pulls email accounts (Gmail, Yahoo, even IMAP to name a few) together. I couldn’t get my IMAP email account functional but that could just be me. It’s been awhile since I had to configure email addresses manually. My Gmail account imported successfully without any special configuration.

In addition to email accounts, Threadsy also aggregates your Facebook Inbox as well as Twitter. Though no differentiation (visually) seems to exist for DMs and public messages in Twitter, it did manage to aggregate everything nicely and order them in the proper order. I’ve noticed that other products that trie to do this always seem to be a little glitchy on timestamps and sorting, so I appreciated this.

What you get is a consolidated inbox, as seen below. It’s very interactive and clicking on messages brings up helpful information about the sender.

The experience is also very smooth with interactive visual elements (swooshes and what not… to be technical).

My big question surrounding this service is why? There already seem to be a lot of social inbox tools. Gmail is increasingly becoming one everyday with the addition of Buzz, though it does not yet support aggregation of Twitter and Facebook content. I can see the benefits, but I wonder how many users will be sold on it.

Try it for yourself though. The first thousand people to click on this link get into the private beta program. Let me know how you feel about it.

Aaron Brazell

Your SXSW Survival Guide

Next week begins the 2010 edition of South by Southwest (SXSW) with the Interactive and Film festivals. This will be followed in the following week by the legendary music festival. As a veteran of SXSW (This will be my fourth year), let me share my tips from a Pro standpoint. Mind you, these tips are an aggregation of lessons learned over the years. Many new people come every year, and most have no idea what to expect. You can review my SXSW power tips from last year.


SXSW is known less for it’s sessions and more for its parties. For better or for worse, the best networking and results come out of the parties. It is not a drunk fest like many think it is. Okay, it can be. But generally, it’s just a bunch of industry folks catching up with each other, enjoying the early Texas spring night times, having some drinks, blowing off steam and rebuilding relationships. Good business comes out of good relationships.

Julia Allison, Brittany Bohnet and Randi Zuckerberg at SXSW 2009

As a veteran, I am constantly asked if I can take newbies under my wings and guide them. Let me be unequivocally clear: No. I cannot. I will not. Now that that’s out of the way, understand that there are 10,000 people wandering around for SXSW. There is plenty to do and my agenda won’t be everyone’s agenda. RSVP for any party you think you might go to and blaze your own path.


There are more than enough opportunities for free booze. It is not hard to take advantage of this. It’s also not hard to get drunk and all. Be very careful. Maintain your buzz. Don’t get drunk. If you get drunk, you run a chance of being hungover the next day. That ruins the next day. Then you’re likely to get drunk again the next night. Instead, maintain your buzz. If you absolutely have to get wasted, wait for the last night before you go home (You didn’t get a 7am flight, did you?). It’s much easier to maintain a flatline than to have the up and down effect of multiple drunken nights and the impending hungover day.

Meet People

This is somewhat cliché but I swear, if you come to SXSW looking for someone to introduce you to people, then you’re going to be disappointed. You get out of SXSW what you put into it. Don’t rely on someone else to make your trip productive. Get outside of your industry. Get outside your comfort zone. I’ve heard SXSW described as the one event where the attendees come to see attendees, not speakers. Go meet people. Say hi to Guy Kawasaki. Don’t say hi to Loren Feldman. ;-)

You Can’t Be Everywhere, You Can’t Meet Everyone

So don’t try.

Hotels and Lodging

At this point, it’s too late to get a hotel near the convention center. Rent a car and stay out by the airport, but realize you’ll pay cab fees or the car rental – depending on your choice. While hotels are cheaper, you will make up for it in travel. And it can be darn inconvenient in the evening. If you know people who are going, pay them to sleep on their hotel room floors if you can. It’s uncomfortable but probably worth it. Don’t ask me. I’ve already got similar arrangements.

Anything else? Veterans? More tips to add. Add them in comments below.

Aaron Brazell

How to get a Great Tech Job

This post is a guest post from Sandy Smith, a hiring manager and PHP developer at Forum One Communications in Alexandria, VA. It was originally an email to a mailing list in response to a job ad posted by a recruiter. The job requisition was worded in such a way to make it sound like the recruiter wanted someone with every web-tech skill and a “mastery” of it for about $75,000 (USD), a salary that is extremely low in the Washington, D.C. area. His response was so good that I asked if I could reprint it. He obliged. Follow Sandy on Twitter at @SandyS1 or at his blog.

So, random thoughts from a hiring manager, speaking entirely for myself, not for my company (My team has no open positions, though Forum One is hiring):

1) This is perhaps not the best job ad in history but it is not that bad. “Mastery” is a very vague word, and nobody wants to advertise for someone who’s “mediocre” at PHP, etc. So cut them a little slack that word, which seems to be the big problem for most people.

2) Learn to read job ads for what they really want. They almost all must pass through an HR person who is NOT a programmer, and sometimes vetted language is helpfully “punched up” by some editor before going out, not realizing they’re effectively changing the requirements by using more “positive” and “colorful” language. I’m going to use “needless” “quotes” some more, “here.”

3) When we’ve worked with recruiters–and I assure you as a hiring manager I see the same ratio of good/bad ones (hint: don’t call me to ask about a position and then demonstrate that you never bothered to visit the company website to look at the description we have posted–and hint: when I say I don’t deal with recruiters and you’ll have to talk to the same HR person who didn’t call you back the last time, you not getting a gig doesn’t mean I’m suddenly empowered to deal with recruiters…so…don’t call me), we’ve usually just supplied a position description to them. They didn’t alter it much, so the wording may not have changed much if someone from the hiring org posted it themselves.

4) The years of experience and the main technologies mentioned are the important parts of a job ad, as are some of the “types of work environment” experience credentials. The extra stuff is usually requested by the HR person to give them a way to sort through the avalanche of applicants, most of whom are barely if at all qualified, who arrive in their inbox. So if there is, as I once abused a quasi-governmental agency for requesting, a ‘magical pony who craps rainbow sherbet is flitting around a meadow somewhere thinking to itself, “You know, I think I’d rather have a government web job,”’ they can find it.

5) The key word is “Drupal.” They’re not really asking for somebody who can invent a new algorithm better than quicksort or even bridge C++ to Ada to PL/SQL to PHP or implement a perfect Strategy pattern using techniques borrowed from OCaml…they’re asking for a PHP web developer who can configure, theme, and write some custom modules for Drupal that might work with some outside systems that others seem to be responsible for. Your best bet is to send in a competently formatted (and spell-checked–seriously, do not put “detail-oriented” and have spelling errors) resume and a cover letter addressing the important points and showing how your experience matches those points.

6) And yeah, if you can’t hang some Javascript and CSS with XHTML onto those template files, then you’re probably not right for the job, and you should move on. And start Googling some tutorials because I know I expect basic Javascript, CSS, and X/HTML out of even backend PHP developers.

7) There are a lot of people applying for much lower-paying jobs, but quite frankly, there are a lot of people who believe in spamming every open position they find with the same resume regardless of whether they’re qualified or not. Trust me, it’s really obvious to the people on the other side when you do this. You will get much better results if you target your application to the position, and skip ones that you know you’re not really right for. I realize this is hard when you’re not currently working, but a better effort on likely positions will get you more than minimal effort on every position you find.

8) Not every technical team is that great, and even if they are, they aren’t always great at finding the right people for the job, as the temptation is to hire someone like yourself, because hey, you’re awesome! Even if someone like yourself isn’t really right for the job. It’s not smart, but it’s really human. So while I have many issues with recruiters, I don’t think you can always lay the blame at their feet for not making their clients smarter. Who among us hasn’t had to swallow our pride and do something kinda dumb because the guy with the money said he didn’t care, he just wanted it that way?

9) If your organization is hiring for a PHP-centric position and you haven’t posted the job ad here–and there’s no legal/contractual reason you can’t–for heaven’s sake, why???

10) None of this is to suggest that recruiters don’t have problems of bullet-point matching that other people have brought up, or that they shouldn’t match candidates to positions using something better than what any random HR person can do in order to make them worth the money.

Photo by Utopian Branch Library

Aaron Brazell

Buzz Kill

By now, if you follow the technology world at all, or if you use Gmail, you’ve probably noticed a new thingy released by Google in the last few days. The thingy is called Google Buzz and it is billed to be a “status update” tool to allow your friends to know what you’re up to?

Sound familiar? Yeah, it’s supposed to be going after Twitter or some nonsense like that.

I enabled Buzz on my Gmail account and then promptly disabled it (you too can disable it, if it’s already turned on for you, by clicking on the “turn off Buzz” link in the footer of your Gmail account).

I’m going on record today to say that Google Buzz is and will continue to be an absolute failure. The reasons why are fourfold…

No one cares about the Google community

This thing is all about tying the Google community together, though they do have support for Twitter and Flickr as well because, well… no one can ignore those massive communities and have legs for the long run. People care about the YouTube community (a Google property). To a lesser extent, people care about the Blogger community (a Google property). No one cares about the Gmail community. It’s email!!! It’s not about community, it’s about utility and communication. Not community. I get spam in my Gmail. I get business conversations in my email. I get a searchable index of messages sent back and forth over the last five years in my Gmail. I don’t get community in my Gmail. The only community feature in Gmail is Google Talk and I don’t use that in Gmail. I use it in an IM client (Adium).

Google is too spread out to worry about community. They have products to meet needs and diversify web experiences, but their forays into community have sucked. Badly. Last time Google’s OpenSocial was a factor in the collaborative, community space was… oh, well, never. That’s dominated by Facebook. Not Google. Last time Picasa was an actual factor in the photography community was… oh that’s right… never. That’s controlled by Flickr.

And the next time Google tries to be a player in the “status update” community will be… oh, that’s right, never. That’s because Twitter dominates. Just ask Oh, and Facebook.

Friendfeed is still something small and irrelevant

Why do I bring up Friendfeed? Well, my argument against Friendfeed still exists. Even Louis Gray, one of the biggest historical champions of Friendfeed, acknowledges that it remains a small community. It never has and never will go mainstream. So why has Google essentially ripped Friendfeed off and expect different results?

Comment? Like? Sounds familiar…. Oh, Facebook and Friendfeed do that.

Buzz is insecure

It’s well documented at this point that Buzz is actually pretty insecure. Because it operates out of Gmail, it assumes that your most frequently emailed people should automatically be friends. Except that that assumption is inherently insecure because friends are publicly viewable. Take these hypothetical situations for instance:

  • Bill has been corresponding with a major possible client under NDA. For any number of reasons, the communication should not be revealed to the public. Yet, due to the volume of email between Bill and his contact, his contact is automatically made a Buzz contact.
  • Kelly is negotiating an acquisition of a company. If this information were public, the deal could be off.
  • John is trying to take his wife on a big, secret getaway for her 40th birthday. In emailing with a variety of resorts over the period of several weeks, those resort contacts become part of John’s publicly viewable community.

Are we seeing the problem here? This is like Facebook Beacon all over again.

Why add more workflow and more social networks?

The argument has been made in favor of Buzz that Google has a huge Gmail userbase to jump off of. While this is true, this is one more area of workflow for users to utilize. Why do it? We have YouTube and Flickr and Twitter and Facebook? Do we really anticipate Buzz being added to the repertoire? I think not.

Buzz will have the same result as most other social networks: it will die. Very few have legs because very few are innovative and do new things. Twitter was an accidental success because it innovated on the concept of microcontent over SMS… yes, that’s how it started. Buzz is just one more has been and offers nothing new. It will stay in the bowels of early adopter-hood until it is forgotten.

That’s my story and I’m sticking to it.

Update: VentureBeat reports that Google has tweaked their privacy settings.

Aaron Brazell

Do Not Lock In To One Device Lest You Kill Your Company

It’s funny. Comical even. A few weeks ago, I wrote that The iPhone is to Smartphones as IE6 was to Browsers. Most of the readers of that article agreed with me but almost all had a “but, but, but…” argument. This is because the iPhone is one sexy beast to users, even though AT&T can’t seem to support the iPhone, as we also noted.

This is a comical observation because my position was endorsed (if not directly) by Peter-Paul Koch who daintily comments that “[He] will shout at web developers who think that delicately inserting an iPhone up their ass is the same as mobile web development.” He goes on to slam the web development community to catering to the iPhone in the same broken-record way that web developers catered to IE6 ten years ago.

Photo by Matt Buchanan

And adding insult to injury, the Guardian also picked up that story and offered their own ringing endorsement for both Peter-Paul and my perspectives.

I just got off the phone with an unnamed entrepreneur who wants to build a product that, while looking to the future and planning to diversify over a variety of products, looks at Apple’s forthcoming iPad as the launch device. I will offer you the same advice I offered him as well as the same advice I offer to iPhone only products like Gowalla.

If you want to start on the iPad, fine. You better be damn sure you’re ready to diversify quickly. I don’t care if you put it on a non-touch device like, oh I don’t know, the web with a normal browser on a normal computer… do not disenfranchise users. Peter-Paul Koch notes, in the article I linked to above, that the iPhone carries only 15% of the worldwide mobile market. Yet it gets an insane amount of attention as if it was the most important product ever created.

Newsflash… it’s not. It’s not even close.

In fact, it’s still not a business class phone (with rare exception). And in fact, developers continue to ignore other platforms… like the BlackBerry.

Sidenote: It’s okay to have a mobile web interface but don’t lose the forest through the trees. Users will feel like second-hand citizens if you don’t pay attention to their needs.

Mobile developers: Think before you develop only for the iPhone or only for the iPad. Entrepreneurs: Think before you start a company or launch a product made exclusively, or designed with a business model only for the iPhone or the iPad.

Aaron Brazell

HipHop, PHP, and the Evolution of Language

A lively little discussion developed over the past few days on the DC-PHP developers mailing list. We have a very active developers group here in the DC area – much larger than most cities, in fact. Part of what makes our group great is the diversity of background and experience that is in the group.

This was front and center over the past few days when one of our members, Hans, offered his opinions on Facebook’s new HipHop for PHP product. We have already expressed our intent to help make WordPress compliant with HipHop, something that will be beneficial to major WordPress sites like TechCrunch, Mashable, VentureBeat,, the NFL Blogs, the NY Times blogs, the Cheezeburger network (LOLcats, FAILBlog, etc) that carry large amounts of traffic. I hope to be able to consult with some of these organizations on moving into a HipHop system once my head is wrapped around it and WordPress is compliant.

Photo by Josh Hunter

Photo by Josh Hunter

Hans is an extraordinary developer. I have never met him personally, but his depth of knowledge on issues of security and scalability is downright frightening. He offered his own opinion of HipHop on the mailing list and so I’m going to pick on him a bit:

This HipHop thing is interesting, perhaps in much the same way as HipHop music: it feels like a hack. — And I mean that respectfully in both cases; I like hip-hop music, and appreciate how it pays homage to R&B roots, remixing/reinterpreting them, etc; and I think that the idea of taking one language and building it out to something else is also something I should support. After all, I’ve embroiled myself in code generation tools (e.g. Propel) that are operating on the same philosophical groundwork. But I also believe that there’s a general rule like “if you need code generation, there’s something wrong [in your design or in the tools you’ve chosen or …]” … so those tools also feel like hacks.

In all of life, there is an evolution that happens. One iteration of something becomes better with improvements over time. This has happened on a micro level inside PHP. Without PHP 3 there would be no PHP 4. Without PHP 4, there would be no PHP 5. Ben Ramsey talked about this evolution before Christmas.

Why is it a hack to improve upon the tools used with a language? Is it a hack to use Memcached with PHP? Is it a hack to run on nginx instead of Apache or to implement FastCGI? All of these are third party software or extensions outside of PHP. So how is HipHop any different?

That’s all fair, but I feel like the problem here is that somewhere a long, long time ago, Facebook *must* have realized that they were going to have scaling problems. Long before they started having a problem, someone *must* have thought “maybe a compile-at-runtime language isn’t the right solution here”. I guess to me this cross-compiler is just a public way to admit that PHP is not the right tool for the job, but they’re stuck with all these developers that only know PHP so it was somehow cheaper to engineer a way to change PHP to C++ than it was to retrain developers on C++ (or, probably more realistic, Java).

I responded in that conversation with an only slightly edited response. While I appreciate, and always have appreciated, his frank, honest, high level view of PHP, web security, web applications, etc., he strikes me as somewhat naive and puritanical.

What I can say is *I*, along with dozens of other technology people in and out of DC, in and out of PHP, never look at our initial ideas as scaling ideas. We look at them as ideas and experiments to see if they have legs. In fact, I’d go so far as to say it is counter-productive to think about scale before thinking of concievability (is that a word?).

There’s a reason why Rails (God help us) is popular. It’s a great prototyping tool. You stand up an app quickly and let it into the wild to see if it has legs. Does it go? What are the market influences? What are the
pros and cons? Do we have to adjust?

After a concept is proven, then a solid dev team with solid tech leadership brings in their expertise to see if the idea can be built into something sustainable. As a sidebar, please take a read of Brad Feld’s very awesome
post from a few years ago “The first 25,000 Users are Irrelevant“.

My point is, it’s silly and a waste of resources for startup people to start thinking about how big they might get maybe 5 years down the road. I think you’d find out that, in most cases, successful technology, web-based companies happened by some dumb luck. Twitter. Facebook. Name-the-popular-app. Dumb luck.

Hey, I’d even argue that when too much comp-sci brain energy goes into an app, you get things like Wolfram Alpha. Cool. But useless. And not nimble enough to actually do the scaling necessary to need all that comp-sci engineering prowess.

Balance, my friend. Balance.

Facebook (and others) start with PHP because PHP is fairly ubiquitous and easy as pie to drop into production. However, there is a point of no return where you are committed to PHP and that’s where HipHop comes in.

Personally, I wish we had HipHop when I was at b5media. We had a ton of scaling problems with PHP and we were running fully clustered Apache servers (25 deep, if I recall), sharded MySQL across 6ish database servers, and we had massive I/O bottlenecks. We ran eAccelerator and Memcached and had squid-based load balancing and damn if Grey’s Anatomy or the Oscar’s didn’t pin our entire network on more than one occasion. What could have happened with an alternate to opcode caching. What could have happened if I had resources to put on developing C++ binaries of our frequently used PHP libraries.

I’ll tell you. It would have rocked. We were already committed to PHP. We were already committed to WordPress. And when the company started, we were all volunteer resources. There was no assumption that our idea had legs or I think everyone on the team would have quit our jobs immediately and put everything into building that company. It took a year to get there.

This is, for better or for worse, the way companies get started in the real world.