The CodeIgniter guardians should NOT try to play catch up with Laravel, Symfony and Zend

I was just enjoying a conversation at the Insider Club discussion forums.  You can join for free at www.insiderclub.org.  Anyway, I was discussing the future of CodeIgniter with an Insider Club member called Ivars.  He was asking if I knew any technically brilliant PHP developers and suggested that perhaps we could convince them to come and help to revitalise the CodeIgniter framework.  Anyway, I typed out a rather lengthy response and right now I’m patting myself on the back because I think it was a good response.  So, I thought it would be interesting to put this out into the wider web development community to see if anyone agrees with me.

Here is my response to Ivar’s suggestion:

Well, I’m sure it would be nice if we had a Fabien Potencier waiting in the wings, ready to adopt CodeIgniter. However, there are 3 problems with this idea:

1. Guys like Fabien Potencier and Taylor Otwell are VERY hard to come by. Even if you do find someone of that kind of calibre then the chances are that they’ll already be engrossed in some other project – perhaps another framework.

2. Technically brilliant web developers are usually not rich. As a matter of fact most of the very best technical web developers out there are seriously financially challenged. Frankly, they haven’t got a clue how to run a business and that’s why most of them have ‘donate now’ buttons all over their websites. Now, I don’t want to get personal here and I don’t want to seem attacking – but do your research. Think of some of the best technical web developers you’ve heard of. Go see what they’re doing for a living. I think you’ll find that most of them either work for someone else or they run very humble web development consultancies. That’s a fact. (QUICK EDIT: I want to distance F.P. and T.O. from that point – those two guys happen to be very talented and I think they are exceptional cases.).

3. Most of them also lack, what I’d consider to be, fairly basic communication skills. If you don’t believe me, try listening to any web development podcast and see for yourself! (I should know, I have one of my own :P).  This matters because good communication skills are an essential component of brilliant leadership.  I’d encourage you to have a look by at some of the early presentations from guys like Bill Gates and Steve jobs.  Those two heavyweights were brilliant communicators and because of this they were able to get people excited and on board with their ideas.  If you want to talk about growing a business, I’ll take the visionary over the tech-guy any day of the week!

—————————————————————

Many months ago I predicted that nobody would step up and take over CodeIgniter. Everything that I said has been proven to be right.

The reason why I knew nobody would step up is because I know that the person who Ellislab are looking for (to take over CodeIgniter) does not exist. That’s right. He or she does not exist!

You can search every corner of the Earth but I don’t think you’ll find a person who is technically brilliant at PHP, has great business acumen, has the ability to manage/build a community and (importantly) has money to invest in CodeIgniter. It ain’t gonna happen.

And of course, everyone is keeping an eye on Laravel, Symfony and Zend. They’re all wondering when CodeIgniter will catch up. We’re all waiting for the day when CodeIgniter developers will be exchanging bundles with Laravel developers and swooning with delight over Composer – delicately peppering our conversations with a gentle sprinkling of words like ‘elegant’ and ‘artisan’.

Here’s what I have to say about that – SHOVE IT!

In my opinion Laravel, Symfony and Zend have taken the PHP community in entirely the wrong direction. I for one think it’s a step backwards for us to be building websites via the command prompt. Command prompts belong in the 80s. They kill creativity! I’ll tell you something else, you can take any of those major frameworks and do a character strike for character strike comparison with CodeIgniter. CodeIgniter STILL does the job with less characters! CodeIgniter STILL kicks arse!

So, let’s consider the future of CodeIgniter. What should they do? My suggestion is radical. However, when all is said and done I think it would take CodeIgniter to a better place.

Instead of searching for the next Taylor Otwell or the next Fabien Potencier, the people behind CodeIgniter should be looking for the next Steve Jobs. This means that they should be more focused on greater things than code. The CodeIgniter community should be having a rethink about where CodeIgniter fits as far as the web development universe goes. There needs to be a complete rethink about what CodeIgniter’s primary selling points are going to be. Is it ease of use? Speed? Powerful code? Community? It’s not for me to say but I think there certainly should be clarity on that front.

Also, I don’t think CodeIgniter should be competing against Symfony and Zend, or even Laravel. Those frameworks have gone off in an entirely different direction and frankly, I think the idea of playing catch up is ridiculous. Let them go. Let them get on with it and good luck to them all. CodeIgniter’s competition should indeed not be Symfony or Zend. It should be WordPress, Drupal and Joomla.

