There’s a curious aspect to being a PHP programmer in India – the ubiquity of CodeIgniter. The framework that first introduced the comfort of working with conventions to the PHP community, a framework that I believe has outlived itself, refuses to die. In fact, “refusing to die” is an understatement here. The framework is thriving, and at least as far as small- to medium-sized software development firms are considered, there’s mind-boggling amounts of work being done on this framework. And don’t just my word for it; the recent StackOverflow survey results indicate the overwhelming love of developing countries for this framework.
Anyway, I’m not here to shed light on the merits or demerits of CodeIgniter. I’m here to share a personal preference that has served me well as a professional strategy: avoiding CodeIgniter like plague.
As a freelancer, I get approached for a number of projects, and almost always the first question is, “How much, out of ten, do you rate yourself in CodeIgniter?” As a software developer in search of the holy grail, I’ve never had reason to pick up CodeIgniter as my framework of choice. The problem is not the framework per se, but the ecosystem that has come around it – the ecosystem of code cobblers.
I call them code cobblers because in India, a million times out of a million and one, a CodeIgniter developer:
- Hasn’t heard of TDD
- Absolutely loves shared hosting and CPanel
- Thinks Git is no match to FileZilla
- Doesn’t mind writing SQL queries in views
- Thinks that the mail server has to be on the same machine
- Doesn’t mind generating view HTML in controllers
- Hasn’t heard of Design Patterns
- Doesn’t write code comments
- Doesn’t know how to set up a virtual host
- Thinks Composer makes music
- Maintains a single giant database table to store everything
- Is in awe of WordPress
- Thinks he’s the best thing that happened to PHP development after the introduction of OOP in the language.
How do you work with these guys?
I’ve tried to reform a few of these in the past, succeeding only in raising my blood pressure and making myself quit projects in fury. Just like prehistorical animals, this breed refuses to evolve or go extinct.
By avoiding CodeIgniter now, I automatically avoid having to work with such people or maintain projects coded so crappily it makes the angels weep.