3 Reasons Why Django Wins For Startups
My first exposure to the Python Django Framework was back as an employee at Google in 2008, shortly after we’d launched Google App Engine. As an application developer with boundless ideas, the dream of focusing on business logic and application code with Google App Engine was enticing and I immediately dove into testing out our new offering by building a small little Google Gadget app that could help me keep track of my ever growing eight nieces and nephews changing ages. The difference between three and three and a half is a big deal in case you didn’t know.
At that time I hadn’t yet learned Python and I wasn’t familiar with Django, but with Google App Engine at launch in 2008 it was Python/Django or bust. The other Googler Engineers had always loved Python (Note: Google even ended up hiring the inventor of Python Guido van Rossum) so I trusted they knew what they were talking about. At that time I didn’t realize that almost ten years later, I’d have turned myself into a Django evangelist.
Looking back, this makes sense, as I always did trust the Googlers, so I should have known they’d be right for the long haul. After I left Google in 2009, I evaluated the Python Framework competitors like Flask and Tornado as well as Ruby on Rails and re-visited PHP having previously dug into the Cake Framework. Twitter’s high profile fail whale hadn’t strengthened my confidence with ROR at that time and PHP was often still frowned upon by engineers I respected.
Later I did end up moving off of App Engine to hosted servers that I could control, however I continued to stick with Python Django at the core of my stack. Ever aware of the changing nature of technology, one of the uncertainties with choosing a framework as a Founder/Developer is hoping that you didn’t make the wrong bet when looking back in the future. These days as I push forward with both my projects and consulting, I’m thankful for my early choice to choose and stick with Django. It’s changed quite a bit over the years always continuing to grow for the better.
Django, here are a few of the reasons I love thee.
The Django Community
Having lived long enough to see various frameworks come and go I do believe that having a strong community converge around a framework and to help it advance is an important factor when choosing a core part of your tech stack. With this in mind, Django has successfully built an ever growing community that continues to help it flourish by leading multi day events like DjangoCon US and DjangoCon Europe. If you got some time to kill, and want to brush up on the latest and greatest happenings in the Django world … the organizers have done a great job of making all the DjangoCon content available for free on YouTube.
It’s the same community that also ensures that Django is one of the best documented frameworks out there and when you’re developing or learning a new framework, great documentation makes all the difference. Now let’s not forget that it’s this same global community that is at the heart of pushing Django forward with regular releases over on Github. If I haven’t convinced you about the greatness of the community yet, check out Django Community page for a boundless number of ways to get help or get involved.
Fast Application Development
Building software from scratch is no small task. Unless you’re a seasoned application developer, a lot of folks take for granted all of the basic components that are required by nearly every web application out there to allow the real core application development to happen. That includes common tasks like interfacing with a database backend, user authentication and session management. Django comes packaged with a suite of tools that include a built in ORM (Object Relational Mapper) for every major database which allows developers to easily query the database by writing only Python code. Of course if needed, one can write custom SQL queries or replace the ORM all together.
Django also comes packaged with tools for user authentication, session management and database migrations that help get you out of the gate running. I’ve also found Django’s Class Based Views to be extremely helpful by supporting the DRY principle and allowing for the elimination of a large amount of boilerplate code when building out web apps.
With the continued support of Django by the larger Django community, an army of Djangonauts have also released several pre-developed packages that can help you with a wide range of tasks from jumpstarting your blog, like the stellar Django Mezzanine package which I used to quickly create this site, or another personal favorite, the Django Rest Framework, which I’ve used for larger projects like building out the Hang Local API.
The Power To Scale
Every startup founder hopes that their idea and product will become wildly successful beyond their wildest dreams. When that happens, you’re going to hope that the stack you chose back when your app was just a wee little proof of concept has the ability to hang with the big boys. In case you hadn’t heard, there’s a photo sharing site out there called Instagram which currently features the world’s largest deployment of the Django web framework. The fact that Instagram continues to scale their service to support hundreds of millions of user’s should give you decent piece of mind that your MVP can grow with a Django backend. It does for me. That’s another reason why I choose it to power my startup Hang Local. Now all I have to do is go sign up some 500+ million users.
With a growing community, a strong built in tool kit and the power to scale, I do believe that a Python Django based backend is a great choice for any founder looking to jump start their project. Having turned myself into a Django evangelist, feel free to drop me a line if I can help get you started with Django today!