The big three (WP, Drupal & Joomla) are killing it as far as community and business goes. Any one of them has more active followers than any of the major PHP frameworks that we’ve been talking about. Not only that but they’re attracting big business in ways which no other PHP framework dare even imagine.

Here’s ten big organisations who use WordPress:

1. Ebay

2. Yahoo

3. Ford

4. The Wall Street Journal

5. Sony

6. Samsung

7. Playstation

8. The New York Times

9. CNN

10. Rackspace

(Source: http://www.wpbeginner.com/showcase/21-popular-brands-that-are-using-wordpress/)

Here’s ten big organisations who use Drupal

1. NASA

2. Paypal

3. The White House

4. Paypal

5. Ikea

6. Tesla

7. Telnet

8. Garmin

9. McDonald’s

10. The UK Govt (data.gov.uk)

(Source: http://buytaert.net/tag/drupal-sites?page=1)

Here’s ten big organisations who use Joomla

1. Harvard University

2. The United Nations

3. Citibank

4. Mitsubishi

5. Burger King

6. Vodafone

7. The Linux Foundation

8. Porsche

9. Scandinavian Airlines

10. Yamaha

(Sources: http://dwt.com.au/solutions/content-management-system/who-uses-joomla and http://magazine.joomla.org/issues/issue-july-2012/item/800-10-most-popular-websites-using-Joomla)

About four years ago a new PHP framework called Yii suddenly appeared on the scene. At the time it dramatically challenged the way we do web development. For a fleeing year or two Yii was in a league of its own. Technically brilliant, lightning fast and with a brave new web-based code generation tool for handling repetitive tasks. The reaction from the web development community was extremely positive. So much so that one of the world’s best selling PHP authors – Larry Ullman – wrote books about Yii and became a sort of ambassador for the Yii framework.

CodeIgniter needs to have a Yii moment.

Instead of playing catch up with the other frameworks, the people behind CodeIgniter need to think outside the box and give the community something that they really need and that nobody else is giving them.

I’ll close with a question for you. If Steve Jobs could suddenly appear on the scene and somehow ended up being hired to revitalise the CodeIgniter brand, what do you think he would say?

Peace, love and vegetables.

-DC

roofing contractors

Advertisements

11 comments

  1. You lost me at Composer being a step in the wrong direction due to it’s reliance on the command line. As a modern PHP developer I use Vagrant, Grunt, Git, and Sass (installed as a Ruby gem). I interact with my VPS at Linode over SSH as well. Those are all tools that I primarily use via the command line. So for me, using Composer and Artisan in the command line is a huge convenience because I’m already there. You mention, “Command prompts belong in the 80s. They kill creativity!.” Do you have any evidence to support your opinion? I’d argue that the command line provides a creative way for developers to alleviate many of the frustrations GUI dependent developers have suffered with for the past 20 years.

    The lack of a tool such as Composer has long been a problem that the PHP community has suffered through. Pear wasn’t exactly beloved. A lot of the success the Rails community has enjoyed has in part been due to the elegance of bundler and gems. Composer solves that problem for PHP and in my opinion it’s even better than what Ruby has got going for them.

    1. parkerandhobbes · · Reply

      Hi,

      You asked did I have proof and I wrote a response. However, it was a terrible response and it basically involved me being at risk of coming across as being offensive. That goes against everything I stand for. I don’t want to be the Katie Hopkins of the web development world.

      The bottom line for me is that I’m at the end of my web development career anyway. So, none of this really matters to me that much and it’s probably graceful if I just thank you for your considered response and hope that I get more good responses.

      I’m not challenging anyone. My days of arguing about web development are over.

      -DC

      1. Hi David,

        I like your ideas of CI not just copying what other frameworks have done. If more effort is put into moving PHP forward in innovative ways we all win. PHP still powers the web and that isn’t changing any time soon.

        I too am not interested in arguing. It isn’t productive and normally both people are half wrong.

        Regards,
        Stephen

  2. Codeigniter only needs one thing to be relevant again – Ellis Labs to turn the code over to ANYONE half-way competent at managing a framework, and get 3.0 released. Virtually ever PR problem it has at the moment comes back to their incompetent handling of the codebase since work was started on 3.0 Clients no longer approach me and ask about doing work in CI; they are looking at Laravel because Laravel has all the buzz.

    Laravel, IMO, has been a great boon for CI programmers in two ways – it has introduced them to CLI, and with it decent migrations, seeding, integration and workflow methods & it has introduced them to different ways of thinking about design patterns, and what is wrong with much of the code style CI programmers have always used. Laravel didn’t invent Dependency Injection, for example, but your average CI dev probably never used it before trying out L4.

    I personally still do a tremendous amount of work in CI on legacy systems that aren’t going to be rewritten any time soon, and it has given me a new “programming life” to sit and try to work out how I can refactor brittle CI code using the techniques I’m learning elsewhere.

    What CI has always lacked is a “Codeigniter the Right Way” document; I find it frustrating that even after all these years, there is no mention anywhere to new programmers that they should use things like a MY_Model base model, for example, and that the tutorial videos are still outdated or full of mistakes & no one seems to be in charge of upgrading them.

    Unfortunately, no serious devs are interested in committing time and effort to CI right now because of Ellis Lab’s refusal to settle the status of the code & release 3.0. Much of what needs done does not require genius – using Composer only needs a single line of code in your index.php file – but there isn’t anyone left willing to teach those techniques. Codeigniter – and now Laravel – have become what they are thanks to their communities, but Ellis Labs has killed off the CI community, and that’s why its fate is sealed.

    1. parkerandhobbes · · Reply

      Sometimes when somebody posts an informed response it’s good to just let it stand completely unchallenged. So, thanks for that contribution. I’m grateful.

      -DC

  3. To answer your question, Steve Jobs would say CI is more dead than he is. It makes no money, so why invest time/money into it?

    Anyway, it’s worth noting: CI is dead.

    It’s so dead that if “a Yii moment” occurred, then it’d be a worth putting in the history books.

    What killed it? ExpressionEngine killed it. The platform that competes with those CMS’ (because you’re comparing CMS’, not frameworks) killed it.

    EllisLab focused on the business-end (not the community-end) of the framework and let it stagnate. They long forked CI internally and haven’t made a cent out of CI community edition, so why bother continuing with it.

    EllisLab’s have also not said a single thing since the original announcement of dropping CI – and it’s obvious why. No one wants it and it’s too far behind to be worth touching.

    The other frameworks have active communities, agreed standards (PSR’S, the PHP-FIG), shared tools (Composer) & few masters to hold it back. It might be individuals like Taylor or Fabian that start the fire, but it’s the community that keep it going. CI had that, for a while, until EllisLab reached the tipping point of running a business over serving the community.

    So it’s time to accept it – CI is dead.

    As regards to a “Yii moment” implies it was a “Yii moment” is a Good Thing. Now, I developed with Yii for 3 years, so I know it well.

    But I personally believe that Yii 2 is not worth waiting for. It is so far behind, so slow moving, so self-contained and isolated that it will not be the next golden egg.

    From a code point of view, Yii 2 has some idiotic changes – here’s how to redirect a user:

    Yii 1: $this->redirect()
    Yii 2: Yii::$app->getResponse->redirect()

    Is this the kind of “Yii moment” you’re talking about? Is that better?

    Or are you talking about the “Yii moment” where it’s taken more than 2 years to get from an announcement about v2 to an open-beta, which still isn’t any way near production ready.

    With those kind of changes and the glacial pace of development, a “Yii moment” for CI would just be a death-knell in a different timbre.

    1. parkerandhobbes · · Reply

      A great reply! I would respond by answering one of your questions and then offering a comment or two.

      You asked:

      “Is this the kind of “Yii moment” you’re talking about? Is that better?”

      Well,

      There is no doubt that Yii hasn’t been up to much over the last couple of years. As far as I can tell version 2 has been kind of disappointing and they seem to have lost some momentum. So, I’m not on a crusade to glorify Yii here. However, the “Yii moment” that I spoke about happened around four years ago and perhaps I never clarified what that was. So, for the purposes of clarification I’d say that the Yii moment had 4 components:

      1. On benchmark tests it was faster than all the other leading frameworks. For anyone who has an interest in SEO this was major.

      2. Feature-wise it knocked the other leading frameworks out of the park.

      3. It had an innovative and (at the time) original way of handling CRUD.

      4. It appeared from nowhere and suddenly became very popular.

      That was the Yii moment. However, in web development terms it’s now ancient history and for what it’s worth, I haven’t gone near Yii for ages. I think it’s safe to say the Laravel community have enjoyed their own Yii moment, more recently. What Taylor and the folks behind Laravel have achieved is awesome. They appeared from nowhere with a framework which is technically vastly superior to CodeIgniter. They also built a large community in a short period of time. I give them full credit for that.

      So, I’m merely suggesting that instead of following Laravel, Symfony and Zend, I think it would be better for the guardians of CodeIgniter to attempt to create their own Yii moment. The only alternative to what I’m suggesting would be to play catch up, in which case you’d end up with a “me too” framework and probably something similar to Fuel. I’m not saying there’s anything wrong with that. I like Fuel. However, having yet another framework like that is hardly going to electrify the web development community, is it?

      Therefore, I’m saying that instead of creating another “me too” framework CodeIgniter should be going after WordPress, Drupal and Joomla. There’s a big gap in the market for a brave new system that lets people build incredibly powerful, modular websites at lightning fast speed. Nobody has built that yet. Now, there’s a few people who have expressed concerns that what I’m suggesting amounts to changing CodeIgniter from a framework into a CMS. That may be the case but to me it’s just semantics and I don’t really care about definitions.

      In my opinion none of the major frameworks nor the big three are doing a great job of giving business what they really want. That’s the crux of my point and I’m saying that CodeIgniter should be addressing that instead of becoming a “me too” framework. As we can see, my proposition would indeed rock a few boats, however, I’m sure we’re all old enough to remember what the reaction was like when Windows XP was launched. Do you remember? There was uproar and everybody said ‘this sucks’. Here we are, many years later, and there’s a tidal wave of IT people who are now saying that XP is the best operating system ever. That’s the kind of thing that would happen if Ellislab took my advice.

      In private I’ve had extremely talented web developers tell me that they’re not happy with the direction that PHP is going in. They share my concern that the idea of going back to the command prompt feels like a step backwards. They also share my concern that by returning to the command prompt we’re discouraging a certain type of person from becoming involved in web development. They agree with me that it seems uneconomical to have to take multiple steps before creating even a basic page (for example, creating YAML files with Symfony2). Like me, they are worried that PHP is starting to become more and more like Java and less like… well,… PHP. You have to trust me when I say that I’m locking horns with some very talented developers who share my concerns. They are legitimate concerns. The trouble is, we hardly ever get to hear about these concerns. The people who I’ve spoken with are determined to remain anonymous because they know that the minute they voice their perfectly legitimate concerns then they’ll have a tidal wave of PHP’ers ridiculing them. It’s a big giant problem with brass knobs on top and I’m the guy who is speaking for the silent majority.

      The reason why I can talk about this is because I’m at the end of the road. I’m finishing up with my web development career and I don’t really have a horse in this race any more.

      So now you’ve heard it and now you know. FINALLY, somebody stepped up and said what everyone else was thinking.

      Peace and love.

      -DC

    2. It’s the same $this->redirect() in Yii2.

  4. johnfontana2003 · · Reply

    1.) You can use composer bundles in Codeigniter very easily
    2.) The only deciding point that should matter when choosing a framework is simply, what do you know how to use, and use quickly without getting stuck?

    Let’s face it, the problems that face developers aren’t the capabilities of a framework. Any PHP framework can ultimately do anything PHP can do, no more and no less. What matters is, what does the client need, and can you do it quickly? No framework will ever solve the problem of a client needing a last-minute change that completely ignores the approach you’ve taken, or renders your clean groundwork into spaghetti code because there is no time for an elegant solution on a deadline.

    CI has the largest user base of any project on GitHub for a reason: developers are able to adapt to production demands with it quickly. And any client/agency that favors the “next big thing” over something which the most developers can work with effectively deserve to be on the long list of failed projects and bankrupt start-ups.

    Of course, I used to feel this way about Cold Fusion, but that is a proprietary language, not an open-source framework that runs on what is still the most popular server-side web development language, so there’s a big difference…

  5. Ellislab should do 2 things:
    1. Promote more the learning curve. I think that is far ahead to ZF and Symfony and here I don’t refer to rewrites. This means that any new developer who start working on CI project will integrate faster than any other Framework.
    2. Focus on libraries, add lots of free libraries in github. Libraries can be easily added to old and new project without impacting already written code.

  6. Looks like you’re all wrong. So many nay-sayers on the net unfortunately. Spending to much time on publicly convincing themselves they made the right decision when they moved away from CI.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: