CodeIgniter is good, Laravel is great, but I move to python

Long long time ago, when I learn about “web programming” at the first
time, everything was easy. At that time, know some HTML tag and PHP
syntax already make you a web developer. But honestly, I was never
really enjoy building a website. Making “hello world” in PHP is actually
very simple, just do

echo “hello world”

and that is. But your website is not just consists of several hello
world, right? You will also need a database connection, several logic,
and good presentation. To make such a thing is actually also easy. Just
mix them up, and you will get what you want, a database connection,
several logic, good presentation in a terrible spaghetti code.
As your web scales, your code will be more and more complicated. And to
make it worse, all of database, logic and presentation codes are mixed
up together in a single file. Some people told me to make several
separation. It is help, but not that much. Using this approach, you will
get your code become unreadable by mere human being. A month after
finishing your program, your code will looks like something written by

Such a problem make me try to stay away from web development. But, as
everyone know, desktop application is become less popular than web
application. Yes, some desktop application such eclipse, libre-office,
diablo, starcraft, gimp etc are still there (and probably will always
there for next 20 years). But can you see that web & mobile
application are start to take over the world? Nowadays internet access
has become cheaper than ever. So, if you don’t want to die like this

Figure 1. Poor programmer

You might need to deal with web or mobile development. As for me, mobile
development is not sounds that good. Nowadays we have android, IOS,
windows mobile and blackberry OS. Each has different API, different ways
to develop application, and therefore I will need more effort to gain
more users. Oh, BTW have you ever heard about symbian? It was popular
for a while. I just wonder how wasteful is symbian developer knowledge
nowadays. Okay, stop talking about it. So how about web? I think web is a
bit better, since what you need to have just a server, and what your
user’s need is just a browser (and of course internet connection).

Okay, so I’ve decide to go with web. But wait, that cumbersome spaghetti
PHP & HTML code again? Nowadays we should also combine them with
javascript and CSS. You will need to maintain peace among those 4
languages, and it definitely is not an easy task.
Thanks God, there is CodeIgniter. CodeIgniter is a very simple MVC PHP framework. Here you can have your code separated in 3 parts:
  • Models shall contains of what your application can do
  • Views shall contains the presentation
  • Controllers shall gluing Models and Views
I really like CodeIgniter. At least, I was really like CodeIgniter. You
cannot forgot your first girlfriend right? CodeIgniter is like my
web-framework first love. At that time, everything was good. I even make
my own CMS based on CodeIgniter and
get some job done with it. It is a very cool CMS. Trust me :).  I still
maintain No-CMS and make sure that it will run in even the
legacy-ancient server, so that everyone can use it. No-CMS also has a
cute CRUD module generator that will save your time and effort.
As time pass, some other better PHP framework show off. Let’s say, FuelPHP and Laravel.
They adopt some architecture concept, and add their own. They support
PHP 5.3 and blade-edge technology. Laravel support composer (something
like php package management), custom routing, built-in ORM, bundles and
many more. They really are good framework.
So how about CodeIgniter? CodeIgniter is still good, but laravel is
great. Many people start to learn laravel and forsake CodeIgniter.
Especially after this reading this article: Nowadays,
CodeIgniter is still a beginner-good-to-learn-framework. People use it
to develop things in shared hosting. CodeIgniter still have a lot of
fans. But Laravel seems to be more sexy.
As for me, I never feel comfortable with laravel. I know it is better,
but I just feel uncomfortable with it. There are features I probably
never need of. 
And surprisingly enough, I feel that somehow laravel is similar to django. Okay, so what is django?
Django is python the facto web framework. Almost like ruby on rails for
ruby. I was once ever play with django, and not feel comfortable with
that. Django is great, but it doesn’t allow me to do my job without have
a steep learning curve with the framework itself.
Even if I don’t like django, I like python. Python is very readable
compared to PHP. And PHP composer sounds like python’s egg or ruby’s
gem. For me, python looks like a better future PHP, and if I should
switch the framework, I prefer to also switch the language. So I do some
research about python web-framework. There are many of them. Let’s say
pylon, zope, web2py, bottlepy, cherrypy and flask.
Actually I like web2py. It is easy, and I don’t need to do define any
manual-routing like django. I feels like CodeIgniter in python. You
don’t even need to set up anything. It come with everything included,
even it’s own webserver. But web2py is not explicit. There are a some
autoload magic (like CodeIgniter) that make intelisense (smart
autocompletion) in my IDE doesn’t work as expected.
Okay, at this rate I might looks like a dumb-noob who always complain
about things. I really like python, but I want something like
CodeIgniter (with better capability of course). And I can’t just wait
till someone genius build such a thing and provide it for free. There
must be someone doing something to accomplish what I want. And the one
who really know what I want is just me. This is why I make kokoropy 
Figure 2. The logo of my beloved MVC python framework

Kokoropy is based on bottlepy, sqlalchemy and beaker. It is MVC, but not
necessarily OOP. I make kokoropy to make people comfortable and do
things easily. I will make kokoropy as least as good as No-CMS now. I
really hope it gonna works :)

출처 :


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>