We had a chance to sit down with Eric Neuman, our newest One Month teacher who is teaching our upcoming Python class.
Eric is a full-stack engineer, maker, and startup starter-upper. He was the sole technical founder of leading digital audition platform DecisionDesk, the startup that revolutionized applying for college, and he is known as one of the best Python programmers around.
He’s writing a series of posts for us on the Python Programming Language, What is Django, and Django Web Application Framework. He’s also recording a behind-the-scenes look at what it’s like to teach here in the One Month studios on his YouTube channel. Today he's taking a look at whether or not you should use Django for your startup.
Should You Use Django for Your Startup?
Tech startups are so hot right now, and it’s never been easier or more fun to build a web application. Django has been rapidly gaining popularity for its ease of use and pragmatic design. Here are 10 reasons why you put django in your startup’s tech stack.
1. Fully Featured Out Of The Box
A web application framework is basically a toolkit of components that all web applications need. The point of this is to let developers focus on the things that are new and unique about their project instead of implementing the same solutions over and over again. Django is even more fully featured than most other frameworks, coming with everything you need to build a web app right out-of-the-box.
2. Great Community
Django is an extremely widely used framework, and because it’s open source, it is built and kept updated by the developers who use it. The result of this is a framework that never lags behind and lots of available answers when you have questions.
3. Tons Of Coders Available
Python was one of the most popular programming languages of 2014, and is now the most popular language for those learning to code. This means that when your startup blows up on reddit and you need to hire 5 developers, like, yesterday, you’ll be able to find lots of high quality candidates.
4. Lots of Packages
Part of what makes django so powerful is it’s ability to be extended with ‘app’ plugins. There are hundreds of these packages that make it easy to do things like add google maps, create complex permissions, or connect to stripe for payment processing.
The core philosophy of django is DRY: Don’t Repeat Yourself. The framework places a premium on getting the absolute most out of very little code. This means less hours to get it working, less code to break, and less to change when you need to pivot.
Python runs on every platform, Mac, PC, Linux, heck, you can even run it on a toaster (almost), and django can run wherever python works. As a result, all development and production environments can be supported. More interestingly, django includes a layer between the developer and the database called an ORM (Object Relational Mapper) which makes it possible to move your whole project between most major databases by changing just 1 line of code.
7. Provider Support
Because django is a big, well established web application framework, cloud providers go out of their way to ensure it is easy and fast to deploy django apps to their platform. The best example of this is heroku, which, once set up, enables deployments with a single command from any authorized developer. Result: no bottlenecks on your project because ‘The Deployment Person’ is sick/asleep/on a hot date.
8. Good Documentation
Depending on whether you are a manager or a developer, this may or may not seem like a big deal, but trust me it is. Good documentation can mean the difference between hours of grueling trial and error or effortless implementation. Django provides well-organized documentation and example code tagged for every specific release. On top of that, the code is all publicly available on github for direct investigation.
9. Built-In Admin Panel
One of the things the framework comes with out-of-the-box is a fully featured web interface that gets automatically generated for every app you build. This admin panel lets non-developers create/update/delete users and any other database objects specific to your app. For a startup this means that developers and non-technical staff can instantly work together to manage content or manually try processes before investing time in coding them up.
Sure django is great for getting started, but how does it do when your startup hits scale? Surprisingly, still great. At its heart django is a series of components that come wired up and ready-to-go by default, but because these components are decoupled (not dependent on each other), they can be unplugged and replaced as your startup needs more specific solutions. It’s a lot like starting with a car from the lot and swapping out the parts you want to supe up.
Django for Your Startup?
I used django to prototype and scale my own startup, DecisionDesk. Recently I used it to build the API server for an android-powered data app for the Ministry of Health of Belize and the IADB. Startups like Eventbrite and Disqus are using it to build out apps that scale quickly.