Building Rungs: Building a Backend (Choosing a Language)
This post is a continuation of the “Building Rungs” series. The first post is here.
So far the beta version of Rungs, which is more or less just a countdown timer, has not had a tremendous amount of traffic. It’s had a total of 178 visits, 121 of which were on one day. So there is no organic growth. The site is not valuable enough to those who have seen it; nobody (or hardly anyone) has opted to share it.
I’m prepared to promote it, strategically, but I want it to be more valuable first. In order to do that, I want to build out features that involve having user accounts. So what started as a simple frontend, now needs a backend.
The backend language I’m most familiar with is PHP. There is a part of me that would like to explore a new language (I’ve dabbled in Python, less so in Ruby, but nothing major on either front). But another part of me just wants to get something out there and so PHP it is.
Now that I’ve chosen PHP, the next step is to choose a framework. A framework is not integral but it can save lots of time. Arguably, writing raw PHP without a framework gives more freedom and control to a developer, but I would rather not reinvent the wheel. So, which framework?
I weighed out the pros and cons of the following options:
- CakePHP: Very well supported, well established framework with an active community. Also very bulky and comes with a learning curve.
- SlimPHP: Decently supported, decently established. Seems light and easy and well documented.
- Apigility: Decently supported, decently established. Documentation includes instructions on how to build a RESTful API, complete with OAuth. Built on the Zend Framework with is very bulky.
CakePHP is out because of its weight. Apigility is very tempting because I’m a firm believer in APIs to connect apps to one another. But Zend seems heavy. I’m going to go with SlimPHP on this, at least for a prototype version.
Here we go!