When comparing web2py vs CodeIgniter, the Slant community recommends CodeIgniter for most people. In the question“What are the best backend web frameworks?” CodeIgniter is ranked 17th while web2py is ranked 19th. The most important reason people chose CodeIgniter is:
Setting up CodeIgniter is quick and easy. You can download the version you want from the CI homepage or directly pull the latest version from GitHub. After that, you unzip the contents to the directory that's required. The final step is to edit the `config.php` to suit your needs and it's set up and ready for development. There are also a lot of guides and tutorials from developers who have been using CI for a long time. This is because of the relative old age of the framework and the large community behind it.
Ranked in these QuestionsQuestion Ranking
Pro Easy to learn without losing any power
web2py is very easy to learn for beginners, yet it has a great deal of power and flexibility as application needs become more complex. It includes an impressively comprehensive set of features, making development very productive without the need to integrate a lot of third-party libraries.
Pro Can be tuned to be really fast in production
The framework is really fast in production after some optimization and fine tuning which can minimize the memory footprint in order to make it run on a really small VPS or slice.
Pro Documentation is written in form of a book which is good for beginners
web2py documentation does not follow the common pattern of using Sphinx, MkDocs or ReadTheDocs which is goos for exeperienced developers. Although documentation in form of a book is very easy and good for beginners. Turning web2py the most easy and comprehensive framework to learn and also to teach.
Pro No need to import the API to access the models and controllers context at every request
Models and controllers live in the context of the HTTP request. So the developer does not have to import the API to access this context at every request.
In other words, the models, controllers and templates in web2py use a domain specific language which uses pure web2py syntax and allows to import any module but exposes a few additional objects.
Pro Web2py apps run on GAE, AWS, VPNs, PythonAnywhere, etc
Web2py apps are designed to be portable. With some minor restrictions web2py apps can run on any VPS on SQL databases and/or Mongo, as well as on Google App Engine with the Google Datastore. It is truly code ones and run everywhere. For example at Camio.com we use web2py internally to access a GAE datastore which contains more images than Instagram.
Pro User support
The web2py community is open and friendly and it gives concrete support to newbies and old timers. It's not difficult to get answers from the BDFL Massimo Di Pierro himself.
Pro Maintainable over time
One really positive aspect of web2py application is their maintainability over the years. Old code works even if the framework is updated to the latest version. Not only that, if code is written well it is very short and a new team can pick it up over in little time.
Pro Includes a web-based IDE for creating and managing applications
web2py includes an "admin" app that serves as a web-based IDE for web2py applications. It includes many features, such as application creation, compiling, and packaging; an error ticketing system; a code editor; a debugger; a controller doctest runner; Git and Mercurial integration; and one-click deployment to PythonAnywhere, Google App Engine, and OpenShift.
It is not intended as a full desktop IDE replacement, but it includes some helpful web2py specific functionality and can be convenient for basic editing and debugging tasks and quick prototyping, even for those who primarily work with a more full-featured desktop IDE or editor.
Pro web2py supports the classic editor Vim
Pro PyCharm supports web2py
While web2py has its own web based IDE which is convenient, it works with WinIDE, PyCharm, and Eclipse. The first two explicitly support web2py. The latter requires some configuration.
Pro Easily extendable
Allows users to easily extend functionality by using external libraries.
Setting up CodeIgniter is quick and easy. You can download the version you want from the CI homepage or directly pull the latest version from GitHub. After that, you unzip the contents to the directory that's required. The final step is to edit the
config.php to suit your needs and it's set up and ready for development.
There are also a lot of guides and tutorials from developers who have been using CI for a long time. This is because of the relative old age of the framework and the large community behind it.
Pro Well documented
The documentation is clear, structured and thorough. It explains both commonly used and CodeIgniter specific concepts and always with clear examples.
CodeIgniter has a small footprint, just 3MB and that's including the user guide.
Pro Active community
Because it's relatively old and well-liked, it has an active community of developers behind it. It's used by a lot of websites in production.
CodeIgniter is tested by hundreds of thousand of developers that use it in production. This means that it's very hard for any bugs or problems to go unnoticed. Even when a new version is out, bugs are quickly found and patched up.
Pro Open source
The MIT License (MIT)
CodeIgniter is open source and is distributed under the MIT license.
Pro Easy to use templating engine
CodeIgniter has it's own templating engine built-in. It's based on a mustache-like templating language which is easy to learn for new developers who have never seen it. While experienced developers will feel very comfortable using it.
Pro Output caching
CodeIgniter lets you cache the web pages in order to decrease loading times and increase efficiency and performance.
Con Not Python 3 compatible
Con The web IDE is not a full-featured IDE
web2py includes an "admin" app that serves as a web-based IDE for web2py applications. It includes many features, such as application creation, compiling, and packaging; an error ticketing system; a code editor; a debugger; a controller doctest runner; Git and Mercurial integration; and one-click deployment to PythonAnywhere, Google App Engine, and OpenShift. However, particularly with regard to code editing and debugging and version control integration, it is not as full-featured as some of the more popular desktop IDEs such as PyCharm. So, developers expecting a PyCharm-like experience may be somewhat disappointed. In any case, use of the web-based IDE is completely optional.
CodeIgniter was first released during the times of PHP 4. This means that a lot of features that were added later to PHP are not available. Some of these features are:
- Support for namespaces
- Modular separation by default
- Procedural function helpers
While nowadays CodeIgniter can be used along the latest version of PHP, these features were not added so as not to mess with backward compatibility. They can still be used with CI, but it requires extending core files to make it work which is a waste of time and energy and requires advanced knowloedge of both PHP and CI.
Con not unit testing
Con It does not have basic functions
Some of the missing features include controller security, filters in forms and modoles, rules of validation, among others.