While I was responding to comments on a recent post I had the realization that the motivations I have for choosing the development tools I use are quite different from those others have. I find a little self evaluation to be healthy so I thought I would share what I found when I looked at why I continue to choose PHP as my language of choice.
A Little Background
Context is everything when it comes to making personal decisions. Understanding how someone got to where they are can show insights in the decisions they made (or failed to make). So, there are a couple pieces of context I should share.
- I've always liked to help others. I've volunteered with non-profits. I've taken my own time to try and help others solve problems. I try to learn how to do things and share it with others so they can learn from my experiences.
- I like solving practical problems with practical solutions.
Low Barrier To Entry
PHP has a low barrier to entry. Some would argue the barrier to entry is too low.
This low barrier isn't just about helping someone learn to program because they want or need to learn. It's also helpful when you want to help enable someone whose skilled in another discipline do something on the web. Maybe a web designer who targets a niche audience and needs to know just enough coding to be dangerous.
Sure, you could say they might write some ugly code or there are security issues. But, I've seen ugly code out of seasoned "professionals" and just look what happened with the mass-assignment rails vulnerability recently. I consider these all education points not reasons a low barrier to entry isn't good.
Host It Virtually Anywhere
Hosting can be complicated. Just last night I had a light discussion on rails hosting. I regularly talk about cloud hosting. So many of these solutions aren't for the mom and pop stores or small local non-profits that can benefit form a basic web presence. Cool hip hosting solutions are great. They just aren't great for everyone in the long tail of the web.
PHP can be hosted all over the place. There are so many hosting options (some that even drive me a little nuts). Some even provide free options for non-profits. Sure, it's not powerful but many of these organizations don't need it.
PHP can scale. And it's not hard to make it do so. So, if a small hobby project, non-profit, or something else takes off it's not hard to scale the project. If a project remains small and steady it can do that well. This is well documented, well shared, and people know how to do it.
It Makes Me Replaceable
I'm easily distracted and I have a great day job. So, when I help others get going I want them to have other easy to get to resources because that means they don't need me anymore. I don't really have the time to help everyone I'd like over the long haul.
There are a lot of PHP developers. I'm happily replaceable when I become to busy or distracted by the next thing.
What This Means
I've found a couple nuggets of usefulness in these.
- When I generally work on and share useful PHP stuff, even if not targeted at others, it can help others. Sometimes the long tail of web people who I want to see be successful.
- Our motivations can often shape our choices. If I just wanted a good programming language for me and I didn't care about helping others I might choose a different language or tool set. What motivations do you have for your language of choice?
Whether you agree or disagree with me hopefully you understand why a little bit more.