1đź‘Ť
Vivek, this is one of those questions to which it’s hard to give an answer better than “it depends”. Personally, I think that the language and its ecosystem is a very important factor in the choice, perhaps more so than the specific framework.
Why so? As you mentioned, you found out that you had to write a lot of code from scratch even though you thought a framework would provide it. This is a basic fact of our programming life – no matter the framework / library, eventually we’re going to write some functionality of our own because:
- Either it’s missing
- Or it’s not good enough for our needs, for 1000s of possible reasons
So in the end, as an application becomes more and more complex, we’ll find ourselves implementing more and more functionality because the existing libraries just aren’t flexible enough. I think that the recent success of web micro-frameworks in Python has its roots in the same cause.
This is why the basis is important, and the basis in your case is PHP and its ecosystem vs. Python and its ecosystem. Both languages have huge amounts of library code available, but which do you find more pleasant to work with as a language? Which is the one you and your co-devs know best? Which is the language for which you’ll find it easier to hire new devs (if applicable)?
P.S. I don’t know much about PHP, but for Python/Django, apart from Django Packages, there’s also Pinax.
0đź‘Ť
Never used Yii and Code Igniter, but i come from CakePHP and now i work on Django, and i enjoy it. I can say that in Python there’s a higher test-culture, and Django has superb docs. If you search for Yii and Django on github, you’ll find 191 vs. 6176 projects.
IMHO Python is orders of magnitude better than PHP, and the average Python code is better than the average PHP code.
Your choice should be between Django and Rails or Sinatra, i think. Python community is bigger than Ruby community, instead there are more Rails projects and developers than Django.
- [Django]-Django custom User model authentication
- [Django]-Django with django-nose: two identical settings files with different behavior in running test command
- [Django]-Django localization: labels don't get updated
- [Django]-Using Django RelatedField for custom join queries?